Skip to contentSkip to conversation

Git tree rebased

parisc-linux Matthew Wilcox 2 participants 3 messages Oct 31, 2006 – Nov 1, 2006 2 messages not in the archive

lore
Share & tools
lore
#0 lore raw

So, as discussed previously [1], I've just rebased the git tree on top of Linus' 2.6.19-rc4. You can see our old history on the devel-2006-10-31 branch [2], but our shiny new history is on master, and conveniently at the top for easy reading of what we haven't merged yet.

If your remotes file currently has a line in it like:

Pull: refs/heads/master:refs/heads/origin

then you'll want to add the '+' at the beginning:

Pull: +refs/heads/master:refs/heads/origin

otherwise git will refuse to update. With the +, it will complain, but do it anyway.

[1] http://lists.parisc-linux.org/pipermail/parisc-linux/2006-October/030326.html
[2] http://git.parisc-linux.org/?p=linux-2.6.git;a=shortlog;h=devel-2006-10-31
_______________________________________________
parisc-linux mailing list
[email protected]
http://lists.parisc-linux.org/mailman/listinfo/parisc-linux

#1 lore raw
Quoted 10 lines · Matthew Wilcox

If your remotes file currently has a line in it like:

Pull: refs/heads/master:refs/heads/origin

then you'll want to add the '+' at the beginning:

Pull: +refs/heads/master:refs/heads/origin

otherwise git will refuse to update. With the +, it will complain, but do it anyway.

As we've now learned, it's not that easy. The problem is that all your local repositories have a divergent branch of history from the one now in the shared repo's master branch. Here's a recovery guide. Sorry for all the inconvenience.

First, be sure your tree is clean before you pull. ie git-diff returns nothing. Otherwise you'll be in even more pain than the rest of this.

Now, if you have no commits outstanding vs upstream (git-log origin..master returns nothing), life is fairly easy. After you put in the + above, you need to git-pull, then

git-checkout origin
git-branch -D master
git-checkout -b master

Now you can work as before.

If you have commits in your master branch, then we need to move them over to the new origin branch.

git-fetch origin devel-2006-10-31:devel-2006-10-31
git-fetch origin
git-checkout -b new-master origin
for i in git-rev-list devel-2006-10-31..master |tac; do if ! git-cherry-pick -r $i; then sh; fi; done

# assuming the above goes OK
git-branch -D master
git-checkout -b master
git-branch -d new-master

Any more problems, please let me know. I hadn't thought through all the consequences of rebasing the current master branch.
_______________________________________________
parisc-linux mailing list [email protected]
http://lists.parisc-linux.org/mailman/listinfo/parisc-linux

A message that is not in the archive (sent off-list or not yet received): [email protected]

A message that is not in the archive (sent off-list or not yet received): [email protected]

#4 lore raw
Quoted 8 lines · Matthew Wilcox
Quoted 4 lines · Joel Soete

* refs/heads/origin: does not fast forward to branch 'master' of git://git.parisc-linux.org/git/linux-2.6;
not updating.

Any idea of what I missed?

It's THE BIT YOU JUST QUOTED!

well ...

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

If your remotes file currently has a line in it like:

trying so to translate your idea in non git expert you mean that file:

# find . -type f | xargs grep "refs/heads/master"
./.git/remotes/origin:Pull: refs/heads/master:refs/heads/origin
./.git/HEAD:ref: refs/heads/master
Quoted 6 lines
Quoted 6 lines
Quoted 6 lines

Pull: refs/heads/master:refs/heads/origin

then you'll want to add the '+' at the beginning:

Pull: +refs/heads/master:refs/heads/origin

so my .git/remotes/origin looks like now:
URL: git://git.parisc-linux.org/git/linux-2.6.git
Pull: +refs/heads/master:refs/heads/origin
Pull: refs/heads/linus:refs/heads/linus
Pull: refs/heads/scsi:refs/heads/scsi

Quoted 1 line
Quoted 1 line
Quoted 1 line

otherwise git will refuse to update. With the +, it will complain,

Ok it do something:

# git-pull 2>&1 | tee -a /var/logs/GitParisc26.log
remote: Generating pack...
remote: Done counting 1545 objects.
remote: Result has 1156 objects.
remote: Deltifying 1156 objects.
remote:  100% (1156/1156) done
Unpacking 1156 objects
remote: Total 1156, written 1156 (delta 947), reused 15 (delta 11)
* refs/heads/origin: does not fast forward to branch 'master' of git://git.parisc-linux.org/git/linux-2.6;
  forcing update.
* refs/heads/linus: fast forward to branch 'linus' of git://git.parisc-linux.org/git/linux-2.6
  from e80391500078b524083ba51c3df01bbaaecc94bb to ae99a78af33f00565a05dbbc6ca9b247fed002c5
Auto-following refs/tags/v2.6.19-rc4-pa0
Auto-following refs/tags/v2.6.19-rc4
remote: Generating pack...
remote: Done counting 2 objects.
remote: Deltifying 2 objects.
remote:  100% (2/2) done
remote: Total 2, written 2 (delta 0), reused 0 (delta 0)
Unpacking 2 objects
* refs/tags/v2.6.19-rc4-pa0: storing tag 'v2.6.19-rc4-pa0' of git://git.parisc-linux.org/git/linux-2.6
* refs/tags/v2.6.19-rc4: storing tag 'v2.6.19-rc4' of git://git.parisc-linux.org/git/linux-2.6
Trying really trivial in-index merge...
fatal: Merge requires file-level merging
Nope.
merge: warning: conflicts during merge
Merging HEAD with 1c5484420c0a451eafd30121fd1fcc62bd234f1e
Merging:
823bbec4f4c48113da0083fc8220d60748daf8ed PA-RISC: sparse fixes
1c5484420c0a451eafd30121fd1fcc62bd234f1e Enable CONFIG_LOCALVERSION_AUTO in defconfigs
found 1 common ancestor(s):
7059abedd2f04b68bd7e1a79c9c72f7aeee134c0 Linux 2.6.19-rc3
Auto-merging Makefile
CONFLICT (content): Merge conflict in Makefile
Auto-merging arch/ia64/ia32/ia32_signal.c
Auto-merging arch/parisc/configs/712_defconfig
Auto-merging arch/parisc/configs/a500_defconfig
Auto-merging arch/parisc/configs/b180_defconfig
Auto-merging arch/parisc/configs/c3000_defconfig
Auto-merging arch/parisc/defconfig
Auto-merging arch/x86_64/ia32/ia32_signal.c
Removing include/asm-i386/mach-visws/do_timer.h
Auto-merging include/linux/compat.h
Auto-merging kernel/compat.c
Automatic merge failed; fix conflicts and then commit the result.
Quoted 1 line
Quoted 1 line
Quoted 1 line

but do it anyway.

root@sidh:/Develop/parisc-linux/parisc-2.6 # head Makefile VERSION = 2
PATCHLEVEL = 6
SUBLEVEL = 19
<<<<<<< HEAD/Makefile
EXTRAVERSION =-rc3-pa0
=======
EXTRAVERSION =-rc4

Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

1c5484420c0a451eafd30121fd1fcc62bd234f1e/Makefile

NAME=Avast! A bilge rat!

And now what am I supposed to do with this 'conflictual' file in my local git tree?

(I know what I have to do if I want to use this file to build the kernel but what's up for the next git-pull?)

Joel

Quoted 2 lines

_______________________________________________
parisc-linux mailing list
[email protected]
http://lists.parisc-linux.org/mailman/listinfo/parisc-linux