git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Merging repositories and their histories
@ 2008-08-18 16:46 Peter Waller
  2008-08-18 17:35 ` Alex Riesen
  2008-08-21 21:48 ` Marcus Griep
  0 siblings, 2 replies; 8+ messages in thread
From: Peter Waller @ 2008-08-18 16:46 UTC (permalink / raw)
  To: git


I have three repositories, A, B and C. I wish to bring them together to only
one repository (.), where they are in a directory called ./Archive, so..
./Archive/{A,B,C}. Then I plan at a later date to move files arbitrarily
from ./Archive/{A/B/C}/Something and into ./Something{A/B/C}. (A lame
example, but illustrates what I want to do).

I would like ./SomethingA (etc) to have their complete histories from the
old repository. I thought I would do this with the subtree mechanism
described at
http://www.kernel.org/pub/software/scm/git/docs/howto/using-merge-subtree.html,
but I have had little luck getting it to work as I desired.

Firstly, I create a new repository with git init, then I "remote add A",
"merge" and "readtree". This immediately leads to two copies of A's files,
in ./Archive/A/Files and ./Files. The files in Archive/A do not have any
history.

Then if I do this with B, the files do not appear in ./, but again they do
not have their history. I have tried using git log --follow -M, but this
does not seem to help. I have tried numerous other ways of doing this, but
none seem to work.

I thought I would get around my problems doing the merge, then moving the
files - this works for A, but when I move on to B, the files are not in ./,
so I can't move them. If I read-tree some files, git status/commit shows
them as 'new files' and does not seem to recognize them as old files with a
long history.

Any help would be appreciated on this problem.

Thanks in advance,

- Peter
-- 
View this message in context: http://www.nabble.com/Merging-repositories-and-their-histories-tp19035412p19035412.html
Sent from the git mailing list archive at Nabble.com.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Merging repositories and their histories
  2008-08-18 16:46 Merging repositories and their histories Peter Waller
@ 2008-08-18 17:35 ` Alex Riesen
  2008-08-18 18:16   ` Peter Waller
       [not found]   ` <d3d284ca0808181115j2c9ab5ecufb66780f45d28207@mail.gmail.com>
  2008-08-21 21:48 ` Marcus Griep
  1 sibling, 2 replies; 8+ messages in thread
From: Alex Riesen @ 2008-08-18 17:35 UTC (permalink / raw)
  To: Peter Waller; +Cc: git

Peter Waller, Mon, Aug 18, 2008 18:46:14 +0200:
> 
> I have three repositories, A, B and C. I wish to bring them together to only
> one repository (.), where they are in a directory called ./Archive, so..
> ./Archive/{A,B,C}. Then I plan at a later date to move files arbitrarily
> from ./Archive/{A/B/C}/Something and into ./Something{A/B/C}. (A lame
> example, but illustrates what I want to do).

If this transition is meant to be persistent (IOW, the A, B and C stop
existing as repos on their own) you can rewrite their histories to be
in the directories (with git filter-branch) and just merge them in
one. Then the histories will look like as if they have never grown
separately.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Merging repositories and their histories
  2008-08-18 17:35 ` Alex Riesen
@ 2008-08-18 18:16   ` Peter Waller
       [not found]   ` <d3d284ca0808181115j2c9ab5ecufb66780f45d28207@mail.gmail.com>
  1 sibling, 0 replies; 8+ messages in thread
From: Peter Waller @ 2008-08-18 18:16 UTC (permalink / raw)
  To: Alex Riesen; +Cc: git

I don't quite understand what you are suggesting I do.

I have looked over the filter-branch manpage.

What would I first do? Copy all three repositories to
./Archive/{A,B,C}? Then rewrite their histories?

- Peter

2008/8/18 Alex Riesen <raa.lkml@gmail.com>
>
> Peter Waller, Mon, Aug 18, 2008 18:46:14 +0200:
> >
> > I have three repositories, A, B and C. I wish to bring them together to only
> > one repository (.), where they are in a directory called ./Archive, so..
> > ./Archive/{A,B,C}. Then I plan at a later date to move files arbitrarily
> > from ./Archive/{A/B/C}/Something and into ./Something{A/B/C}. (A lame
> > example, but illustrates what I want to do).
>
> If this transition is meant to be persistent (IOW, the A, B and C stop
> existing as repos on their own) you can rewrite their histories to be
> in the directories (with git filter-branch) and just merge them in
> one. Then the histories will look like as if they have never grown
> separately.
>

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Merging repositories and their histories
       [not found]   ` <d3d284ca0808181115j2c9ab5ecufb66780f45d28207@mail.gmail.com>
