树冲突场景
- 同一条分支,有2个Dev在同时编辑一个文件,两人没沟通好:
- 其中一Dev A把一个文件移到另外一个目录或者重命名了,并且已经提交;
- 另一Dev B也同时在修改这个文件内容,并不知道A已经将该文件转移或重命名;
- 冲突出现:当Dev B想提交代码到分支时,会出现不让提交情况。
xfc 写道
$ svn list -Rv http://xxx.com/branches/boringkiller
61536 fangchen 2月 13 19:32 htdocs/
61536 fangchen 59 2月 13 19:32 htdocs/changeLog.txt
xfc 写道
$ svn st
A htdocs/changlog.txt
D htdocs/changeLog.txt
xfc 写道
$ svn st
M htdocs/changeLog.txt
xfc 写道
$ svn ci -m"xfc ci"
Sending htdocs/changeLog.txt
svn: E155011: Commit failed (details follow):
svn: E155011: File '/home/xfc/works/myDemo/htdocs/changeLog.txt' is out of date
svn: E160013: File not found: transaction '61545-1cqn', path '/misc/avatar/branches/boringkiller/htdocs/changeLog.txt'
xfc 写道
$ svn up
Updating '.':
C htdocs/changeLog.txt
A htdocs/changlog.txt
At revision 61545.
Summary of conflicts:
Tree conflicts: 1
解决办法
- 一方案(以Dev A的版本为准,把Dev B自己的改动合并到Dev A的改动上)
第一步
写道
$ svn diff htdocs/changeLog.txt
Index: htdocs/changeLog.txt
===================================================================
--- htdocs/changeLog.txt (working copy)
+++ htdocs/changeLog.txt (working copy)
@@ -2,3 +2,5 @@
@Author xfc
Tree Conflict Demo.
+
+I'm editing this file.
第二步
写道
$ svn diff htdocs/changeLog.txt > replace
第三步,编辑replace文件,替换 “changeLog.txt”为“changelog.txt”
第四步
xfc 写道
$ svn patch replace
U htdocs/changlog.txt
现在的状态:
写道
$ svn st
M htdocs/changlog.txt
A + C htdocs/changeLog.txt
> local edit, incoming delete upon update
Summary of conflicts:
Tree conflicts: 1
第五步,删除冲突文件
xfc 写道
svn del --force htdocs/changeLog.txt
D htdocs/changeLog.txt
最后:
写道
$ svn st
M htdocs/changlog.txt
二方案(以Dev B的版本为准,把Dev A对文件的重命名无效)
第一步,删除A的改动:
xfc 写道
$ svn del --force htdocs/changlog.txt
D htdocs/changlog.txt
第二步,接受本地working的改动
xfc 写道
svn resolve --accept=working htdocs/changeLog.txt
Resolved conflicted state of 'htdocs/changeLog.txt'
看本地改动是否生效:
xfc 写道
svn diff
Index: htdocs/changlog.txt
===================================================================
--- htdocs/changlog.txt (revision 61559)
+++ htdocs/changlog.txt (working copy)
@@ -1,5 +0,0 @@
-Boring Killer Change Log:
-@Author xfc
-
-Tree Conflict Demo.
-
Index: htdocs/changeLog.txt
===================================================================
--- htdocs/changeLog.txt (working copy)
+++ htdocs/changeLog.txt (working copy)
@@ -3,3 +3,4 @@
Tree Conflict Demo.
+I'm editing my file.
完毕,ci了~
参考资料
总结:
使用到的svn一些没接触过的命令
- svn patch
- svn del --force filepath
- svn resolve --accept=working filepath
分享到:
相关推荐
Subversion树冲突解决程序当开发人员移动/重命名/删除文件或文件夹时,另一个开发人员也已经移动/重命名/删除或修改了文件或文件夹,就会发生树冲突。 有许多不同的情况可能导致树冲突,并且所有这些情况都需要不同...
**版本控制系统SVN详解与树冲突、目录丢失问题解析** 版本控制系统Subversion(简称SVN)是一种用于管理软件源代码的工具,它允许开发者在不同的时间点保存项目的状态,以便于回溯、合并和协作。当多人同时编辑同一...
1. **版本化的目录**:与CVS不同,Subversion 支持对整个目录树进行版本控制,不仅跟踪单个文件,还记录目录的变更。这意味着文件和目录都有各自的版本历史。 2. **真实的版本历史**:Subversion 可以处理文件的...
它还引入了树冲突的概念,更精确地反映了多用户修改同一文件夹的情况。与Git相比,虽然Subversion的分布式功能相对较弱,但在集中式管理的场景下,它的操作更直观,学习曲线较平缓。 总的来说,Apache Subversion ...
在团队开发环境中,Subversion扮演着至关重要的角色,它允许开发者协作工作,同时跟踪每个成员对项目所做的修改,避免代码冲突,并方便回溯到项目的历史版本。 1. **Subversion基本概念**: - **仓库(Repository...
手册中提到的“树冲突”是特定于版本控制系统的,它发生在当两个或多个分支中都对同一文件或目录进行了更改,并且这些更改无法合并时。 ### 版本控制与Subversion 从上面的描述可以看出,Subversion不仅是一种强大...
1. **版本化的目录**:与 CVS 不同,SVN 能够跟踪整个目录树的变化,不仅文件,就连目录也有版本历史。 2. **真实版本历史**:支持文件和目录的增加、复制、重命名,并能完整保存这些操作的历史。 3. **原子提交**...
- **树冲突**:当一个文件或目录的结构发生变化时,可能会导致更复杂的冲突类型,称为树冲突。 - **清理工作副本**:有时候可能需要清除工作副本,重新检出一份新的副本。 #### 总结 Subversion作为一款功能强大的...
- **结构冲突处理**:当用户尝试修改已经改变的文件结构时,可能会遇到树冲突(Tree Conflict)。例如,一个文件在本地被删除,而另一处则被移动到了该位置。 - **清理操作**:有时候可能需要清理工作副本,可以使用`...
当冲突发生时,Subversion会在冲突文件的目录下生成特殊文件,帮助用户手动解决冲突。用户可以选择保留各自的修改,或者合并更改,然后提交解决后的文件。 总的来说,Subversion结合TortoiseSVN提供了一个强大而...
SvnEclipse提供了丰富的功能,如版本树视图、提交对话框、差异比较、冲突解决工具等,使得开发者可以轻松地进行版本控制操作。 在提供的压缩包文件中,我们可以看到以下几个关键组件: 1. `org.eclipse.team.svn_...
目录版本控制是Subversion的一个关键特性,允许用户跟踪整个目录树的变更。这意味着在文件夹层级上进行的操作,如移动或重命名,会被完整地记录和同步,这在CVS中并不直接支持。原子提交意味着一次提交操作要么全部...
- **稀疏目录**:允许工作副本只包含部分目录树。 - **锁定**: - 创建锁定、发现锁定以及解除和偷窃锁定的方法。 - 锁定交流:锁定状态的通知和沟通。 - **外部定义**:链接工作副本中的文件或目录到版本库的其他...
### Subversion (SVN) 操作指南与最佳实践:检查清单 ...通过遵循上述指南和最佳实践,可以有效地利用Subversion进行版本控制,提高团队协作效率,减少错误和冲突,确保项目文档的安全性和完整性。
本文将深入探讨SVN版本之间的合并问题,特别是“树冲突”这一常见但棘手的现象,并提供有效的解决方案。 #### 一、SVN合并机制简介 SVN的合并操作主要涉及到两个或多个版本间的差异比较和整合。当一个文件或目录在...
合并两个不同的目录树 5.17.3. 预览合并结果 5.17.4. 忽略祖先 5.18. 锁 5.18.1. 锁定在Subverion中是如何工作的 5.18.2. 取得锁定 5.18.3. 释放锁定 5.18.4. 检查锁定状态 5.18.5. 让非锁定的文件变成只读 5.18.6....
pySvnManager是一款由北京群英汇信息技术有限公司开发的开源Subversion (SVN) 管理后台软件。该软件基于Python语言编写,使用Pylons框架构建而成,主要功能在于简化SVN授权文件的管理和维护流程,通过提供一个直观的...
1. **目录版本化**:与CVS不同,Subversion能够跟踪整个目录树的变更。 2. **真实的版本历史**:支持文件移动和重命名,保持完整的版本历史。 3. **原子提交**:一次提交可以包含多个文件的修改,确保一致性。 4. **...
- **可视化版本树**:显示项目的历史版本和分支结构。 - **权限管理**:集成Subversion的访问控制列表(ACLs)。 - **与Visual Studio集成**:在解决方案资源管理器中直接进行版本控制操作。 **总结** "svn for Vss...
- **树冲突**:处理文件夹层次结构变化导致的冲突。 - **获得状态信息**: - **图标重载**:显示文件或文件夹的状态。 - **详细状态**:提供更详细的信息。 - **Windows资源管理器中的TortoiseSVN列**:在资源...