From: Ryan Anderson <ryan@michonline.com>
To: Andrew Morton <akpm@osdl.org>
Cc: Dave Airlie <airlied@linux.ie>, linux-kernel@vger.kernel.org
Subject: Re: gcapatcch equivalent?
Date: Sun, 7 Aug 2005 00:38:52 -0400 [thread overview]
Message-ID: <20050807043852.GB5271@mythryan2.michonline.com> (raw)
In-Reply-To: <20050805151017.745f4188.akpm@osdl.org>
On Fri, Aug 05, 2005 at 03:10:17PM -0700, Andrew Morton wrote:
> I do this, which mostly works:
>
> MERGE_BASE=$(git-merge-base $(cat .git/refs/heads/origin ) \
> $(cat .git/refs/heads/$patch_name))
>
> cg-diff -r $MERGE_BASE:$(cat .git/refs/heads/$patch_name) >> \
> $PULL/$patch_name.patch
>
> (I'm supposed to be doing real git merges of 40 trees and let git do more
> work for me. I'll do that when I'm feeling really, really trusting).
Would something like this make you more comfortable?
You get one repository per tree, but hardlinked objects so space
shouldn't be an issue... and each one works "normally".
All you need to do is setup "origin" as the Linus's tree, then clone
each of the other repositories you want to track, then run this script.
(You *may* want to clone Linus's tree, then edit .git/branches/origin in
each of the sub-trees to save a lot of network bandwidth, but it
shouldn't matter, as the git relink will get you to about the same state
after the first run anyway.)
==========================
#!/bin/sh
repos="agpgart cpufreq net-2.6 sparc-2.6"
rm -rf merged
git clone -l origin merged
for i in $repos ; do echo "../$i" > "merged/.git/branches/$i" ; done
git relink agpgart/ cpufreq/ net-2.6/ sparc-2.6/ merged/ origin/
( cd origin ; git pull origin )
for i in $repos ; do
(
cd "$i"
git pull origin
)
done
cd merged
mkdir -p .git/refs/merge-points/
for i in $repos ; do
cat .git/HEAD > ".git/refs/merge-points/pre-$i"
git pull "$i"
# Note, this should trigger off an error return from git pull
# Unfortunately, git pull always returns an error, so it doesn't
# work quite perfectly - hence this being unconditional.
echo "Please fix up the merge if necessary, commit it, and exit this subshell."
sh
cat .git/HEAD > ".git/refs/merge-points/post-$i"
git diff $(cat .git/refs/merge-points/pre-$i)..$(cat .git/refs/merge-points/post-$i) > "../$i.patch"
done
--
Ryan Anderson
sometimes Pug Majere
next prev parent reply other threads:[~2005-08-07 4:39 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-08-05 10:59 Dave Airlie
2005-08-05 22:10 ` Andrew Morton
2005-08-07 4:38 ` Ryan Anderson [this message]
2005-08-07 7:12 ` Jeff Garzik
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=20050807043852.GB5271@mythryan2.michonline.com \
--to=ryan@michonline.com \
--cc=airlied@linux.ie \
--cc=akpm@osdl.org \
--cc=linux-kernel@vger.kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®