On Sun, Apr 17, 2011 at 01:29:27PM +0100, Thomas Adam wrote: > Hi all, > > I said I would try and outline where I think we should be in terms of moving > to git. I have to say that I am surprised at just how sudden such a switch > has taken place; in the past I had asked Jason and Dominik off-list what > would be involved, and whether it was a good idea. Reaction from both of > them was largely positive, and I think for different reasons. As I see it:
I forgot to mention the ChangeLog. ChangeLog ========= Because commits are changeset-based, it's very easy to see in a given commit the files which touched it. This almost goes someway to making a overall ChangeLog file moot -- I can see/know why projects using other revision control systems use them, but they're perhaps superfluous with git. In order to understand why, I suppose it's important to understand the anatomy of a commit. Here's a typical one from me (again from ta/titleformat): commit 8d5837d7488fcdf7ca7ee7aceb6a1ca3d7777799 Author: tadam <tadam> Date: Fri Oct 15 05:02:19 2010 +0000 FvwmIconMan Transient mode to accept explicit module alias. When running FvwmIconMan in transient mode, allow for an explicit module alias to be used, rather than defaulting to "FvwmIconMan". This brings FvwmIconMan in-line with other modules which provide similar functionality. The very first line in the commit message is called a "shortlog", it's a single-sentence describing what the commit is about. Then there's a blank line followed by the body of the commit message, which describes in more detail the change. I can get an overview of all shortlogs on a branch by running the "git shortlog" command. I can also see from this commit what files were changed by it: [n6tadam@debian][fvwm][ta/titleformat]% git show 8d5837d7 --stat --oneline 8d5837d FvwmIconMan Transient mode to accept explicit module alias. NEWS | 2 ++ modules/ChangeLog | 9 +++++++++ modules/FvwmIconMan/FvwmIconMan.c | 8 +++++++- 3 files changed, 18 insertions(+), 1 deletions(-) Here, "--oneline" just shows the shortlog from the commit in question, without showing the full message. So in this way, it's still possible to generate a ChangeLog *after* the fact. With git tags (which we'd be using anyway on master, when "next" is merged. As an example of this: [n6tadam@debian][fvwm][ta/titleformat][128]% git shortlog version-2_5_29..version-2_5_30 dane (1): remove bad error message tadam (7): Version bump CVS version to 2.5.30 Don't allow incremental matching of C_ALL with "PrintInfo Bindings". Fudge PNG macro detection based on version of libpng. NEWS/Changelog for previous commit. Tidy-up todo-3.0 Cosmetic clean up for NEWS file. Update key files for FVWM 2.5.30 release. I think saying goodbye to a formal ChangeLog, given CVS made the above annoying/impossible would be useful, it's meta information we don't need given Git tracks this for us. -- Thomas Adam -- "It was the cruelest game I've ever played and it's played inside my head." -- "Hush The Warmth", Gorky's Zygotic Mynci.