相关疑难解决方法(0)

git-svn:为master重置跟踪

我正在使用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)

svn git merge git-svn

28
推荐指数
3
解决办法
1万
查看次数

使用git-svn将svn分支合并回trunk和trunk回到分支

所以我正在使用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的命令继续开发两者?

svn git branch reintegration

11
推荐指数
1
解决办法
8775
查看次数

git svn如何确定dcommit确定提交的位置?

我正在使用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如何确定要提交的目录?我该如何修改这个目录?

谢谢,
乔纳斯

svn git branch

9
推荐指数
1
解决办法
2942
查看次数

标签 统计

git ×3

svn ×3

branch ×2

git-svn ×1

merge ×1

reintegration ×1