[OpenAFS-win32-devel] AFS + git + Windows

Jeffrey Altman jaltman@secure-endpoints.com
Fri, 10 Jul 2009 16:52:04 -0400


Mickey:

There are no git experts here.  I suggest you join the Jabber room.
Or ask your questions on openafs-devel.

git and Windows do not mix well.   msysGit is better than cygwin git.
cygwin git will corrupt your repository in time due to confusion over
EOL usage.

However, msysGit and Cygwin (which is required for the build) cannot
be mixed in the same environment.  MingW and Cygwin are incompatible.

There is no native Git for Windows and things are just going to be ugly
for a while.

Jeffrey Altman

Mickey Lane wrote:
> I would like to start a dialog about building AFS 1.5.60+ for Windows
> from the new git repository.
> 
>  
> 
> I would also like to thank Simon (plus others?) for the page at
> http://www.dementia.org/twiki/bin/view/AFSLore/GitDevelopers.
> 
>  
> 
> For whatever reason, I am having a really hard time grasping the basics
> of git. Couple that with the fact that all the available material on git
> plus the tool environment use the Unix syntax and I'm feeling pretty
> lost here.
> 
>  
> 
> I have the cygwin package with pretty much everything installed. The git
> components were updated this AM.
> 
>  
> 
> I have a root directory of 'C:\OpenAFS'. Below that, I manually created
> the empty directory 'Git'.
> 
>  
> 
> I opened the cygwin console, navigated to C:\OpenAFS\Git' and did (with
> the noise removed):
> 
>  
> 
> $ git clone git://git.openafs.org/openafs.git c:\OpenAFS\Git
> 
> Initialized empty Git repository in /cygdrive/c/OpenAFS/Git/OpenAFSGit/.git/
> 
> remote: Counting objects: 109525, done.
> 
> remote: Compressing objects: 100% (21959/21959), done.
> 
> remote: Total 109525 (delta 88082), reused 108078 (delta 86710)
> 
> Receiving objects: 100% (109525/109525), 57.55 MiB | 600 KiB/s, done.
> 
> Resolving deltas: 100% (88082/88082), done.
> 
> Checking out files: 100% (4830/4830), done.
> 
>  
> 
> $ git config --global user.name "Mickey Lane"
> 
>  
> 
> $ git config --global user.email "mlane@sinenomine.net"
> 
>  
> 
> $ cd OpenAFSGit
> 
>  
> 
> (now in C:\OpenAFS\Git\OpenAFSGit)
> 
> $ git branch -r
> 
>   origin/HEAD
> 
>   origin/disconnected
> 
>   origin/instrumentation
> 
>   origin/master
> 
>   origin/openafs-1_3_82-macos-10_4
> 
>   origin/openafs-devel-1_5_3x
> 
>   origin/openafs-devel-1_5_x
> 
>   origin/openafs-devel-autoconf
> 
>   origin/openafs-prototypes-1_3_x
> 
>   origin/openafs-rx-enhancements
> 
>   origin/openafs-rxkad-krb5
> 
>   origin/openafs-rxkad-krb5-lha
> 
>   origin/openafs-stable-1_0_x
> 
>   origin/openafs-stable-1_1_x
> 
>   origin/openafs-stable-1_2_2x
> 
>   origin/openafs-stable-1_2_9a
> 
>   origin/openafs-stable-1_2_x
> 
>   origin/openafs-stable-1_3_85-linux-oldinode
> 
>   origin/openafs-stable-1_4_0-branch
> 
>   origin/openafs-stable-1_4_10_1-branch
> 
>   origin/openafs-stable-1_4_6-branch
> 
>   origin/openafs-stable-1_4_7pre5+
> 
>   origin/openafs-stable-1_4_9-branch
> 
>   origin/openafs-stable-1_4_x
> 
>   origin/openafs-windows-kdfs-ifs-branch
> 
>   origin/prdb-extensions
> 
>   origin/rxk5
> 
>   origin/rxk5-devel-1_5_57
> 
>   origin/rxk5-devel-1_5_x
> 
>   origin/rxtcp
> 
>  
> 
> $ cd ..
> 
>  
> 
> I want to make a separate directory tree to do my build in because I add
> my own stuff to it (My stuff = my own build batch files + a Visual
> Studio Solution) and I don't want to corrupt the original files from
> openafs.org.
> 
>  
> 
> (now in C:\OpenAFS\Git)
> 
> $ git clone -l --no-hardlinks --origin mygit
> file:///cygdrive/c/OpenAFS/Git/OpenAFSGit MyGit
> 
> Initialized empty Git repository in /cygdrive/c/OpenAFS/Git/MyGit/.git/
> 
> remote: Counting objects: 109311, done.
> 
> remote: Compressing objects: 100% (20578/20578), done.
> 
> remote: Total 109311 (delta 87905), reused 109271 (delta 87877)
> 
> Receiving objects: 100% (109311/109311), 57.51 MiB | 12490 KiB/s, done.
> 
> Resolving deltas: 100% (87905/87905), done.
> 
> Checking out files: 100% (4830/4830), done.
> 
>  
> 
> This added a directory named 'MyGit' as a peer of the one containing the
> openafs.org files. I added my stuff to 'MyGit' and tried to build.
> Didn't work and the error is not at all obvious: "config target does not
> exist"
> 
>  
> 
> I repeated the clone process above after doing 'git checkout
> origin/openafs-devel-1_5_x' and got the same result.
> 
>  
> 
> So my very very basic questions are:
> 
>  
> 
> #1 What exactly is 'checkout'? What does it do?
> 
>  
> 
> #2 Is making my own directory tree wrong? Should I have done a checkout
> with 'git checkout -b mygit origin/openafs-devel-1_5_x'?
> 
>  
> 
> #3 If I do #2 and then add my directories and files to the
> C:\OpenAFS\Git\OpenAFSGit tree, do they go away if I checkout something
> else?
> 
>  
> 
> #4 When I cloned all the files from openafs.org, did I establish a
> relationship between that repository and the one on my machine? If I
> deleted everything and started over, would there be a broken
> link/status/etc somewhere? (e.g. I can check the same thing out of CVS
> 10 times without causing harm…)
> 
>  
> 
> Any comments greatly appreciated.
> 
> Mickey.
> 
>  
>