grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Switching to git?


From: Yoshinori K. Okuji
Subject: Re: Switching to git?
Date: Tue, 18 Dec 2007 03:57:37 +0100
User-agent: KMail/1.9.4

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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]