大多数时候我们用TortoiseSVN作为客户端,其实SVN提供了强大的客户端命令行工具,和Git差不不多。

1. 查看工作副本修改的整体状况。
  1. $ svn status
  2. ? scratch.c
  3. A stuff/loot
  4. A stuff/loot/new.c
  5. D stuff/old.c
  6. M bar.c
  7. $

?表示没有加入版本控制,A,D,M分别表示增加,删除,修改。

svn status 支持选项 --verbose (-v), 带上该选项后, 命令会输出当前目录中每一项的 状态, 即使是未被修改的项目:

  1. $ svn status -v
  2. M 44 23 sally README
  3. 44 30 sally INSTALL
  4. M 44 20 harry bar.c
  5. 44 18 ira stuff
  6. 44 35 harry stuff/trout.c
  7. D 44 19 ira stuff/fish.c
  8. 44 21 sally stuff/things
  9. A 0 ? ? stuff/things/bloo.h
  10. 44 36 harry stuff/things/gloo.c

可以给 svn status 带上选项 --show-updates (-u), 这样 Subversion 就会和仓库通信, 输出工作副本中已过时的项目:

  1. $ svn status -u -v
  2. M * 44 23 sally README
  3. M 44 20 harry bar.c
  4. * 44 35 harry stuff/trout.c
  5. D 44 19 ira stuff/fish.c
  6. A 0 ? ? stuff/things/bloo.h
  7. Status against revision: 46

Status against revision: 46*表示远程仓库的文件已经发生修改,如果合并会可能发生冲突。

2.  撤销工作副本的修改
  1. $ svn revert 2.txt
  2. 已恢复“2.txt

  svn revert 提供了一个很好的补救机会, 否则的话, 用户就得花费大量的时间, 自己一点一点地手工撤消修改, 又或 者采用一个更麻烦的做法, 直接删除工作副本, 然后重新从服务器上检出一个 干净的工作副本.

3. 解决冲突
3.1 手动解决冲突

首先看一下发生冲突后的文件内容:

  1. $ cat sandwich.txt
  2. Top piece of bread
  3. Mayonnaise
  4. Lettuce
  5. Tomato
  6. Provolone
  7. <<<<<<< .mine
  8. Salami
  9. Mortadella
  10. Prosciutto
  11. =======
  12. Sauerkraut
  13. Grilled Chicken
  14. >>>>>>> .r2
  15. Creole Mustard
  16. Bottom piece of bread

 分别由小于号, 等号和大于号组成的行是冲突标记, 它们不是冲突数据 的一部分, 用户通常只需要确保在提交前把它们都删除掉即可. 前两个标记之 间的文本是用户的本地修改.

  1. <<<<<<< .mine
  2. Salami
  3. Mortadella
  4. Prosciutto
  5. =======

  后两个标记之间的内容是别人提交的修改:

  1. =======
  2. Sauerkraut
  3. Grilled Chicken
  4. >>>>>>> .r2

  这里去掉别人提交的内容

  1. Top piece of bread
  2. Mayonnaise
  3. Lettuce
  4. Tomato
  5. Provolone
  6. Salami
  7. Mortadella
  8. Prosciutto
  9. Creole Mustard
  10. Bottom piece of bread

  使用命令 svn resolve 移除文件的冲突状态后, 接下来就可以提交修改了:

  1. $ svn resolve --accept working sandwich.txt
  2. Resolved conflicted state of 'sandwich.txt'
  3. $ svn commit -m "Go ahead and use my sandwich, discarding Sally's edits."

  --accept=working 告诉 Subversion 把文件的当前内容作为冲突解决后的状态,svn resolve 会删除目录下的三个临时文件, 将用户指定的 文件版本作为冲突解决后的最终版。

3.2 全丢弃自己的修改
  1. svn resolve --accept theirs-full CONFLICTED-PATH
3.3 丢弃当前的所有修改
  1. $ svn revert filename

  

  1.  

