Hi, On Mon, 22 May 2006, Erik Sandberg wrote:
> On Monday 22 May 2006 17:43, Johannes Schindelin wrote: > > > You might want to experiment with some of the newer VC systems. Someone > > > on the list mirrors lilypond CVS with GIT. > > > > I do. > > > > If you are interested, I can make it public. > > > > At the moment, I track the CVS every morning (Greenwich time). > > That sounds great, if it's not too much work for you. Can one perform cvs > commits and GIT updates from the same source dir? The basic commands are very similar to CVS. IMHO the biggest three differences are: - no server needed ("git commit" commits to the .git directory) - no "cvs update", as there can be many servers, but "git fetch <url>" - you can switch branches easily by "git checkout <branch>" So, typically I just update with git fetch origin which updates my origin branch to what was in CVS this morning. Then, I just create a throw-away branch to hack on lilypond: git checkout -b wonderfulNewWork origin This sets up a branch "wonderfulNewWork" starting at the HEAD of "origin". Now I hack on lilypond as much as I want. At the same mile-stones as with CVS, I commit with git commit -a -m "a short comment to remember what I did" The "-a" means "all changes". If I were to commit only the changes to a couple of files, it would do git commit -m "some other comment" GNUmakefile flower/random.cxx After a couple of days of work, I do the equivalent to "cvs update": git pull origin Note the "pull", not "fetch". It means to pull the "origin" branch, and merge it into the current branch. Then I get the patch with git diff origin > my.patch Actually, you can do more quite cool things with git. For example, you can look at the history with "git log". And if you want to see the patches right away, do "git log -p" to see the patch after each commit. To do that with the branch "origin" instead of the current one, do "git log -p origin". You can use the "pickaxe" to search when a function or variable or whatever was added: "git log -Sthefunction" will show you only the commits where the patch contains "thefunction". If you know which file contains it, you can make that even faster with "git log -Sthefunction that/file.c". Of course, there is at least one down-side, too. Since there is no central server, you actually have all the history in the .git folder. In packed format this means about 55 megabyte for lilypond. Ah, and the most important thing: you can clone the initial repository by git clone http://wbgn013.biozentrum.uni-wuerzburg.de/lilypond.git This downloads the 55meg and sets up a local clone in the folder "lilypond". Please be nice to the server... Ciao, Dscho _______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel