git-svn questions: how to clone/init non-standard layout branches/tags?

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

git-svn questions: how to clone/init non-standard layout branches/tags?

From: Luke Lu <hidden>
Date: 2016-06-15 22:43:46

There are a few svn repositories that use non-standard layout like this:

<path_to_project>/trunk
<path_to_project>/production
<path_to_project>/some_branch

production and some_branch are indeed branched from trunk.

1. How do you init/clone svn repositories like that?
2. Is there a way to add a new svn branch like that (say production  
or some_branch) to an existing git-svn repository that has trunk cloned?

Thanks!

__Luke

Re: git-svn questions: how to clone/init non-standard layout branches/tags?

From: Benoit SIGOURE <hidden>
Date: 2016-06-15 22:43:46

On Nov 3, 2007, at 9:19 AM, Luke Lu wrote:
There are a few svn repositories that use non-standard layout like  
this:

<path_to_project>/trunk
<path_to_project>/production
<path_to_project>/some_branch

production and some_branch are indeed branched from trunk.

1. How do you init/clone svn repositories like that?
I seem to remember that you can pass more than one `-b' option to git- 
svn clone, so I'd basically do (untested):
git svn clone <url> -T trunk -b production -b some_branch
2. Is there a way to add a new svn branch like that (say production  
or some_branch) to an existing git-svn repository that has trunk  
cloned?
I don't know, but that'd be great indeed.

-- 
Benoit Sigoure aka Tsuna
EPITA Research and Development Laboratory

Re: git-svn questions: how to clone/init non-standard layout branches/tags?

From: Lars Hjemli <hidden>
Date: 2016-06-15 22:43:46

On Nov 3, 2007 11:56 AM, Benoit SIGOURE [off-list ref] wrote:
On Nov 3, 2007, at 9:19 AM, Luke Lu wrote:
quoted
2. Is there a way to add a new svn branch like that (say production
or some_branch) to an existing git-svn repository that has trunk
cloned?
I don't know, but that'd be great indeed.
You can simply add "fetch" lines to  the relevant "svn-remote" section
in .git/config.

-- 
larsh

Re: git-svn questions: how to clone/init non-standard layout branches/tags?

From: Luke Lu <hidden>
Date: 2016-06-15 22:43:46

On Nov 3, 2007, at 6:59 AM, Lars Hjemli wrote:
On Nov 3, 2007 11:56 AM, Benoit SIGOURE [off-list ref] wrote:
quoted
On Nov 3, 2007, at 9:19 AM, Luke Lu wrote:
quoted
2. Is there a way to add a new svn branch like that (say production
or some_branch) to an existing git-svn repository that has trunk
cloned?
I don't know, but that'd be great indeed.
You can simply add "fetch" lines to  the relevant "svn-remote" section
in .git/config.
I did try to add a "fetch" line for the production branch like this:

[svn-remote "svn"]
         url = svn+ssh://host/svn/project
         fetch = production:refs/remotes/svn-prod
         fetch = trunk:refs/remotes/git-svn

which is modeled after http://lists-archives.org/git/420712-git-svn- 
remote-tracking-branch-question.html

But when I try to checkout the production branch like this:

git checkout -b prod remotes/svn-prod

I got this:
git checkout: updating paths is incompatible with switching branches/ 
forcing
Did you intend to checkout 'remotes/svn-prod' which can not be  
resolved as commit?

Can you shed some light on this? (git version is 1.5.3.4)

Thanks!

__Luke

Re: git-svn questions: how to clone/init non-standard layout branches/tags?

From: Lars Hjemli <hidden>
Date: 2016-06-15 22:43:46

On Nov 3, 2007 9:01 PM, Luke Lu [off-list ref] wrote:
On Nov 3, 2007, at 6:59 AM, Lars Hjemli wrote:
quoted
On Nov 3, 2007 11:56 AM, Benoit SIGOURE [off-list ref] wrote:
quoted
On Nov 3, 2007, at 9:19 AM, Luke Lu wrote:
quoted
2. Is there a way to add a new svn branch like that (say production
or some_branch) to an existing git-svn repository that has trunk
cloned?
I don't know, but that'd be great indeed.
You can simply add "fetch" lines to  the relevant "svn-remote" section
in .git/config.
I did try to add a "fetch" line for the production branch like this:

[svn-remote "svn"]
         url = svn+ssh://host/svn/project
         fetch = production:refs/remotes/svn-prod
         fetch = trunk:refs/remotes/git-svn

which is modeled after http://lists-archives.org/git/420712-git-svn-
remote-tracking-branch-question.html

But when I try to checkout the production branch like this:

git checkout -b prod remotes/svn-prod

I got this:
git checkout: updating paths is incompatible with switching branches/
forcing
Did you intend to checkout 'remotes/svn-prod' which can not be
resolved as commit?
Did you forget to run 'git svn fetch' after modifying your .git/config?

--
larsh

Re: git-svn questions: how to clone/init non-standard layout branches/tags?

From: Luke Lu <hidden>
Date: 2016-06-15 22:43:46

On Nov 3, 2007, at 1:32 PM, Lars Hjemli wrote:
On Nov 3, 2007 9:01 PM, Luke Lu [off-list ref] wrote:
quoted
On Nov 3, 2007, at 6:59 AM, Lars Hjemli wrote:
quoted
On Nov 3, 2007 11:56 AM, Benoit SIGOURE [off-list ref] wrote:
quoted
On Nov 3, 2007, at 9:19 AM, Luke Lu wrote:
quoted
2. Is there a way to add a new svn branch like that (say  
production
or some_branch) to an existing git-svn repository that has trunk
cloned?
I don't know, but that'd be great indeed.
You can simply add "fetch" lines to  the relevant "svn-remote"  
section
in .git/config.
I did try to add a "fetch" line for the production branch like this:

[svn-remote "svn"]
         url = svn+ssh://host/svn/project
         fetch = production:refs/remotes/svn-prod
         fetch = trunk:refs/remotes/git-svn

which is modeled after http://lists-archives.org/git/420712-git-svn-
remote-tracking-branch-question.html

But when I try to checkout the production branch like this:

git checkout -b prod remotes/svn-prod

I got this:
git checkout: updating paths is incompatible with switching branches/
forcing
Did you intend to checkout 'remotes/svn-prod' which can not be
resolved as commit?
Did you forget to run 'git svn fetch' after modifying your .git/ 
config?
Yes, I did. It didn't seem to do anything. $? is 0. the master/trunk  
is up-to-date but the production branch has never been fetched. If  
this is supposed to work, the fetch might be triggered upon next  
update in trunk?

__Luke

Re: git-svn questions: how to clone/init non-standard layout branches/tags?

From: Lars Hjemli <hidden>
Date: 2016-06-15 22:43:46

On Nov 3, 2007 9:41 PM, Luke Lu [off-list ref] wrote:
On Nov 3, 2007, at 1:32 PM, Lars Hjemli wrote:
quoted
On Nov 3, 2007 9:01 PM, Luke Lu [off-list ref] wrote:
quoted
I did try to add a "fetch" line for the production branch like this:

[svn-remote "svn"]
         url = svn+ssh://host/svn/project
         fetch = production:refs/remotes/svn-prod
         fetch = trunk:refs/remotes/git-svn

which is modeled after http://lists-archives.org/git/420712-git-svn-
remote-tracking-branch-question.html
Did you forget to run 'git svn fetch' after modifying your .git/
config?
Yes, I did. It didn't seem to do anything.
Hmm, it works for me, I've been adding and removing branches like this
for months, but my .git/config is slightly different:

[svn-remote "svn"]
        url = svn://example.org
        fetch = project/trunk:refs/remotes/svn/trunk
        fetch = project/branches/topic:refs/remotes/svn/topic

I don't know if this difference is important, though...

-- 
larsh

Re: git-svn questions: how to clone/init non-standard layout branches/tags?

From: Luke Lu <hidden>
Date: 2016-06-15 22:43:46

On Nov 3, 2007, at 1:52 PM, Lars Hjemli wrote:
On Nov 3, 2007 9:41 PM, Luke Lu [off-list ref] wrote:
quoted
On Nov 3, 2007, at 1:32 PM, Lars Hjemli wrote:
quoted
On Nov 3, 2007 9:01 PM, Luke Lu [off-list ref] wrote:
quoted
I did try to add a "fetch" line for the production branch like  
this:

[svn-remote "svn"]
         url = svn+ssh://host/svn/project
         fetch = production:refs/remotes/svn-prod
         fetch = trunk:refs/remotes/git-svn

which is modeled after http://lists-archives.org/git/420712-git- 
svn-
remote-tracking-branch-question.html
Did you forget to run 'git svn fetch' after modifying your .git/
config?
Yes, I did. It didn't seem to do anything.
Hmm, it works for me, I've been adding and removing branches like this
for months, but my .git/config is slightly different:

[svn-remote "svn"]
        url = svn://example.org
        fetch = project/trunk:refs/remotes/svn/trunk
        fetch = project/branches/topic:refs/remotes/svn/topic

I don't know if this difference is important, though...
I tried to test this on a local repository like file:///path/project.  
It seems to work and get everything properly upon git svn fetch.  
However it doesn't work for the production branch. If I modify the  
fetch line a bit to svn/prod instead of svn-prod and try git svn  
fetch again. It would hang for about 2 minutes and return 0 and show  
nothing in progress. A .git/svn/svn/prod directory is created but  
it's empty.

One thing that might be special for this branch is that it gets  
deleted and recreated/copied all the time from trunk. I wonder if git- 
svn use some kind of heuristics to determine if there is anything to  
fetch and silently failing...

__Luke

Re: git-svn questions: how to clone/init non-standard layout branches/tags?

From: Luke Lu <hidden>
Date: 2016-06-15 22:43:48

In case others encounter this problem and want to find a solution...

On Nov 3, 2007, at 2:26 PM, Luke Lu wrote:
On Nov 3, 2007, at 1:52 PM, Lars Hjemli wrote:
quoted
On Nov 3, 2007 9:41 PM, Luke Lu [off-list ref] wrote:
quoted
On Nov 3, 2007, at 1:32 PM, Lars Hjemli wrote:
quoted
On Nov 3, 2007 9:01 PM, Luke Lu [off-list ref] wrote:
quoted
I did try to add a "fetch" line for the production branch like  
this:

[svn-remote "svn"]
         url = svn+ssh://host/svn/project
         fetch = production:refs/remotes/svn-prod
         fetch = trunk:refs/remotes/git-svn

which is modeled after http://lists-archives.org/git/420712-git- 
svn-
remote-tracking-branch-question.html
Did you forget to run 'git svn fetch' after modifying your .git/
config?
Yes, I did. It didn't seem to do anything.
Hmm, it works for me, I've been adding and removing branches like  
this
for months, but my .git/config is slightly different:

[svn-remote "svn"]
        url = svn://example.org
        fetch = project/trunk:refs/remotes/svn/trunk
        fetch = project/branches/topic:refs/remotes/svn/topic

I don't know if this difference is important, though...
I tried to test this on a local repository like file:///path/ 
project. It seems to work and get everything properly upon git svn  
fetch. However it doesn't work for the production branch. If I  
modify the fetch line a bit to svn/prod instead of svn-prod and try  
git svn fetch again. It would hang for about 2 minutes and return 0  
and show nothing in progress. A .git/svn/svn/prod directory is  
created but it's empty.

One thing that might be special for this branch is that it gets  
deleted and recreated/copied all the time from trunk. I wonder if  
git-svn use some kind of heuristics to determine if there is  
anything to fetch and silently failing...
After some permutations, this is the config that worked for me:

[svn-remote "svn"]
	url = svn+ssh://host/svn
	fetch = project/trunk:refs/remotes/git-svn
	fetch = project/production:refs/remotes/svn/production

The primary difference is that I moved 'project' from url to the  
fetch specs. My original single trunk config looked like this:

[svn-remote "svn"]
	url = svn+ssh://host/svn/project/trunk
	fetch = :refs/remotes/git-svn

I wish that "git svn fetch" could be more verbose about what's going  
on in this case.

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