【吐血整理】SVN命令行,Subversion的正确使用姿势,让版本控制更简单~

一、写在前面

     前面一直博主一直用svn的桌面版本,但看项目经理一直都用的命令行方式,不为性能,还能直接装逼呀!在这里先感谢赵哥,也把它分享给感兴趣的你们~

二、直接上干货

1. svn checkout path # path 是服务器上的目录

功能:从服务器 checkout 代码
简写:svn co path

2. svn status path # path 是文件或目录 

功能:查看指定文件或目录的状态
简写:svn st path
字段1:
? 不在svn控制中
M 内容被修改
C 发生冲突
A 预定加入到版本库
K 被锁定
扩展:svn st -v path # 显示 path 文件的详细状态
字段1: 同上
字段2: 工作版本号
字段3: 最后一次修改的版本号
字段4: 最后一次修改的修改人

3. svn diff path # path 是需要比对的文件  

功能:比对指定的文件

简写:svn di path
扩展:svn diff -r m:n path # path 文件在版本m和版本n之间进行比较

4. svn add path # path 是要添加的目录或文件

功能:添加指定的目录或文件

5. svn log path # path 是要查看的目录或文件

功能:查看指定目录或文件的所有修改纪录,及版本号的变化
扩展:svn log -l count path # count 是条数,path 是目录文件
功能:查看指定目录或文件的最近 count 次提交信息
扩展:svn log -r revision # revision 是要查看的版本
功能:查看指定版本的 log
扩展:svn log -v
功能:列出详细的log信息,包括每一个版本都修改了哪些文件

6. svn info path # path 是要查看的目录或文件

功能: 查看指定目录或文件的详细信息

7. svn revert [-R] path # path 是要恢复的目录或文件

功能: 恢复本地指定的目录或文件的修改

8. svn update

功能:更新svn库到最新版本 简写:svn up
扩展:svn update path # path 是要更新的目录或文件
扩展:svn update -r m path # path 要更新的目录或文件;
# m 是目标版本号

9. svn commit -m "message” # message 是提交的信息

功能:将当前目录下的所有已修改文件进行提交
简写:svn ci
扩展:svn ci path # path 是要提交的文件或目录

10. svn proplist

功能:查看当前目录下的 svn 属性信息
简写:svn plist

11. svn propget prop # prop 属性

功能:查看属性的值,如 :svn:ignore
简写:svn pget prop

12. svn propset prop value path

# prop 属性,value 值,path 路径
功能:在 path 路径下,设置 prop 属性的值为 value
简写:svn pset prop value path

13. svn cp -m “message” original_url branch_url

#original_url 原始版本库地址,branch_url 要创建的branch的地址
功能:在svn服务端创建一个分支

14. svn merge original_url # original_url 主干的版本库地址

功能:将主干的最新代码合并到分支上
前提:当前所在目录是分支的根目录

15. svn merge —reintegrate branch_url

# branch_url 分支的版本库地址
功能:将分支合并到主干上
前提:当前所在目录是主干的根目录

16. svn rm branch_url # branch_url 分支的版本库地址

功能:删除分支

17. svn copy -m “message” original_url tag_url

# original_url 原始版本库地址,tag_url 要创建的tag的地址
功能:在svn服务端创建一个tag

18. svn merge -r m:n path 


# m 当前最新的版本号
# n 要回滚的目标版本号
# path 文件或目录
功能:将文件或目录回滚到指定的版本号(反相合并)
与 svn up -r m path 的区别:
up只进行内容回退,版本库不记录此次文件的改变,svn st看不到文件的改变,无法提交revert内容
merge不仅进行内容回退,版本库会记录文件的改变,svn st可以看到文件的该表,可以将改变提交

19. svn resolve —accept working [-R] path

功能:解决指定文件或目录的冲突状态,如果path是一个目录并且想要对该目录下的所有子目录都生效,是要使用 -R 参数

20. svn diff -rm:n

# m 版本号
# n 版本号
功能:查看两次版本之间的具体差异,生成patch

21. patch -p0 < ***.patch

# ***.patch patch的文件名
功能:将某个patch打入到svn

22. svn merge -r newest:target

# newest 最新的版本号
# target 目标版本号
功能:将代码恢复到target的版本,并记录修改,当再次svn ci的时候,相当于revert,删除了newest与target之间的提交

23. svn export -r version original_file target_file

# version 指定的版本号
# original_file 指定的文件
# target_file 指定的目标路径
功能:导出指定文件的指定版本到指定路径

24. svn revert —depth infinity path

#path 要恢复的目录
功能:恢复本地指定的目录或文件的修改

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
早在2000年,CollabNet, Inc.就开始召集开发人员开发CVS的替代品。CollabNet 提供一套名为SourceCast协同工作套件,其中的一部分组件是版本控制。虽然SourceCast使用CVS作为其最初的版本控制系统,但是CVS的种种限制从一开始就处处可见,最后CollabNet明白必须要找到一个好的解决方案。不幸的是,至少在免费license中,因为没有好的选择,CVS已经广泛成为了开源世界中事实上的标准。所以CollabNet决定开发一个新的版本控制系统,保留CVS的基本特性但去除CVS的bug和不好的特性。   在2000年2月,他们联系《使用CVS开发开源项目》(Open Source Development with CVS)(Coriolis, 1999)的作者Karl Fogel,并征求了他是否愿意在这个新的项目中担任一个角色。巧合的是,当时Karl已经和他的朋友Jim Blandy讨论了一个关于新的版本控制系统的设计。在1995年,这两人就成立了Cyclic Software,一个提供CVS的商业支持的软件公司。虽然他们经营商业服务,但是仍然在每天都在工作中使用CVS。使用CVS的挫折感使得Jim认真思考好的方法来管理数据,不但确定名字为“Subversion”,而且完成了Subversion档案库的基础设计。   当CollabNet的电话到来时,Karl立即答应了加入项目中,而且Jim让他的雇主RedHat Software同意让他在这个项目中不定期工作。CollabNet雇用了Karl和Ben Collins-Sussman,并在5月开始了详细设计工作。在得到了来自CollabNet的Brian Behlendorf、Jason Robbins和Greg Stein(当时是一名活跃在WebDAV/DeltaV规范过程的自由程序员)很多创意的帮助下,Subversion很快地引起了一个活跃开发者社区的注意。它找出并欢迎很多同样在CVS上受到挫折的社员能来为这个项目做点什么。   Subversion 最初的设计Team定下了几个简单的目标。 它必须在功能上可取代 CVS,也就是说, 所有 CVS 可做到的事, 它都要能够作到。 在修正最明显的瑕疵的同时, 还要保留相同的开发模式。 还有, Subversion 应该要和 CVS 很相像, 任何 CVS 使用者只要花费少许的力气, 就可以很快地上手。   经过十四个月的编码后, Subversion 于2001年8月31日开始实现 “自管理”。 也就是说, 开发人员不再使用 CVS 来管理 Subversion 的代码, 而以 Subversion 自己来管理。   从启动这个项目到现在,虽然CollabNet提供了大部分的资金(它付出几位全职 Subversion 开发人员的薪水), 但这还是个开源项目, 由一组松散透明的规则所约定。 CollabNet 拥有代码的版权完全符合 Debian Free Software Guidelines。 换句话说, 每个人都可以随意地免费下载、修改、以及重新发布 Subversion; 完全不需要经过 CollabNet, 或是任何人的允许。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值