hot to fix git svn import or just discard 'branches' folder

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

hot to fix git svn import or just discard 'branches' folder

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

Re: hot to fix git svn import or just discard 'branches' folder

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

Re: hot to fix git svn import or just discard 'branches' folder

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

~~ Brian

Re: hot to fix git svn import or just discard 'branches' folder

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

Re: hot to fix git svn import or just discard 'branches' folder

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help