我正在使用git-svnSVN存储库.我的工作副本是使用创建的,git svn clone -s http://foo.bar/myproject因此我的工作副本遵循SVN(主干,标记,分支)的默认目录方案.
最近我一直在研究使用git-svn branch myremotebranch和检出的分支git checkout --track -b mybranch myremotebranch.我需要在多个位置工作,所以从分支I git-svn dcommit-ed文件定期到SVN存储库.
完成更改后,我切换回主服务器并执行合并,提交合并,并尝试将成功合并提交到远程主干.
似乎在合并之后,主服务器的远程跟踪已切换到我正在处理的分支:
# git checkout master
# git merge mybranch
... (successful)
# git add .
# git commit -m '...'
# git svn dcommit
Committing to http://foo.bar/myproject/branches/myremotebranch ...
#
Run Code Online (Sandbox Code Playgroud)
有没有办法可以更新主服务器,以便它remotes/trunk在合并之前跟随?
我正在使用git 1.7.0.5,如果有任何帮助的话.
如果您还可以解释为什么会发生这种情况会很有用,这样我就可以避免问题再次发生.谢谢!
编辑:
这是我目前的.git/config:
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
autocrlf …Run Code Online (Sandbox Code Playgroud) 所以我正在使用git并与svn repo进行交互.
我有一个svn TRUNK,看起来像这样:
A-B-C-D
Run Code Online (Sandbox Code Playgroud)
还有一个svn bug_fixes分支,它在提交B或C处分支:
-c-d-e-f-g-h-i
Run Code Online (Sandbox Code Playgroud)
现在我需要将我的svn分支中的cdefghi提交返回到主分支.
我知道我可以做一个被压扁的提交,让我们称之为壁球SQUASH(它将包含cdefghi),但后来似乎我必须杀死bug_fixes分支并启动一个新的分支以干净地继续.
这里:http://blog.red-bean.com/sussman/?p = 92他们建议:
checkout 分支.
merge 主人的变化进入分支.
Checkout 大师.
merge --reintegrate 分支机构对主人的改变.
继续发展.
不幸的是,git-svn似乎没有认识到svn的任何"merge --reintegrate"命令.
那么我如何干净地使分支和master拥有所有提交,以便使用git-svn的命令继续开发两者?
我正在使用git-svn来跟踪同一个svn存储库中的多个分支.通常情况下这很好,但今天我已经完成了一些重置和重新设置,突然我的分支机构不会再向正确的远程分支发送:
$ git branch
* master
a
b
$ git svn dcommit -n
Committing to svn://server/repo/trunk ...
$ git checkout a
$ git svn dcommit -n
Committing to svn://server/repo/branches/a ...
$ git checkout b
$ git svn dcommit -n
Committing to svn://server/repo/branches/a ...
Run Code Online (Sandbox Code Playgroud)
所以分支b将提交到branches/a目录而不是branches/b目录.
我试过更改跟踪的分支:
$ git branch --set-upstream b remotes/b
Run Code Online (Sandbox Code Playgroud)
和其他东西,但唯一有效的解决方案是删除分支b并重新创建它:
$ git branch -D b
$ git branch b remotes/b
$ git svn dcommit -n
Committing to svn://server/repo/branches/b ...
Run Code Online (Sandbox Code Playgroud)
现在我的问题是:git svn如何确定要提交的目录?我该如何修改这个目录?
谢谢,
乔纳斯