Thread (3 messages) flat view 3 messages, 3 authors, 2016-06-15

Re: Merge two repos with history included? (was Re: How do I..?)

From: Alexander Gavrilov <hidden>
Date: 2016-06-15 22:45:49

On Tuesday 23 December 2008 03:44:07 Miklos Vajna wrote:
On Mon, Dec 22, 2008 at 02:04:06PM -0800, Dylan Martin [off-list ref] wrote:
quoted
I checked, and my initial SVN to git conversion does contain history.

I'm trying to add an exising repo as a subdir of my main repo with
history included.  Can anyone tell me how to do that?
I would try the following: Let's say you have super.git and foo.git, and
you want to merge foo.git to the subdirectory 'foo' of super.git. Then
you can do in foo.git:

mkdir foo
mv * foo
git add foo
git commit -a

Then in super.git:

git pull path/to/foo.git master

And then git log --follow should work just fine on any merged files as
well.

If the conversion is one-shot, you can also try rewriting commits like this:

cd foo.git
git filter-branch --commit-filter 'TREE=$1; shift; git commit-tree $(echo -e "040000 tree $TREE\tfoo" | git mktree) "$@"' master

(Maybe there is a simpler way, though)

I used this once to merge together the history of a bunch of interrelated (and now dead) projects.

Alexander
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help