SVN 命令行的使用的更多相关文章

  1. Mac SVN 命令行

    Mac自带了SVN命令行,如我的升级到10.10(OSX yosemite)后命令行版本为1.7.10 以下是一些常用命令 1.将文件checkout到本地目录 svn checkout path(p ...

  2. svn命令行修改已提交的版本备注

    svn命令行修改已提交的版本备注 参考文章: stackoverflow.com/questions/304383/how-do-i-edit-a-log-message-that-i-already ...

  3. [MAC] Mac下的SVN命令行

    转载自: http://www.cnblogs.com/snandy/p/4072857.html Mac自带了SVN命令行,如我的升级到10.10(OSX yosemite)后命令行版本为1.7.1 ...

  4. 转:svn命令行操作

    原文:http://zhumeng8337797.blog.163.com/blog/static/10076891420115218821912/SVN命令行 -- ::| 分类: CVS |字号 ...

  5. Windows下SVN命令行工具使用详解

    根据我的记忆,似乎Windows 7下自自带一个svn命令行工具.如果你的机器没有,不必担心.你可以从http://subversion.tigris.org获 取subversion for win ...

  6. Linux环境SVN命令行使用经验总结(转)

    在windows机器上开发得差不多了之后,打包传送到开发机编译,在开发机上解决编译错误. [缺点] 浪费时间在打包解包,机器间传输代码. 在windows机器上开发之后,check in代码进分支,在 ...

  7. svn命令行批量删除和批量添加

    svn命令行批量删除和批量添加 如果使用svn的命令行,例如在linux下的终端中使用,svn的添加命令是svn add,删除命令是svn del,但是缺乏批量的操作,如果我在资源管理器中,手动添加了 ...

  8. SVN命令行笔记

    SVN命令行笔记 近期玩了一下命令行,记录如下. svn info <path> #查看文件,路径信息 svn log <path> #查看文件,路径历史记录 svn st(s ...

  9. pycharm不支持svn,是需要svn命令行工具没有安装(for windows)

    1. 安装svn命令行工具 Subversion for Windows下载https://sourceforge.net/projects/win32svn/?source=typ_redirect ...

  10. SVN学习之svn命令行下的基本操作

    http://huihai.iteye.com/blog/1985751 上一节已经把svn安装完成,下来就用命令行做一些简单的操作. 1.当svn安装完成后,svn管理人员会在svn的root根目录 ...

随机推荐

  1. ActiveX学习笔记二 ActiveX在IE中安全级别问题-实现IObjectSafety接口

    http://blog.csdn.net/freedomqx/article/details/4955512 使用MFC开发ActiveX控件,在IE中会提示安全问题,这个可以通过实现IObjectS ...

  2. http://blog.csdn.net/wzzvictory/article/details/16994913

      原文地址:http://blog.csdn.net/wzzvictory/article/details/16994913   一.什么是instancetype instancetype是cla ...

  3. arcgis pro行列转换

    行转列 列转行

  4. [web前端] 去哪儿网前端架构师司徒正美:如何挑选适合的前端框架?

    原文地址: https://www.jianshu.com/p/6327d4280e3b 最近几年,前端技术迅猛发展,差不多每年都会冒出一款主流的框架. 每次新开业务线或启动新项目时,首先第一件事就是 ...

  5. 序列化与反序列化的单例模式实现和readResolve()【转】

    如: public class SingleTest implements Serializable{private static final long serialVersionUID = -860 ...

  6. JavaScript之Date日期对象扩展

    各种时间加减 收藏起来以备后用 //名称:日期加法函数 //参数:part(year.month.day.hour.minute.second.millisecond) //返回:Date对象 Dat ...

  7. array2json() - Convert PHP arrays to JSON

    array2json is a PHP function that will convert the array given as its argument into a JSON string. T ...

  8. fiddler抓包参数乱码的解决方法

    解决方法: 1.win+R 2.打开注册表编辑器:输入regedit +回车+是 3.HKEY_CURRENT_USER\Software\Microsoft\Fiddler2 4.右键新建,选字符串 ...

  9. CSS之定位,relative/absolute/fixed的用法

    其实position的值有四个,static/relative/absolute/fixed,而static是默认值,不算具有有定位属性,这里就不讲了. 定位其实就是跟元素设置定位属性,然后设置其对位 ...

  10. 关于tomcat不同版本的maxPostSize

    tomcat7.0.63之前: maxPostSize The maximum size in bytes of the POST which will be handled by the conta ...