我使用svn move
和svn ci
做了一些严重的愚蠢。
旧目录结构:
source/branch1/test_framework/
source/branch2/test_framework/
所需的目录结构:
source/branch1/
source/branch2/
source/test_framework/ <-- This is a merge of the 2
预期步骤:
我是如何开始的:
[dev@bld Prod1]$ svn move source/branch1/test_framework/ source/test_framework/
A source/test_framework
D source/branch1/test_framework/main.sh
D source/branch1/test_framework
我应该做些什么:
[dev@bld Prod1]$ svn ci source/test_framework/ source/branch1/test_framework/ -m "Move test framework to top level."
我的愚蠢:
[dev@bld Prod1]$ svn ci source/test_framework/ -m "Move test framework to top level."
Authentication realm: <http://localhost:8443> UNIX/LDAP User Account
Password for 'dev':
Adding source/test_framework
Committed revision 274232.
[dev@bld Prod1]$ svn ci source/branch1/test_framework/ -m "Move test framework to top level."
Authentication realm: <http://localhost:8443> UNIX/LDAP User Account
Password for 'dev':
Deleting source/branch1/test_framework
svn: Commit failed (details follow):
svn: Item '/repo/CoreApps/Prod1/source/branch1/test_framework' is out of date
在这里,我查看了Google和StackOverflow并针对Item ... out of date
错误建议了以下修复:
[dev@bld Prod1]$ svn update
Authentication realm: <http://localhost:8443> UNIX/LDAP User Account
Password for 'dev':
C source/branch1/test_framework
At revision 274233.
Summary of conflicts:
Tree conflicts: 1
现在我对此感到困惑:
[dev@bld Prod1]$ svn ci source/branch1/test_framework/ -m "Move test framework to top level."
Authentication realm: <http://localhost:8443> UNIX/LDAP User Account
Password for 'dev':
svn: Commit failed (details follow):
svn: Aborting commit: '/repo/CoreApps/Prod1/source/branch1/test_framework' remains in tree-conflict
现在我该如何解决这个冲突?请注意svn merge
不是问题,而只是我到达此处的解释点。
我很欣赏能够解释如何做的答案。
修改 - 我用来修复问题的解决方案(这不太理想。接受的答案更好):
svn status source/branch1/test_framework/
列出svn move
svn revert source/branch1/test_framework/$FILE
针对上面列出的每个文件撤消svn move
的删除/删除操作svn delete source/test_framework/
撤消svn move
后跟svn ci source/test_framework/
签名删除的复制操作。答案 0 :(得分:1)
这是Subversion中的一种撤销/重做功能,这是一种通过错误提交来解决存储库的混乱状态的通用方法,当顶部没有很多提交并且凌乱的提交没有多少时其中的智力工作(这正是你的情况,提交是一个简单的svn mv
)。所以基本上我建议盲目地回滚变化,甚至不试图理解凌乱的状态(并节省时间),然后正确地重复svn mv
。