subversion冲突解决
来源:互联网 发布:小学知乎 编辑:程序博客网 时间:2024/06/06 20:18
可以使用svn status -u命令来查看一下某个问题是否会有冲突发生。在使用svn update 的时候,会出现如下一些信息:
$ svn update
U INSTALL
G README
C bar.c
Updated to revision 46.
那么,U 开头的信息提示你,这个文件在你本地没有修改过,文件已经根据版本库的新版本更新了。G 开头的信息提示你,这个文件在你本地已经修改过,但是和版本库中对应的版本并没有冲突的地方,svn已经合并更新了。而C 开头的信息提示你,这个文件有点麻烦,你在本地的修改和版本库中的版本修改的地方重叠了,也就是说,你修改了某一行,你的同事也修改了同一行。这个就需要你自己手工去解决了。当冲突发生时,要注意到有三件事情可以帮助你解决问题。
a.Subversion会给这个文件作出c标记。
b.如果Subversion认为这个文件时可以合并的,它会一个冲突标记(特殊的横线来分开冲突的代码块)
c.对每一个冲突的文件,Subversion放置三个额外的未版本化文件到你的工作拷贝。
filename.mine
你更新前的文件,没有冲突标志,只是你最新更改的内容。(如果这个文件不可以合并,.mine文件不会创建,因为它和工作文件相同。)
filename.rOLDREV
这个是你做更新操作以前的BASE版本,就是你在上次更新之后未作更改的版本。
filename.rNEWREV
这是Subversion从服务器刚刚收到的版本。这个版本就是版本库的HEAD版本。
例如,如果sally修改了一个文件sandwich.txt, 而harry也刚刚修改了这个文件的相同位置并提交到服务器。那么sally在做这个文件的update操作的时候会得到三个额外的文件sandwich.txt.mine、sandwich.txt.r1、sandwich.txt.r2。并且在提交的时候会遭到服务器的拒绝,因为这个文件的冲突问题还没有得到解决。要解决这个冲突,可以选择:
a. 手工合并冲突文件(检查和修改文件中的冲突标志)。
b.用一个临时文件(三个中的一个)覆盖你的工作文件。
c.运行svn revert <filename>来放弃所有的修改。
一旦解决了你的冲突,需要通过命令svn resolved让subversion知道并删除三个临时文件。这时才可以提交。
下面再说说手工合并冲突。开始的时候让人觉得害怕,但做一段时间之后,就觉得不那么烦人了。
看看如下文本:
Mayonnaise
Lettuce
Tomato
Provolone
<<<<<<< .mine
Salami
Mortadella
Prosciutto
=======
Sauerkraut
Grilled Chicken
>>>>>>> .r2
Creole Mustard
一连串的大于、小于、等于号是冲突标记,这些数据得全部删除才可以提交。其中,
$ svn update
U INSTALL
G README
C bar.c
Updated to revision 46.
那么,U 开头的信息提示你,这个文件在你本地没有修改过,文件已经根据版本库的新版本更新了。G 开头的信息提示你,这个文件在你本地已经修改过,但是和版本库中对应的版本并没有冲突的地方,svn已经合并更新了。而C 开头的信息提示你,这个文件有点麻烦,你在本地的修改和版本库中的版本修改的地方重叠了,也就是说,你修改了某一行,你的同事也修改了同一行。这个就需要你自己手工去解决了。当冲突发生时,要注意到有三件事情可以帮助你解决问题。
a.Subversion会给这个文件作出c标记。
b.如果Subversion认为这个文件时可以合并的,它会一个冲突标记(特殊的横线来分开冲突的代码块)
c.对每一个冲突的文件,Subversion放置三个额外的未版本化文件到你的工作拷贝。
filename.mine
你更新前的文件,没有冲突标志,只是你最新更改的内容。(如果这个文件不可以合并,.mine文件不会创建,因为它和工作文件相同。)
filename.rOLDREV
这个是你做更新操作以前的BASE版本,就是你在上次更新之后未作更改的版本。
filename.rNEWREV
这是Subversion从服务器刚刚收到的版本。这个版本就是版本库的HEAD版本。
例如,如果sally修改了一个文件sandwich.txt, 而harry也刚刚修改了这个文件的相同位置并提交到服务器。那么sally在做这个文件的update操作的时候会得到三个额外的文件sandwich.txt.mine、sandwich.txt.r1、sandwich.txt.r2。并且在提交的时候会遭到服务器的拒绝,因为这个文件的冲突问题还没有得到解决。要解决这个冲突,可以选择:
a. 手工合并冲突文件(检查和修改文件中的冲突标志)。
b.用一个临时文件(三个中的一个)覆盖你的工作文件。
c.运行svn revert <filename>来放弃所有的修改。
一旦解决了你的冲突,需要通过命令svn resolved让subversion知道并删除三个临时文件。这时才可以提交。
下面再说说手工合并冲突。开始的时候让人觉得害怕,但做一段时间之后,就觉得不那么烦人了。
看看如下文本:
Mayonnaise
Lettuce
Tomato
Provolone
<<<<<<< .mine
Salami
Mortadella
Prosciutto
=======
Sauerkraut
Grilled Chicken
>>>>>>> .r2
Creole Mustard
<<<<<<< .mine
Salami
Mortadella
Prosciutto
=======
是你在冲突区里面做的修改。
Sauerkraut
Grilled Chicken
>>>>>>> .r2
是别人在冲突区做的修改。
在冲突区中,或许你需要和你的同事沟通来安排冲突区的文本内容,如果是程序代码,你需要和同事商量一下,中间的这段代码到底应该是什么样子的。
所有冲突区得到合理的解决之后,你就可以提交你的文件了。
一连串的大于、小于、等于号是冲突标记,这些数据得全部删除才可以提交。其中,
- subversion冲突解决
- subversion冲突解决和winmerge使用手册
- 找到一个解决“VS.NET开发Web应用程序和Subversion的冲突”的方法
- 解决冲突(避免冲突)
- Subversion运行乱码解决
- 解决冲突
- 解决冲突
- 解决冲突
- 解决冲突
- 解决冲突
- 解决冲突
- Git冲突和解决冲突
- 解决数据集冲突
- 解决端口冲突问题
- 哈希表冲突解决
- IP冲突解决解决方法
- 解决冲突和精兵简政
- svn冲突解决
- com基础知识总结, 智能指针,匈牙利命名法
- 二进制文件读写
- 关于android2.3的overscroll
- POAPPLYWSIMPL1
- Upgrading ASM instance from Oracle 10.1 to Oracle 10.2. (Single Instance)
- subversion冲突解决
- 如何安全获得一个窗口句柄指针
- 程序员面试题精选100题(32)-不能被继承的类
- How To Upgrade ASM from 10.2 to 11.1 (RAC)
- JTable表头排序的两种方法
- asp.net(c#) 使用xsl转换xml文件
- How to perform Rolling Upgrade-Downgrade in 11g ASM
- 手动从spring WebApplicationContext 获取bean (一)
- 2011.9.15-9.23周总结 & 迟来的咆哮