Breaking up repositories

5 messages, 5 authors, 2016-06-15 · open the first message on its own page

Breaking up repositories

From: Jason Sewall <hidden>
Date: 2016-06-15 22:43:13

I recently imported my subversion repo with git-svn and I'm curious
what the best way to break up the monolithic repo (my many disparate
projects from my single svn repo) into individual git repos of their
own.

 I'm still trying to get a grasp on the considerable git toolbox and I
can't seem to find the functionality I'm describing, but I'm sure it
exists - I heard Linus talk about it in that Google talk on git!

Thanks,
Jason

Re: Breaking up repositories

From: Dave Hanson <hidden>
Date: 2016-06-15 22:43:13

I had similar problem; I split my monolithic repo, monolithic-git, as follows.

1. When I did the git-svn, I ended up with git branches for each
project in my svn repo. I think I created these by hand, but I don't
recall.

2. To split project foo into its own repo, foo-git, from monolithic-git, I did:

mkdir foo-git
cd foo-git
git init
git pull ../monolithic-git foo
From then on, I worked in foo-git. Eventually, I pitched
monolithic-git. I suspect there's a better way to do this...others
will surely chime in.
dave h

Re: Breaking up repositories

From: Josh Triplett <hidden>
Date: 2016-06-15 22:43:13

Jason Sewall wrote:
I recently imported my subversion repo with git-svn and I'm curious
what the best way to break up the monolithic repo (my many disparate
projects from my single svn repo) into individual git repos of their
own.

 I'm still trying to get a grasp on the considerable git toolbox and I
can't seem to find the functionality I'm describing, but I'm sure it
exists - I heard Linus talk about it in that Google talk on git!
In the specific case of git-svn, you can probably give git-svn the
appropriate paths to import each project separately; that may do what you
want, depending on your repository layout.

In the general case, if you want to split a subtree of a git repo into a git
repo, you want git-split, by Jamey Sharp and I:
<http://people.freedesktop.org/~jamey/git-split>
From a copy of the git repo you want to split, just run "git-split subdir",
optionally with a newest and oldest commit, and it will output the sha1 of
the new top commit for use as the new branch ref.  Remove all other
branches, reflogs, and other references to the old commits, and use prune
or gc to get rid of old objects.  Repeat as desired for other subdirs.

We really need to fix some things in git-split and get it merged into git.

- Josh Triplett

Re: Breaking up repositories

From: Andy Parkins <hidden>
Date: 2016-06-15 22:43:13

On Thursday 2007 May 31, Josh Triplett wrote:
We really need to fix some things in git-split and get it merged into git.
Obviously it's Junio's call, but can I suggest that getting it in the git tree 
(presumably under contrib/) should not be dependent on fixing 
whatever "things" you are worrying about?  Waiting until it's perfect before 
submitting it.  As Voltaire said (I think), "better is the enemy of good".

Speaking from my own personal viewpoint, while I'm not a huge contributor to 
git, I do fix the odd buglet here and there - and here's the rub - I only do 
it to those files that are in the git tree.

While git-split is being maintained separately, I would argue that there are 
less eyes on it.  Get it in, regardless of state, at the very least it will 
mean that git-split's development will be tracked as publicly as git.


Andy
-- 
Dr Andy Parkins, M Eng (hons), MIET
andyparkins@gmail.com

Re: Breaking up repositories

From: Jakub Narebski <hidden>
Date: 2016-06-15 22:43:13

Josh Triplett wrote:
Jason Sewall wrote:
quoted
I recently imported my subversion repo with git-svn and I'm curious
what the best way to break up the monolithic repo (my many disparate
projects from my single svn repo) into individual git repos of their
own.
In the specific case of git-svn, you can probably give git-svn the
appropriate paths to import each project separately; that may do what you
want, depending on your repository layout.

In the general case, if you want to split a subtree of a git repo into a git
repo, you want git-split, by Jamey Sharp and I:
<http://people.freedesktop.org/~jamey/git-split>
From a copy of the git repo you want to split, just run "git-split subdir",
optionally with a newest and oldest commit, and it will output the sha1 of
the new top commit for use as the new branch ref.  Remove all other
branches, reflogs, and other references to the old commits, and use prune
or gc to get rid of old objects.  Repeat as desired for other subdirs.
I have added info about git-split to Git Wiki
  http://git.or.cz/gitwiki/InterfacesFrontendsAndTools

Please improve this information, and correct if it is wrong.
-- 
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help