@ 2008-08-18 19:40     ` Alex Riesen
  2008-08-18 21:25       ` Peter Waller
  0 siblings, 1 reply; 8+ messages in thread
From: Alex Riesen @ 2008-08-18 19:40 UTC (permalink / raw)
  To: Peter Waller; +Cc: git

Peter Waller, Mon, Aug 18, 2008 20:15:52 +0200:
> 2008/8/18 Alex Riesen <raa.lkml@gmail.com>
> 
> > Peter Waller, Mon, Aug 18, 2008 18:46:14 +0200:
> > >
> > > I have three repositories, A, B and C. I wish to bring them
> > > together to only one repository (.), where they are in a
> > > directory called ./Archive, so..  ./Archive/{A,B,C}. Then I plan
> > > at a later date to move files arbitrarily from
> > > ./Archive/{A/B/C}/Something and into ./Something{A/B/C}. (A lame
> > > example, but illustrates what I want to do).
> >
> > If this transition is meant to be persistent (IOW, the A, B and C stop
> > existing as repos on their own) you can rewrite their histories to be
> > in the directories (with git filter-branch) and just merge them in
> > one. Then the histories will look like as if they have never grown
> > separately.
> >
> I don't quite understand what you are suggesting I do.
> 
> I have looked over the filter-branch manpage.
> 
> What would I first do? Copy all three repositories to ./Archive/{A,B,C}?

Fetch, actually.

    $ mkdir combined && cd combined
    $ git init
    $ git fetch ../A master:A
    $ git fetch ../B master:B
    $ git fetch ../C master:C

> Then rewrite their histories?

There is an example at the end of git-filter-branch manpage. Search
for "To move the whole tree into a subdirectory". Just use A, B and C
instead of HEAD as last argument.

Then checkout one of the new, the rewritten, branches, and merge the
two others into it:

    $ git checkout A
    $ git merge B
    $ git merge C

That's it.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Merging repositories and their histories
  2008-08-18 19:40     ` Alex Riesen
@ 2008-08-18 21:25       ` Peter Waller
  0 siblings, 0 replies; 8+ messages in thread
From: Peter Waller @ 2008-08-18 21:25 UTC (permalink / raw)
  To: Alex Riesen; +Cc: git

Thanks, it worked.

2008/8/18 Alex Riesen <raa.lkml@gmail.com>:
> Peter Waller, Mon, Aug 18, 2008 20:15:52 +0200:
>> 2008/8/18 Alex Riesen <raa.lkml@gmail.com>
>>
>> > Peter Waller, Mon, Aug 18, 2008 18:46:14 +0200:
>> > >
>> > > I have three repositories, A, B and C. I wish to bring them
>> > > together to only one repository (.), where they are in a
>> > > directory called ./Archive, so..  ./Archive/{A,B,C}. Then I plan
>> > > at a later date to move files arbitrarily from
>> > > ./Archive/{A/B/C}/Something and into ./Something{A/B/C}. (A lame
>> > > example, but illustrates what I want to do).
>> >
>> > If this transition is meant to be persistent (IOW, the A, B and C stop
>> > existing as repos on their own) you can rewrite their histories to be
>> > in the directories (with git filter-branch) and just merge them in
>> > one. Then the histories will look like as if they have never grown
>> > separately.
>> >
>> I don't quite understand what you are suggesting I do.
>>
>> I have looked over the filter-branch manpage.
>>
>> What would I first do? Copy all three repositories to ./Archive/{A,B,C}?
>
> Fetch, actually.
>
>    $ mkdir combined && cd combined
>    $ git init
>    $ git fetch ../A master:A
>    $ git fetch ../B master:B
>    $ git fetch ../C master:C
>
>> Then rewrite their histories?
>
> There is an example at the end of git-filter-branch manpage. Search
> for "To move the whole tree into a subdirectory". Just use A, B and C
> instead of HEAD as last argument.
>
> Then checkout one of the new, the rewritten, branches, and merge the
> two others into it:
>
>    $ git checkout A
>    $ git merge B
>    $ git merge C
>
> That's it.
>

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Merging repositories and their histories
  2008-08-18 16:46 Merging repositories and their histories Peter Waller
  2008-08-18 17:35 ` Alex Riesen
@ 2008-08-21 21:48 ` Marcus Griep
  2008-08-21 21:53   ` Peter Waller
  2008-08-22 12:19   ` Alex Riesen
  1 sibling, 2 replies; 8+ messages in thread
