On 03/29/2010 11:00 PM, xor wrote:
> I thought I had:
> - used "git fetch git://bombe-repository-uri identicon" to get bombe's
> identicon branch
> - used "git merge identicon" to merge it to master
> - used git fetch to get saces' branch (called saces aswell)
> - used git cherrypick to cherrypick commits from saces' branch
>
ahhh i see the problem. since Bombe's identicon branch was ahead of master,
when you did "git merge", git automatically resolved this as a fast-forward,
and moved the master branch pointer on top of the "identicon" branch pointer,
instead of doing a merge-by-recursive[1] commit.
the first time i did this, it threw me off too. git should only do this when
pulling from the tracking repo, IMO.
to avoid this in future, use "git merge --no-ff"
you can also do this in one single step with "git pull --no-ff
git://bombe-repository-uri identicon"
> And I would like to know how I should have done it because the same
> operations
> have to be done for Freetalk... there are bombe and saces branches there
> aswell...
>
just remember to --no-ff, and it'll work properly.
>> This effectively cancels all the work on the master branch from feb 16 to
>> feb 26. Was this intended? If you can't fix it I can, but I'll need to
>> make some forced pushes.
>
> No :(
> Why does it? :(
actually, never mind, it's OK. i got confused myself too. the history will look
even weirder when Bombe starts working on the identicon branch again, but that
doesn't matter too much i suppose.
X
[1] man git-merge:
FAST-FORWARD MERGE
Often the current branch head is an ancestor of the named commit. This
is the most common case especially when
invoked from git pull: you are tracking an upstream repository, you have
committed no local changes, and now
you want to update to a newer upstream revision. In this case, a new
commit is not needed to store the
combined history; instead, the HEAD (along with the index) is updated to
point at the named commit, without
creating an extra merge commit.
This behavior can be suppressed with the --no-ff option.