svn不是致力于分支,只有中继

我正在处理一个像这样布置的SVN存储库:

$SVN/[project]/trunk
$SVN/[project]/branches/[user]/[branch]
$SVN/[project]/tags/releases/[tag]

我的.git / config如下所示:

[svn-remote "svn"]
  url = $SVN   
  fetch = project/trunk:refs/remotes/trunk   
  branches = project/branches/*/*:refs/remotes/*  

当我看着git分支-a时,我看到了所有的远程分支。 比方说,我想检查一个,处理它,然后再提交更改。 以下是我想要做的事情:

git checkout -b comments erik/comments
.... work, commit locally ....
git svn dcommit

但是,dcommit总是推送到$ SVN / project / trunk。 git svn info总是将URL报告为$ SVN / project / trunk

我尝试过使用--track,我试着用--hard重新设置。 我在这里没有想法。 我怀疑这是我的[svn-remote],但这只是一种预感。


看起来这样做或多或少都在寻找:使用Git-Svn克隆非标准Svn库

我仍然有一些问题没有出现,但那是另一天。 感谢大家!


分支erik/comments是否已经存在于SVN中?

我的工作如下:

git svn fetch #update any newly created branches
git checkout davec/new-feature # on remote branch, git may warn you
git checkout -b new-feature davec/new-feature # assumes this exists in SVN
# hack
# commit
git svn dcommit

我意识到, git checkout -b local remote是我在两个步骤中执行的一步式版本,但是这似乎起作用。

另一种选择是用你的用户名替换你的配置,例如

branches = project/branches/erik/*:refs/remotes/*

接着

git checkout new-feature # remote branch
git checkout -b new-feature-branch # local

你可以尝试svn2git和git2svn,因为它们考虑到了非标准的SVN布局。

他们确实使用了git svn--tags--branches参数,即使你没有使用我上面提到的脚本,你也可以使用这些参数来获取svn仓库中正确位置的数据。

链接地址: http://www.djcxy.com/p/89505.html

上一篇: svn isn't committing to branches, only trunk

下一篇: Ignore modified (but not committed) files in git?