lkml.org 
[lkml]   [2005]   [Aug]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: gcapatcch equivalent?
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
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-08-07 06:53    [W:0.161 / U:0.420 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site