From: Marius Seritan <hidden> Date: 2016-06-15 22:46:05
I imported over night an svn repository with the command:
git svn clone --prefix svn/ -r 860 http://svn.some.com/svn/someproject
The svn repository uses the usual trunk, branches, tag so I (wrongly?)
assumed I do not need to pass any command switches regarding the
structure of the repo.
I obviously did something wrong because now I have a git repository
with just one remote branch and it contains the folders trunk,
branches and tag. I do not want to reimport because it is taking lots
of time and bandwidth.
How can I fix this? I do not really need the old branches and tags, I
want to be able to track new branches and I just want to have the
trunk history.
Thanks for any pointers.
Marius
From: Brian Gernhardt <hidden> Date: 2016-06-15 22:46:06
On Feb 4, 2009, at 12:03 PM, Marius Seritan wrote:
I imported over night an svn repository with the command:
git svn clone --prefix svn/ -r 860 http://svn.some.com/svn/
someproject
The svn repository uses the usual trunk, branches, tag so I
(wrongly?) assumed I do not need to pass any command switches
regarding the structure of the repo.
"git svn clone URL" attempts to act like "svn co URL", but with
history. If you only want to download the trunk, then you should add
"/trunk" to the end of the URL. If you want to capture all the
branches, tags, etc you should use "--stdlayout" (also spelled "-s").
I obviously did something wrong because now I have a git repository
with just one remote branch and it contains the folders trunk,
branches and tag. I do not want to reimport because it is taking
lots of time and bandwidth.
I believe fixing this without reimporting requires using "git filter-
branch". I'm unfamiliar with it, so I can't help you with that part.
However, I'm curious as to why this took a lot of time because the "-r
860" on the command line should tell git-svn to only download a single
revision. Is it a particularly repository?
~~ Brian
From: Marius Seritan <hidden> Date: 2016-06-15 22:46:06
Thanks Brian,
On Feb 4, 2009, at 10:39 AM, Brian Gernhardt wrote:
On Feb 4, 2009, at 12:03 PM, Marius Seritan wrote:
quoted
I imported over night an svn repository with the command:
git svn clone --prefix svn/ -r 860 http://svn.some.com/svn/someproject
The svn repository uses the usual trunk, branches, tag so I
(wrongly?) assumed I do not need to pass any command switches
regarding the structure of the repo.
"git svn clone URL" attempts to act like "svn co URL", but with
history. If you only want to download the trunk, then you should
add "/trunk" to the end of the URL. If you want to capture all the
branches, tags, etc you should use "--stdlayout" (also spelled "-s").
I want to capture the current trunk and any new branches. It seems the
-s is required if I do a reimport.
quoted
I obviously did something wrong because now I have a git repository
with just one remote branch and it contains the folders trunk,
branches and tag. I do not want to reimport because it is taking
lots of time and bandwidth.
I believe fixing this without reimporting requires using "git filter-
branch". I'm unfamiliar with it, so I can't help you with that part.
Thanks, I will look into it. From the first read this seems to be
pretty advanced.
However, I'm curious as to why this took a lot of time because the "-
r 860" on the command line should tell git-svn to only download a
single revision. Is it a particularly repository?
All of the repository was imported including branches in spite of the -
r. This is private repository for a company's web site, it has your
usual assortment of jars and the history has a dozen branches and a
couple of tags. The size on the disk is about 3GB, I was a bit
surprised by it.
Marius
From: Marius Seritan <hidden> Date: 2016-06-15 22:46:06
On Feb 4, 2009, at 11:05 AM, Marius Seritan wrote:
quoted
I believe fixing this without reimporting requires using "git
filter-branch". I'm unfamiliar with it, so I can't help you with
that part.
Thanks, I will look into it. From the first read this seems to be
pretty advanced.
Ok, I think I killed it :-/
I did
git filter-branch --subdirectory-filter trunk -- --all
This cleaned up git and I have just the trunk for 218MB, that's much
more acceptable. Unfortunately 'git svn rebase' now returns:
Unable to determine upstream SVN information from working tree history
I went into the .git/config and added a trunk but no luck. I also
edited .git/svn/.metadata in the same way.
As another data point git svn log is still working.
Marius
From: Marius Seritan <hidden> Date: 2016-06-15 22:46:06
On Feb 4, 2009, at 11:24 AM, Marius Seritan wrote:
On Feb 4, 2009, at 11:05 AM, Marius Seritan wrote:
quoted
quoted
I believe fixing this without reimporting requires using "git
filter-branch". I'm unfamiliar with it, so I can't help you with
that part.
Thanks, I will look into it. From the first read this seems to be
pretty advanced.
Ok, I think I killed it :-/
I did
git filter-branch --subdirectory-filter trunk -- --all
This cleaned up git and I have just the trunk for 218MB, that's much
more acceptable. Unfortunately 'git svn rebase' now returns:
Unable to determine upstream SVN information from working tree history
I went into the .git/config and added a trunk but no luck. I also
edited .git/svn/.metadata in the same way.
As another data point git svn log is still working.
Marius
Last follow-up on svn git. I ended up re-reading the docs (duh) and
doing the following:
git svn init -s --prefix=svn/ http://svn.name.com/svn/project
git svn fetch -r 800:HEAD
This brought down the last 2 branches and the trunk. It took a couple
of minutes and uses 120MB of disk space. Much better than hours and
3GB of disk.
Love it,
Marius