On Wed, Mar 7, 2012 at 6:20 AM, Diederik van Liere <[email protected]> wrote:
> 1) The Git / Gerrit combination means that you will have to understand
> git rebase, git commit --amend, git bisect and git cherry-pick. This
> is advanced Git usage and that will make the learning curve steeper. I
> think we need to spend more time on training, I have been looking for
> good tutorials about Git&Gerrit in practise and I haven't been able to
> find it but maybe other people have better Google Fu skills (I think
> we are looking for advanced tutorials, not just cloning and pulling,
> but also merging, bisect and cherrypick).

I can second that. I recently had to pick up Git (and what I guess is
the gated-trunk model) for a couple of projects, and I found it quite
hard to adapt to. The most jarring thing, coming from subversion, was
getting into the habit of considering each piece of work as entirely
independent of any other, so, instead of:

checkout code
add a feature
update - nothing new
commit
add a feature
update - merge
commit
...

You do:

checkout code
create branch (or however you will do it here)
add a feature
commit/push
checkout master again...

In other words, you don't think of adding new layers of code to a
single monolithic code base, you think of sending individual,
independent packets of code to be combined in some order.

And if you mess up the branching, it can be incredibly confusing with
Git's crappy command line interface to know how to recover. (Hint: you
can achieve a lot with cherrypick and reflog)

I had such a bad time of it, I wrote a big anti-Git rant:
http://steveko.wordpress.com/2012/02/24/10-things-i-hate-about-git/

At the very bottom is a conceptual model of Git compared to Subversion
that may actually be helpful.

Steve

_______________________________________________
Wikitech-l mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Reply via email to