Re: [RFC][PATCH 0/3] Different views on a repository
- From
- Andreas Gruenbacher <agruen@suse.de>
- Date
- Feb 26, 2010, 12:01 UTC
- Message-ID
- <201002261301.39243.agruen@suse.de>
- In-Reply-To
- <c376da901002252012s507a6921q922e606bdce4b4fa@mail.gmail.com>
On Friday 26 February 2010 05:12:45 Adam Brewster wrote:
Show 24 quoted lines
> The idea was to push from all of my repositories into a super repository > with a fancy (and auto-generated) refspec. The actual code is > impenetrable, but reconstructing it in everybody's favorite IDE, gmail, I > came up with > > #!/bin/bash > PROJECTS=$HOME/projects > SUPER=$HOME/projects/.git-super-repo > > [[ -d "$SUPER" ]] || \ > (mkdir "$SUPER"; git --git-dir="$SUPER" init) > > for i in $PROJECTS/*/.git; do > name=$(basename "$(dirname "$0")") > echo "$SUPER/objects" > $i/.git/objects/info/alternates > git --git-dir="$i" push -f "$SUPER" "*:refs/$name/*" > done > > git --git-dir="$SUPER" gc --aggressive > > for i in $PROJECTS/*/.git; do > git --git-dir="$i" repack -Ad #unnecessary? > git --git-dir="$i" gc --aggressive > done
I see, when multiple projects share the same objects, you push them into those projects independently first, and the script will later move them to $SUPER.
> Clearly I can lose data if I try to rebase $SUPER or something, but I think > it's pretty safe for normal use.
It looks safe unless somebody messes with $SUPER. A lot of repacking will still occur as part of moving stuff to $SUPER, though.
I was trying to set things up so that this extra work won't be necessary in the first place.
Thanks!
Andreas