git/list[1] front-page[2] threads[3] people[4] search[5] about
 

git-svn question: adding a branch to a local clone of an upstream git-svn clone

From
Jay Soffian <jaysoffian@gmail.com>
Date
Jan 22, 2010, 19:15 UTC
Message-ID
<76718491001221115r56c1f6e4qbf6cecc30ce4af58@mail.gmail.com>
I have a clone of a repo that is itself a git-svn clone:
git://git.chromium.org/chromium.git
So my .git/config has (obviously):
[remote "origin"]
	url = git://git.chromium.org/chromium.git
	fetch = +refs/heads/*:refs/remotes/origin/*

The upstream repo has only trunk. I want to use git-svn to add an additional branch:

http://src.chromium.org/svn/branches/249/
So I added this to my .git/config:
[svn-remote "svn"]
	url = http://src.chromium.org/svn
	fetch = branches/249/src:refs/remotes/branches/249
I looked up the branch point for 249 and created a new branch:
$ svn log http://src.chromium.org/svn/branches/249
------------------------------------------------------------------------
r32060 | laforge@chromium.org | 2009-11-16 11:34:43 -0500 (Mon, 16 Nov
2009) | 1 line

Branching for 249 @32041 ------------------------------------------------------------------------ $ git rev2sha | grep src@32041 bf6f4ed svn://svn.chromium.org/chrome/trunk/src@32041 $ git checkout -b 249 bf6f4ed

And then attempted a git svn fetch. Which wanted to grab the entire svn history. I then realized that the origin git clone is from a different upstream URL (to which I don't have access), so I tried adding rewriteRoot:

[svn-remote "svn"]
	url = http://src.chromium.org/svn
	fetch = branches/249/src:refs/remotes/branches/249
	rewriteRoot = svn://svn.chromium.org/chrome

Same problem. Ah, UUID is also different. Unfortunately, git-svn doesn't have a "rewriteUUID" config (I'm working on a patch), but I did try hacking .git/svn/.metadata to look like this:

[svn-remote "svn"]
	reposRoot = http://src.chromium.org/svn
	uuid = 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
	svnsync-uuid = 0039d316-1c4b-4281-b951-d872f2087c98
	svnsync-url = svn://svn.chromium.org/chrome
Then changed my .git/config to:
[svn-remote "svn"]
	url = http://src.chromium.org/svn
	fetch = branches/249/src:refs/remotes/branches/249
	useSvnsyncProps = true
I blew away .git/svn/refs and tried again:

$ git svn fetch Found possible branch point: http://src.chromium.org/svn/trunk/src => http://src.chromium.org/svn/branches/249/src, 32041 Initializing parent: refs/remotes/branches/249@32041 r3 = c14d891d44f0afff64e56ed7c9702df1d807b1ee (refs/remotes/branches/249@32041)

Sadly, git svn is still trying to fetch the entire history.

Hmpfh. Any suggestions? Maybe I should just not worry about trying to have a connected history locally (I'll never be dcomitting) and just use git svn fetch -r 32041:HEAD ?

j.
Next: Jay Soffian
Message 1 of 3 in “git-svn question: adding a branch to a local clone of an upstream git-svn clone”
  1. Jay SoffianJan 22, 2010
  2. Jay SoffianJan 22, 2010
  3. Jay SoffianJan 22, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.