• svn使用规范、在Windows下使用svn命令行工具、svn命令行的解释


    以前在公司一直使用git,现在公司有用svn,一时间还真的不知道如何下手,在网上搜寻了很多大神和官网文档的指导,总结了下面一份教程,希望能够帮助大家快速上手,如果想更细致的了解相关内容,可以点击每个小节里提供的的链接。

    1、Windows下命令行工具:

    发现原来安装的tortoisesvn已经集成到shell中,不能在命令行下使用。于是找到这个http://www.visualsvn.com/downloads/

    下载Apache Subversion command line tools,这是一个可以在cmd下使用的命令行工具,解压后把里面bin目录这个路径添加到环境变量的path,这样在cmd下就可以使用了,和linux下使用svn的习惯一样了。

    2、简明教程:

    http://www.flyne.org/article/851

    目录约定:

    • /trunck:开发主线
    • /branches:支线副本
    • /tags:标签副本(一旦创建,不允许修改)

    1)使用trunk作为主要的开发目录

    一般的,我们的所有的开发都是基于trunk进行开发,当一个版本(release)开发告一段落(开发、测试、文档、制作安装程序、打包等结束后),代码处于冻结状态(人为规定,可以通过hook来进行管理)。此时应该基于当前冻结的代码库,打tag。

    当下一个版本/阶段的开发任务开始时,继续在trunk进行开发。此时,如果发现了上一个已发行版本(Released Version)有一些bug,或者一些很急迫的功能要求,而正在开发的版本(Developing Version)无法满足时间要求,这时候就需要在上一个版本上进行修改了。解决方法是基于发行版对应的tag,做相应的分支(branch)进行开发。

    2)下图为struts2的SVN仓库目录:

    3、常用命令

    svn help

    svn --version

    svn --version --quiet 只显示版本号

    svn checkout 地址

    svn add 文件或者文件夹 增加本地数据到服务器

    svn commit / svn ci -m “注释” 文件名 提交代码,要先add才commit

    svn update / svn up 不必跟特定的文件或目录,也可以自己指定需要更新的文件或目录。每次commit或者改动之前最好更新一下。

    svn log

    svn delete 文件名

    svn resolve 路径 --accept working 解决冲突

    http://zccst.iteye.com/blog/1765519

    svn switch 远程路径 版本切换

    svn list 路径 / svn ls 列出版本库下的文件和目录

    svn merge -r m:n 路径 合并文件,从版本号m到版本号n的远程分支都合并到当前分支中

    svn info 确认工作目录的svn信息

    svn diff -r m:n 路径 对版本m和版本n比较差异

    svn cleanup 为失败的失误清场

    svn status -v 在本地进行代码修改,检查修改状态

    svn import 远程路径 --message “message” 将当前路径下文件导入到版本库中

    svn export 远程路径 导出一份干净的项目

    svn move/ svn mv 原文件名 新文件名 重命名

    svn mkdir 文件名

    svn copy / svn cp 源文件路径 新文件路径

    svn revert 文件名 只能恢复未提交之前的操作

    若要还原已提交的改动:只能用旧文件覆盖新文件。操作如下:

    1)sun up    让本地工作拷贝更新到最新状态
    
    2)svn
    

    log your_file_path 查看文件日志,这时候提交时填写的说明信息就派上用场了

    3)svn diff
    

    -r 旧修订版序号:新修订版序号 your_file_path 查看两个修订版之间的不同。

    4)决定用哪个旧的修订版号后,用旧的修订版号文件覆盖新的修订版号文件。svn
    

    merge -r 新修订版序号:旧修订版序号 your_file_path

    5)svn commit -m "恢复到某修订版(某修订版作废)"
    

    本地的版本叫做working copy

    4、关于merge

    branch主要用于新功能的开发
    合并发生在本地working copy,只要你不提交就不会影响到repository
    合并前一定要先update、commit,保证不会out of day,并将本地的修改保存到repository
    branch和trunk并行开发的过程中,要经常同步,将trunk的修改合并到branch,合并时选择"Merge a range of revision"
    branch最后合并回trunk时,merge type选择"Reintegrate a branch"

    不管是从trunk合并到branch还是最终从branch合并回trunk,在每次合并前最好先update,然后将本地的修改先全部commit,保护好现场,万一合并不理想随时都可以revert http://blog.csdn.net/eggcalm/article/details/6606520

    http://zhengkun.readthedocs.org/zh_CN/latest/2014/02/07/svn-usage/

    5、关于解决冲突

    发生冲突之后会出现三个临时文件:

    XXX.mine XXX.r1 XXX.r2

    一旦解决了冲突,需用svn resolved让subversion知道,这样就会删除这三个临时文件,冲突状态解决。

    三种解决方式:

    • 手工合并冲突:需要将冲突标志删除

    • 用某一个临时文件覆盖自己的工作文件

    • 用svn revert 放弃本地修改,不需要执行resolved

    6、高级教程 很棒!!
    https://i18n-zh.googlecode.com/svn/www/svnbook-1.4/index.html

    7、Git和SVN的区别

    http://blog.csdn.net/bruce_6/article/details/38299677

    Git是分布式svn是集中式;svn只有一个中央版本库,而git有无限个;svn有全局的版本号,git没有;git不必联网就可以看到所有的log,svn必须联网;git保存的是元数据,svn是复制整个文档;git强调分支,svn只是不同的文件目录,就是copy。

  • 相关阅读:
    常见寻找OEP脱壳的方法
    Windows内核原理系列01
    HDU 1025 Constructing Roads In JGShining's Kingdom
    HDU 1024 Max Sum Plus Plus
    HDU 1003 Max Sum
    HDU 1019 Least Common Multiple
    HDU 1018 Big Number
    HDU 1014 Uniform Generator
    HDU 1012 u Calculate e
    HDU 1005 Number Sequence
  • 原文地址:https://www.cnblogs.com/ysk123/p/9910461.html
Copyright © 2020-2023  润新知