From: Russell King <rmk@arm.linux.org.uk>
To: Linus Torvalds <torvalds@osdl.org>
Cc: Petr Baudis <pasky@ucw.cz>, Git Mailing List <git@vger.kernel.org>
Subject: Re: Re-done kernel archive - real one?
Date: Mon, 18 Apr 2005 22:53:57 +0100 [thread overview]
Message-ID: <20050418225356.B16789@flint.arm.linux.org.uk> (raw)
In-Reply-To: <Pine.LNX.4.58.0504180802060.7211@ppc970.osdl.org>; from torvalds@osdl.org on Mon, Apr 18, 2005 at 08:23:16AM -0700
On Mon, Apr 18, 2005 at 08:23:16AM -0700, Linus Torvalds wrote:
> NOTE NOTE NOTE! This is untested! I'm writing this within the email
> editor, so do _not_ do this on a tree that you care about.
It did the right thing for me at least!
> #!/bin/sh
> #
> # use "$1" or something in a real script, this
> # just hard-codes it.
> #
> merge_repo=master.kernel.org:/pub/linux/kernel/people/torvalds/linux-2.6.git
>
> echo "Getting object database"
> rsync -avz --ignore-existing $merge_repo/ .git/
>
> echo "Getting remote head"
> rsync -avz $merge_repo/HEAD .git/MERGE_HEAD
>
> head=$(cat .git/HEAD)
> merge_head=$(cat .git/MERGE-HEAD)
> common=$(merge-base $head $merge_head)
> if [ -z "$common" ]; then
> echo "Unable to find common commit between" $merge_head $head
> exit 1
> fi
>
> # Get the trees associated with those commits
> common_tree=tree=$(cat-file commit $common | sed 's/tree //;q')
> head_tree=tree=$(cat-file commit $head | sed 's/tree //;q')
> merge_tree=tree=$(cat-file commit $merge | sed 's/tree //;q')
This wants to be:
common_tree=$(cat-file commit $common | sed 's/tree //;q')
head_tree=$(cat-file commit $head | sed 's/tree //;q')
merge_tree=$(cat-file commit $merge_head | sed 's/tree //;q')
> if [ "$common" == "$merge_head" ]; then
> echo "Already up-to-date. Yeeah!"
> exit 0
> fi
> if [ "$common" == "$head" ]; then
> echo "Updating from $head to $merge_head."
> echo "Destroying all noncommitted data!"
> echo "Kill me within 3 seconds.."
> sleep 3
> read-tree $merge_tree && checkout-cache -f -a
Don't we want to do an update-cache --refresh here?
> echo $merge_head > .git/HEAD
> exit 0
> fi
> echo "Trying to merge $merge_head into $head"
> read-tree -m $common_tree $head_tree $merge_tree
> result_tree=$(write-tree) || exit 1
> result_commit=$(echo "Merge $merge_repo" | commit-tree $result_tree -p $head -p $merge_head)
> echo "Committed merge $result_commit"
> echo $result_commit > .git/HEAD
> read-tree $result_tree && checkout-cache -f -a
>
> The above looks like it might work, but I also warn you: it's not only
> untested, but it's pretty fragile in that if something breaks, you are
> probably left with a mess. I _tried_ to do the right thing, but... So it
> obviously will need testing, tweaking and just general tender loving care.
Maybe Petr can improve the error handling, and incorporate it (or at
least some of it) into git-pasky
> You shouldn't hit the "merge" case at all right now, you should hit the
> "Updating from $head to $merge_head" thing.
Exactly what happened. Thanks.
--
Russell King
next prev parent reply other threads:[~2005-04-18 21:50 UTC|newest]
Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-04-16 23:01 Re-done kernel archive - real one? Linus Torvalds
2005-04-17 15:24 ` Russell King
2005-04-17 16:28 ` Petr Baudis
2005-04-17 16:36 ` Linus Torvalds
2005-04-17 18:57 ` Russell King
2005-04-17 19:33 ` Linus Torvalds
2005-04-17 19:45 ` Linus Torvalds
2005-04-17 19:51 ` Russell King
2005-04-17 20:08 ` Linus Torvalds
2005-04-17 20:11 ` Russell King
2005-04-17 20:26 ` Linus Torvalds
2005-04-17 20:42 ` Russell King
2005-04-18 22:16 ` Russell King
2005-04-18 22:33 ` Petr Baudis
2005-04-18 23:29 ` Linus Torvalds
2005-04-18 23:53 ` Petr Baudis
2005-04-17 16:05 ` Russell King
2005-04-17 16:44 ` Linus Torvalds
2005-04-17 18:13 ` David A. Wheeler
2005-04-17 18:14 ` Petr Baudis
2005-04-17 18:20 ` Russell King
2005-04-17 18:44 ` David A. Wheeler
2005-04-18 11:15 ` Martin Schlemmer
2005-04-17 20:21 ` H. Peter Anvin
2005-04-17 21:50 ` Jochen Roemling
2005-04-17 22:09 ` Randy.Dunlap
2005-04-17 22:30 ` Petr Baudis
2005-04-17 21:52 ` David Woodhouse
2005-04-17 22:17 ` Linus Torvalds
2005-04-17 22:19 ` Russell King
2005-04-17 22:51 ` Russell King
2005-04-17 23:24 ` Linus Torvalds
2005-04-18 9:23 ` Russell King
2005-04-18 11:14 ` Martin Schlemmer
2005-04-18 11:15 ` Petr Baudis
2005-04-18 15:23 ` Linus Torvalds
2005-04-18 17:05 ` Linus Torvalds
2005-04-18 18:07 ` Petr Baudis
2005-04-18 21:53 ` Russell King [this message]
2005-04-18 22:01 ` Linus Torvalds
2005-04-18 22:48 ` Petr Baudis
2005-04-18 22:59 ` Russell King
2005-04-18 23:09 ` Petr Baudis
2005-04-19 7:27 ` Russell King
2005-04-18 23:31 ` Linus Torvalds
2005-04-18 21:33 ` Russell King
2005-04-18 21:56 ` Linus Torvalds
2005-04-18 14:22 ` Petr Baudis
2005-04-18 15:04 ` Greg KH
2005-04-18 15:25 ` Randy.Dunlap
2005-04-18 15:42 ` Linus Torvalds
2005-04-18 22:05 ` Greg KH
2005-04-18 22:14 ` Greg KH
2005-04-18 23:16 ` Linus Torvalds
2005-04-18 23:26 ` Greg KH
2005-04-18 23:10 ` Linus Torvalds
2005-04-17 22:20 ` H. Peter Anvin
2005-04-17 22:22 ` randy_dunlap
2005-04-17 23:21 ` David Woodhouse
2005-04-18 1:33 ` randy_dunlap
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20050418225356.B16789@flint.arm.linux.org.uk \
--to=rmk@arm.linux.org.uk \
--cc=git@vger.kernel.org \
--cc=pasky@ucw.cz \
--cc=torvalds@osdl.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.