On Tuesday 18 December 2007 02:20, Pavel Roskin wrote: > If there are any specific problems with git pertinent to GRUB or > preferences of the GRUB developers, I'm ready to convey them to the > git developers and take the blame (if any). > > We don't have to look for the best tool, just for the best tool for > this particular project and those working on it.
I bet that you under-estimate the pain of migrating to another SCM. I have experienced such migrations twice, and they were always a pain, something that nobody wants to repeat. Some reasons: - The repository will be temporarily down (negligible in a long term). - All developers are forced to install new software and learn it (always a pain). - All local (pending) changes in working copies become very hard to merge (extremely painful). - It is hard to re-select yet another SCM later, because old software is usually better supported for migrations, i.e. it's not cheap to migrate back and forth (very painful). Since Robert was in a hurry so much, I had to stop it immediately with very terse words. I am sorry about that, but please do not make a haste. I have discussed (and objected to) possibilities to move to another SCM in the IRC, the mailing list, etc., but it seems that people forget my words at every time. It's sad to me, as I must repeat the same thing again and again. First of all, this is not a hurry at all. CVS is far from nice, but it has worked well for GRUB for the past 10 years, and we haven't had any critical problem with it. This is because GRUB is a very simple project from the viewpoint of source code management. You might be excited with technical innovations, but please don't forget that it costs to change things. Note that I don't mean that we should't change, but that we must be a bit more conservative with regard to SCM. Since we are not developing SCM itself, we should consider carefully pros and cons, before making an action. Ok, now about the git. As Tomáš pointed out, the lack of portability is regression from CVS. If you think, for example, grub4dos is important, why can you choose git? Besides the portability, I don't like the merging algorithm. If my knowledge is not completely outdated yet, git still uses 3-way merging, right? I don't describe the math here, as it is (a little) documented in the revctrl wiki: http://revctrl.org/CategoryMergeAlgorithm As long as git uses this naive algorithm, I am not willing to use it. CVS's merging algorithm is also very simple and stupid, but it is not a big problem, because CVS is centralized. When getting distributed, things get far more complicated and critical, since there are so many corner cases where one cannot see in a centralized SCM. These are the requirements for a new SCM in the context of GRUB from my point of view: - Free Software (definitely!) - Good merging algorithm (if distributed) - Good web interface (as good as viewvc) - Commit notification by email at the server side - Good portability (as good as CVS) - Ability to track changes efficiently, i.e. annotation (probably supported by most SCMs) - Usable interface (not like arch) - Good user document (like svnbook) - No conflict in a (main) repository (not like monotone) Other features are not so important, since GRUB is small. Here are some examples: - Subversion (+ svk) is good enough, if we only sometimes want to work offline. - Bazaar looks good, if we believe that their claim is all correct. Okuji _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel