On 15 Feb 2012, at 13:06, Quentin Mathé wrote:
I fully agree with having Git or Hg as the master rather than SVN.
There are two issues that I'd like to see a good solution for with this:
The first is that we lose a monotonic counter for revisions. If someone has a
bug, with svn you can say 'I think this is fixed in r12345, are you running an
older revision than this?' and they can actually answer it. With git, you say
'I think this is fixed in 4f13bc56' and they say 'well, I'm running 5196f8a'
and you say 'I have no idea what the relationship between the two is, one of us
needs to go and look at the timeline and see, and it's not going to be me
because you're the one with the problem' and they say 'fine, I don't care
either, your project sucks'.
The other issue is that git does not support partial checkouts. This means
that we would have to split the GNUstep repository up into a load of sub
projects. I don't see this as a major issue for things like Gorm, which are
largely independent, but I have in the past wanted to make changes to libobjc2
and base, or base and gui, or gui and back where the change in one layer
requires corresponding changes in another. With svn, even though I have
checked all of these projects out separately, I can do an atomic commit to the
entire project so we never have an inconsistent state in the authoritative
repository - people either see the state before the commit or after. With git
(and, I believe, all of the other DVCSs that have been suggested) this is not
possible, so someone can do a checkout of the core GNUstep modules and find
them in a non-building state.