在团队开发过程中,svn必不可少,开发部门和本地化部门,必须协调使用svn,然后阶梯性的产生版本,事半功倍的效果
svn的存档方式是采用差异备份方式,然后再进行下面的深入思考。
总结:
update情况分析
$ svn update
U INSTALL
G README
C bar.c
Updated to revision 46.
U 开头的信息提示你,这个文件在你本地没有修改过,文件已经根据版本库的新版本更新了。
G 开头的信息提示你,这个文件在你本地已经修改过,但是和版本库中对应的版本并没有冲突的地方,svn已经合并更新了。
C 开头的信息提示你,这个文件有点麻烦,你在本地的修改和版本库中的版本修改的地方重叠了,也就是说,你修改了某一行,你的同事也修改了同一行。这个就需要 你自己手工去解决了。
如果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 進行開發的流程:
1.只有第一次的時候須要進行 svn checkout , 之後請從 2. 起即可
svn checkout <repository url>
2.假設有其他人在之間有進行修正, 所以先 svn update 更新到最新的版本 svn update
3.進行修正
update D:/Flex_Workspace/Flex_Json_Dwr_Xml -r HEAD --force
C D:/Flex_Workspace/Flex_Json_Dwr_Xml/WebContent/Login.html(更新)
A D:/Flex_Workspace/Flex_Json_Dwr_Xml/WebContent/说明.txt (添加)
可以点击要要对比的文件。
在eclipse的svn中(svn客户端同理)
<body>
<<<<<<< .mine
wanglei change
=======
helloworld!
>>>>>>> .r44
</body>
就直接修正为正确的版本,保证没有冲突了,要修正文件的同时,去掉产生附加文件,再commit
4.再同步一次
svn update
(這時可以再用 svn status 觀看一下目前的結果, 以及可以透過 svn diff )
5.若有問題則回 3 再進行修正. 要不然確認後, 上傳自己的修正
svn commit
2.要从服务器上取版本
Update和Update to Version两种方式
3.eclipse同步视图
参考文档:
http://wenku.baidu.com/view/d12649d284254b35eefd342e.html
http://wenku.baidu.com/view/72a96baad1f34693daef3e42.html
http://www.blogjava.net/mose2006/archive/2008/01/05/173070.html
http://www.360doc.com/content/09/1201/20/50698_10156965.shtml