我正在使用git-svn。我已经将文件“A”移动到“B”,并且我使用了svn HEAD(使用git svn rebase
)。我可以毫无问题地提交所有其他更改。现在我已经决定将'B'移回'A'并提交更改。
当我执行移动并提交给我的本地主人时,它工作正常,但在执行git svn dcommit
时我得到以下内容:
Transaction is out of date: Out of date: 'A' in transaction '3652-1' at /opt/local/libexec/git-core/git-svn line 570
所以我尝试在单独的提交中复制和删除,结果是:
Item already exists in filesystem: File already exists: filesystem '/usr/svn/db', transaction '3652-1', path 'A' at /opt/local/libexec/git-core/git-svn line 4735
我通过使用documentation中描述的解决方法,使用简单的svn恢复了这种情况,但我不知道如何使用git-svn进行恢复。发生了什么,我该如何解决?
答案 0 :(得分:8)
删除.git / svn对我不起作用。相反,这是我解决的方式:
git svn rebase
git add <file-in-conflict>
然后git rebase --continue
git svn dcommit
成功运行!答案 1 :(得分:4)
在这种情况下,我无法理解git-svn
内部真正发生的事情(虽然潜在的SVN问题非常有意义)。当git-svn
以某种方式混淆时,我通常的策略是吹走.git/svn
元数据目录(如this post中所述)。这几乎总能让我免于git和SVN存储库之间的奇怪同步问题。
答案 2 :(得分:0)
当我打断dcommit
进程时,它发生在我身上。
按照以下步骤从错误中恢复:
git svn rebase
git add filename
(发生冲突)。git svn dcommit
。它将被成功推送到远程。