
Hello,
On 2007-December-09 , at 10:09 , Bryce Harrington wrote:
On Sat, Dec 08, 2007 at 03:03:28PM -0500, MenTaLguY wrote:
On Fri, 2007-12-07 at 17:46 -0800, Bryce Harrington wrote:
Incidentally, as far as DSCMs go, I'd personally recommend either git or mercurial. git is more robust (I would prefer to keep our core history in git format) and has better analysis tools (which I've come to rely on heavily), but mercurial is much less user-hostile.
Have you had a chance to play with bazaar much?
No, I hadn't. Until recently, the general consensus on the web about bzr had been "don't bother". It was generally so ill-considered that I didn't even bother evaluating it when I did the giant SCM bake-off a while back.
However, reviewing the consensus on the web today, it seems that it has improved enough in recent months that people are now rating it just behind git and mercurial. So I will give it a spin.
There is a git-vs-bzr page from the bzr developers here, which might be of interest at highlighting some of the major differences:
I'm glad to see this discussed. Personally I see three important points:
- speed: given the development model of Inkscape (which is not likely to change only because of a new SCM system), svn get mainly two things wrong IMHO: speed (committing is slow, diffing is a nightmare... and I only use it superficially so I cannot even imagine how it could be for core developers) and merges. It looks like both git and bzr get merges right. git is extremely fast but I don't know about bzr.
- handling of renames and binary files. I put these two together since they both relate to the same difference between bzr and git. In git, files don't even actually exist in the data model, only their content matters. This makes working with binary files a pain (they actually have to be ignored in the repository), at least last time I checked. Renames are somehow transparent since if a code block is moved from a file to another it will be tracked down there. However this relies entirely on smart-guesses from git while bzr seems to keep track of file operations _and_ uses some heuristics too. What I don't know is: . how bzr deals with binary files. there are maybe not many in Inkscape code base itslef but there a many more in inkscape-web or other part of the repository and I guess that all those would be migrated too. . whether the fact that bzr keeps track of file and directory names makes it necessary to rename them using a bzr-provided tool (i.e. some svn mv equivalent). I would hate this deeply.
- availability and popularity. availability is trivial, and git seems to be a problem in this respect. On OS X, if that matters, svn, hg, bzr and git are all easily available and at reasonably recent versions. popularity is important too since popular tools are likely to see more third party tools/plugins being developed for them. This would actually be an argument in favour of keeping svn: it may suck big time in itself but third party tools (TortoiseSVN, IDE integration, web interfaces, ...) make it particularly easy to use. Both git and bzr are not served as well, as far as I know. However, to give and example of what I know, git is supported experimentally by TextMate on OS X, bzr isn't even known. I guess it is probably not and isolated case. It also seems like many more project (and in particular many big projects) use git rather than bzr: http://bazaar-vcs.org/WhoUsesBzr http://git.or.cz/gitwiki/GitProjects I am not versed enough in this domain to know how both projects will evolve. The fact that bzr is somehow backed up by Ubuntu makes me feel like easy to use front ends and nice GUI tools might evolve soon but it would be nice to know from someone who actually has real information ;)
Eventually it would be nice to have impressions from users of both git and bzr. Cairo and X.org use git so there's probably someone here knowing this well (Carl Worth? Bryce?).
JiHO --- http://jo.irisson.free.fr/