From: Marcus Griep @ 2008-08-21 21:48 UTC (permalink / raw)
  To: Peter Waller; +Cc: git

[-- Attachment #1: Type: text/plain, Size: 829 bytes --]

Peter Waller wrote:
> I have three repositories, A, B and C. I wish to bring them together to only
> one repository (.), where they are in a directory called ./Archive, so..
> ./Archive/{A,B,C}. Then I plan at a later date to move files arbitrarily
> from ./Archive/{A/B/C}/Something and into ./Something{A/B/C}. (A lame
> example, but illustrates what I want to do).

Peter Waller also wrote:
> Thanks, it worked.
> 
> 2008/8/18 Alex Riesen <raa.lkml@gmail.com>:
> > > Peter Waller, Mon, Aug 18, 2008 20:15:52 +0200:
> >> >> 2008/8/18 Alex Riesen <raa.lkml@gmail.com>
> >> >>
> >>> >> > Peter Waller, Mon, Aug 18, 2008 18:46:14 +0200:
> >>>> >> > >
> >>>> >> > > (The same thing as above)

Did it actually not work?

-- 
Marcus Griep
GPG Key ID: 0x5E968152
——
http://www.boohaunt.net
את.ψο´


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 793 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Merging repositories and their histories
  2008-08-21 21:48 ` Marcus Griep
@ 2008-08-21 21:53   ` Peter Waller
  2008-08-22 12:19   ` Alex Riesen
  1 sibling, 0 replies; 8+ messages in thread
From: Peter Waller @ 2008-08-21 21:53 UTC (permalink / raw)
  To: git

Nabble kept telling me that my post was not submitted, which I found
very confusing, so I ended up trying to resubmit the post. Sorry for
the spam. This is now sorted.

Cheers for the keen-ness to help! :-)

- Pete

2008/8/21 Marcus Griep <neoeinstein@gmail.com>
>
> Peter Waller wrote:
> > I have three repositories, A, B and C. I wish to bring them together to only
> > one repository (.), where they are in a directory called ./Archive, so..
> > ./Archive/{A,B,C}. Then I plan at a later date to move files arbitrarily
> > from ./Archive/{A/B/C}/Something and into ./Something{A/B/C}. (A lame
> > example, but illustrates what I want to do).
>
> Peter Waller also wrote:
> > Thanks, it worked.
> >
> > 2008/8/18 Alex Riesen <raa.lkml@gmail.com>:
> > > > Peter Waller, Mon, Aug 18, 2008 20:15:52 +0200:
> > >> >> 2008/8/18 Alex Riesen <raa.lkml@gmail.com>
> > >> >>
> > >>> >> > Peter Waller, Mon, Aug 18, 2008 18:46:14 +0200:
> > >>>> >> > >
> > >>>> >> > > (The same thing as above)
>
> Did it actually not work?
>
> --
> Marcus Griep
> GPG Key ID: 0x5E968152
> ——
> http://www.boohaunt.net
> את.ψο´
>

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Merging repositories and their histories
  2008-08-21 21:48 ` Marcus Griep
  2008-08-21 21:53   ` Peter Waller
@ 2008-08-22 12:19   ` Alex Riesen
  1 sibling, 0 replies; 8+ messages in thread
From: Alex Riesen @ 2008-08-22 12:19 UTC (permalink / raw)
  To: Marcus Griep; +Cc: Peter Waller, git

2008/8/21 Marcus Griep <neoeinstein@gmail.com>:
>> 2008/8/18 Alex Riesen <raa.lkml@gmail.com>:
>> > > Peter Waller, Mon, Aug 18, 2008 20:15:52 +0200:
>> >> >> 2008/8/18 Alex Riesen <raa.lkml@gmail.com>
>> >> >>
>> >>> >> > Peter Waller, Mon, Aug 18, 2008 18:46:14 +0200:
>> >>>> >> > >
>> >>>> >> > > (The same thing as above)
>
> Did it actually not work?
>

Why not?

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2008-08-22 12:20 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-08-18 16:46 Merging repositories and their histories Peter Waller
2008-08-18 17:35 ` Alex Riesen
2008-08-18 18:16   ` Peter Waller
     [not found]   ` <d3d284ca0808181115j2c9ab5ecufb66780f45d28207@mail.gmail.com>
2008-08-18 19:40     ` Alex Riesen
2008-08-18 21:25       ` Peter Waller
2008-08-21 21:48 ` Marcus Griep
2008-08-21 21:53   ` Peter Waller
2008-08-22 12:19   ` Alex Riesen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).