本文转载自:https://blog.csdn.net/yangxiao2shi/article/details/50719286/

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

1、Windows下命令行工具:

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

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

 
2、简明教程:
 
目录约定:
  • /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    解决冲突
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
 
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的区别
Git是分布式svn是集中式;svn只有一个中央版本库,而git有无限个;svn有全局的版本号,git没有;git不必联网就可以看到所有的log,svn必须联网;git保存的是元数据,svn是复制整个文档;git强调分支,svn只是不同的文件目录,就是copy。

在Windows下使用svn命令行教程及svn命令行的解释的更多相关文章

  1. CentOS和Windows下配置MySQL远程访问的教程

    CentOS和Windows下配置MySQL远程访问的教程   一.前言 由于实验在云服务器上跑的结果不是很理想.所以,现在切换到局域网服务器.因此,需要重新配置 Windows 服务器和 CentO ...

  2. windows下Eclipse安装Perl插件教程

    windows下Eclipse安装Perl插件教程 想用eclipse编写perl.网上看了很多资料.但EPIC插件的下载连接都失效了.无奈,只好自己动手写个教程记录一下. 准备工作: 安装好Ecli ...

  3. NoSQL和Redis简介及Redis在Windows下的安装和使用教程

    转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/103.html?1455869099 NoSQL简介 介绍redis前,我 ...

  4. windows下ftp上传下载和一些常用命令

    先假设一个ftp地址 用户名 密码 FTP Server: home4u.at.china.com User: yepanghuang Password: abc123 打开windows的开始菜单, ...

  5. windows下Graphviz安装及入门教程

    下载安装配置环境变量 intall 配置环境变量 验证 基本绘图入门 graph digraph 一个复杂的例子 和python交互 发现好的工具,如同发现新大陆.有时,我们会好奇,论文中.各种专业的 ...

  6. Linux及Windows下ActiveMQ下载与安装教程

    原文连接:(http://www.studyshare.cn/blog-front//blog/details/1170/0 )一.下载 Windows: 1.官网下载地址:这里 2.百度网盘下载:这 ...

  7. Windows下MariaDB数据库安装图文教程

    MariaDB是基于MySQL的开源数据库,兼容MySQL,现有的MySQL数据库可以迁移到MariaDB中使用   说明: MariaDB是基于MySQL的开源数据库,兼容MySQL,现有的MySQ ...

  8. Windows下mysql导出和导入数据库表(命令行)

    导出: 1.打开ctrl+R输入cmd 打开命令行 2.cd D:\mysql-8.0.15-winx64\bin 到MySQL的bin目录 3.输入命令  mysqldump -u root -p ...

  9. Clion+Cmake+Qt5+Qwt+msys2+MinGW在Windows下的安装配置使用教程

    摘要: CLion, a cross-platform C/C++ IDE. 本文主要介绍基于Clion作为IDE, MinGW作为编译器,CMake作为项目构建工具,开发基于Qt5.qwt的C++图 ...

随机推荐

  1. bzoj1053&&51nod1060

    题解: 其实就是求1-n之中拥有最多约数的数 一个数x的质因数分解为p1^e1*p2^e2*...*pn^en,则正因数的个数为(e1+1)(e2+1)...(en+1) 那么发现,正因数的个数和p没 ...

  2. 在电脑用Chrome运行安卓apk程序[ARC Welder]

    chrome好用,但要FQ. 为了某些特别有意思的功能,FQ也要实现它. 这个就是:在chrome中使用android APP 一:系统需求: chrome浏览器 梯子(就是FQ,因为我们要去goog ...

  3. sublime text3的快捷键

    Ctrl + Shift + P    调出命令板(Command Palette) Ctrl + `    调出控制台 Ctrl + D    选择当前光标所在的词并高亮该词所有出现的位置,再次 C ...

  4. 玩转X-CTR100 l STM32F4 l DS18B20单总线温度传感器

    我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ]      本文介绍X-CTR100控制器 扩展DS1 ...

  5. SharePoint Infopath表单服务-PowerShell

    1. 激活可浏览的表单模板 Set-SPInfoPathFormsService -AllowUserFormBrowserEnabling $true -AllowUserFormBrowserRe ...

  6. 史前埃及(predynastic egypt)

    一个并不复杂的建造发展游戏,却十分有趣 安排工作-收集资源-招募工人-增加生产资源效率or建设科技-招募工人的模式 地表在建设后有明显的变化 同时也可以通过简单的动画展示工人的工作分配

  7. kmp算法中的nextval实例解释

    求nextval数组值有两种方法,一种是不依赖next数组值直接用观察法求得,一种方法是根据next数组值进行推理,两种方法均可使用,视更喜欢哪种方法而定. 本文主要分析nextval数组值的第二种方 ...

  8. tomcat conf目录下文件的作用

    本文以apache-tomcat-6.0.26为准介绍 1.   web.xml: 默认(欢迎)文件的设置  配置包括:主要是配置servlet,包括初始化参数,设置session等 <serv ...

  9. 在C#中如何定义一个变长的结构数组?如果定义好了,如何获得当前数组的长度?

    用ArrayList,他就相当于动态数组,用add方法添加元素,remove删除元素,count计算长度

  10. python打包成.exe

    pyuic5 mainwindow.ui -o test.py pip install pyinstaller pyinstaller -F -w ***.py https://blog.csdn.n ...