Re: Moving to git?

Stipe Tolj <[email protected]>
Newsgroups gmane.comp.mobile.kannel.devel
Organization tolj.org system architecture
Message-ID <[email protected]>
Guillaume Cottenceau schrieb:
> 
> Don't overestimate the complexity of git; AFAIK, it was really
> complicated when Linus wrote it, but it was 3 years ago. Since
> then, a lot of auxiliary utilities making git usable for mortals
> were integrated into main git; and then, a lot of free software
> projects have moved from cvs, svn or even mercurial to git (the
> kernel, e2fs, alsa and probably a lot of kernel-related projects,
> yet also xorg, wine, cairo, ruby on rails..) which is quite
> meaningful to me.

now, I know... but these are for "hack-alike" people more. Our user base 
isn't usually that C-affine and tend to come from the Java corner 
mainly, so svn is a term for them more then git. That's my major 
concern: making the handling for the user side easy.

> As for the complexity, the easiest way of posting patches is
> really as simple as:
> 
> # git clone
> # ... hack, hack, hack ...
> # git diff > /tmp/foo.patch
> 
>> Alex, is there an easy way to have a local git reposiroty that is
>> "exported" to a centralized svn repo?
> 
> AFAIK, if you decide for svn - boo! don't! :) - there are svn-git
> tools which allow to use a local git repo, commit in it, and then
> "export" the commit to the master svn repo.

ok, that was a solution I would go for. Having git local repos and 
export (remote commit) to a svn master.

> Eh, I'm really not an expert in git :) I'm rather a beginner to
> intermediate user, who has been quite convinced by it.

;)

> Yes, of course - don't forget that the kernel and many other
> projects use git now. Either by the package name "git", or
> "git-core", it's available everywhere.
> 
> http://packages.debian.org/search?keywords=git-core
> https://admin.fedoraproject.org/pkgdb/packages/name/git
> http://www.gentoo-portage.com/dev-util/git
> http://download.opensuse.org/distribution/10.3/repo/oss/suse/i586/git-1.5.2.4-23.i586.rpm - sorry didn't find better for suse, is there? - http://en.opensuse.org/Package_List is a joke :)
> 
> The Fedora project even hosts quite some git repos, showing off
> what their views on git are:
> 
> http://git.fedoraproject.org/git/

ok, great. Thanks for the research here. That makes a major step towards 
it.

We could postulate a master svn and a shared git repo on kannel.org I 
guess simultaneously, right? Not quite sure if it would be intelligent 
to let the user "decide" which VC to use.

> But contributors also tend to be lazy, and being able to
> contribute more effectively is a big plus :) A single example is
> that browsing a git repo on the web is much more powerful than
> using cvsweb or equivalents, because it shows commits globally
> and time-ordered rather than by file, which is more meaningful.

yep, agree. While using svn via Eclipse IDE would have also a powerfull 
source/revision tracing functionality. That's what I do ;)

> Also, branching is powerful with git; it would help branch
> desires of contributors becoming reality more easily. Lastly, if
> you want to cherry pick some bugfixes and include them into
> stable kannel releases, you will also benefit from branches (I do
> use branches in CVS, I know it's possible, but it's painful).

yep, that's right. While branching/merging in svn is way more easier 
then cvs. Still, svn is a re-architectured VC and has more advanced 
concepts then CVS. (mainly each commit results in a whole revision tag, 
rather then revisioning single files like CVS does).

> Depends on what you mean by "compatible". Git can import cvs and
> svn repositories including tags and branches, AFAIK.

now, not looking for pure import compatibility, more into branching and 
merge applying compatibility. Which means, can we develop within git 
locally for the developers, and "clone" each operation within the 
central svn master?

> A lot of people do not use git as Linus does - e.g., it is
> possible to have a centralized git repo where everyone pulls
> from, and only a selected group of users can write to; that's
> actually how I use git for my projects (the "everyone will
> publish their modified repos" is a marketing argument, it's not
> practical for projects as long as no forking is desired).

understand.

> Then, what git allows for contributors is easily commit on their
> side, management of their changes, and then a unique patch
> posting; it makes contributors life easier because they can
> commit locally (so they can split their work in logical parts
> easily), even undo or amend commits before sending them; and
> then, it makes your life easier because they can submit their
> patches with "git-format-patch" which includes all modifications
> in a single file, and embeds their name and email, so that when
> you will commit upstream, the "author" name is kept (the
> contributor) and the "commiter" name also (you). Here's an
> example of such a commit on one of my projects:
> 
> http://frozen-bubble.org/cgi-bin/gitweb.cgi?p=frozen-bubble;a=commit;h=3ca6c2413a62f68c6f48a854b52018fda8c7dd42
> 
> There's another nice benefit I already experience with git, even
> in the "one commiter" or even "one developer" architecture: when
> you're working on a non trivial feature, and suddenly you realize
> you want to commit something else on the already modified file
> (either for a urgent fix, for some cleanup you've decided when
> working on that file, or because you realize there's some sort of
> "utility" improvement to be done on that file before the actual
> feature), then git helps a lot, whereas the operation with CVS is
> manual thus painful; either you can interactively select a few
> hunks from the diff with "git-add -i" or "git-gui", leaving the
> rest for the future; or you can also use "git-stash", which just
> saves all the changes somewhere, moving back your working copy to
> the latest commit; then later, git can recover the changes
> automatically.
> 
> Again, if you rather go with svn - boo! don't! - then nothing is
> needed on kannel side. Using git-svn on developers/contributors
> side is transparent to kannel.
> 
> Now, what I'd advice, before booing git, would be that you create
> yourself a git repo from the kannel cvs repo (it's very easy,
> check my doc), and work a couple of days on it, and see for
> yourself. In my opinion, it's really not that complicated, and
> improves a lot on other systems.

now the secret: I did work with git a some days :p ... we haven't yet 
moved to svn. Alex and I had been talking about it. Now, we have another 
option with git.

Thanks a lot for your advocation to git. I and the group appreciate it 
highly. It has spotted light on git. I guess we should see what the 
others say about it and then get a vote poll on the decision.

Stipe

-------------------------------------------------------------------
Kölner Landstrasse 419
40589 Düsseldorf, NRW, Germany

tolj.org system architecture      Kannel Software Foundation (KSF)
http://www.tolj.org/              http://www.kannel.org/

mailto:st_{at}_tolj.org           mailto:stolj_{at}_kannel.org
-------------------------------------------------------------------
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.