Re: gcapatcch equivalent?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]
  Powered by Linux