首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >修正由Subversion svn move命令的部分提交引起的树冲突

修正由Subversion svn move命令的部分提交引起的树冲突
EN

Stack Overflow用户
提问于 2013-07-11 07:13:55
回答 1查看 2.2K关注 0票数 0

我对svn movesvn ci做了一些非常愚蠢的事。

旧目录结构:

代码语言:javascript
复制
source/branch1/test_framework/
source/branch2/test_framework/

所需的目录结构:

代码语言:javascript
复制
source/branch1/
source/branch2/
source/test_framework/ <-- This is a merge of the 2

预期步骤:

  • 将源代码/分支1/test_framework/移动到源代码/test_framework/
  • 将源代码/分支2/test_framework/合并到源代码/test_framework/

我是怎么开始的

代码语言:javascript
复制
[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

我应该做的是:

代码语言:javascript
复制
[dev@bld Prod1]$ svn ci source/test_framework/ source/branch1/test_framework/ -m "Move test framework to top level."

我的愚蠢

代码语言:javascript
复制
[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错误进行了以下修复:

代码语言:javascript
复制
[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

现在我被困住了:

代码语言:javascript
复制
[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/以签入删除。
  • 做得对。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-11 07:37:53

  1. 签出一个新的工作副本,撤消错误的修订(svn合并-c-274232 .),提交。
  2. 从无到有

这是Subversion中的一种撤消/重做功能,这是一种常见的方法,用于清理由错误提交引起的存储库的混乱状态,而在最上面完成的提交并不多,而混乱的提交中没有太多的智能工作(这正是您的情况,提交是一个简单的svn mv)。因此,基本上,我建议在不试图理解混乱状态(并节省时间)的情况下盲目地回滚更改,然后正确地重复svn mv

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17587204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档