[Scummvm-devel] Switching from SVN to git, mercurial or bazaar
Marcus Comstedt
marcus at mc.pp.se
Wed Oct 28 13:37:13 CET 2009
Max Horn <max at quendi.de> writes:
>> * Numerical revision ids, which can be compared to see which
>> revision precedes which
>
> I agree this is somewhat annoying, and one thing were Bazaar seems to
> beat both Mercurial and Git. There are workarounds, though, as
> explained on the following page (WARNING, might hurt your eyes *g*): <http://blogs.codewise.org/wrf/article/sequential_revision_numbers_in_git
> >
Well, yes, with access to the repository you can figure out which hash
precedes which of course, but I like the fact that the information
is self-contained in the id in SVN (and CVS, and Bazaar).
>> * Proper tracking of moves and copies
>
> Well, git will never explicitly track this information (if you mean
> that by "proper"). However, as you may know, it provides automatic
> move & copy tracking
Yes, I know it can try to guess after the fact (provided that you
remember to add special command line options, which make the
operations take much longer time than usual), but IMO the task
of a revision control system is not just to remember exactly
what each revision looked like in the filesystem, but also how and why
it got to that state. That's why we have commit log entries in the
repository for example. I don't suppose you'd be very happy about
a system which tried to guess a commit message in the log command,
rather than storing what the committer actually typed when making
the commit.
> It seems to work pretty well for me, too. In my local ScummVM git
> tree, I tried
> git log --follow engines/sci/engine/segment.cpp
> and it worked just fine.
The problem is that in a case where it doesn't work, it can not
be fixed, because it's based on heuristics rather than facts.
I'd be much happier if the heuristics were applied at commit time, and
could be manually overridden if they came to the wrong conclusion.
(And since I've already had this discussion in another forum: No,
it is in general not possible to always get the correct conclusion
by improving the heuristics. Consider for example when there are
two identical files, and you copy one of them.)
To be clear, I'm not opposing a switch to git, just pointing out the
things I feel it does less well than SVN. There are certainly things
it does better too.
// Marcus
More information about the Scummvm-devel
mailing list