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。
svn使用规范、在Windows下使用svn命令行工具、svn命令行的解释的更多相关文章
- Windows下Nginx的启动、停止等命令
Windows下Nginx的启动.停止等命令 在Windows下使用Nginx,我们需要掌握一些基本的操作命令,比如:启动.停止Nginx服务,重新载入Nginx等,下面我就进行一些简单的介绍.1.启 ...
- Windows下Nginx的启动、停止等命令(转)
Windows下Nginx的启动.停止等命令 在Windows下使用Nginx,我们需要掌握一些基本的操作命令,比如:启动.停止Nginx服务,重新载入Nginx等,下面我就进行一些简单的介绍.1.启 ...
- windows 下使用VMware Workstation Pro 工具,ubuntu创建虚拟机
本文记录windows 下使用VMware Workstation Pro 工具,ubuntu创建虚拟机 的步骤 第一步 [文件] --- [新建虚拟机] 第二步 弹出的新建虚拟机向导对话框 标准 ...
- Windows下Nginx的启动、停止等命令添加
Windows下Nginx的启动.停止等命令在Windows下使用Nginx,我们需要掌握一些基本的操作命令,比如:启动.停止Nginx服务,重新载入Nginx等,下面我就进行一些简单的介绍.1.启动 ...
- Java Windows下读取注册表的工具类
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import ...
- windows下删除文件夹里的 .svn
windows下: 删除文件夹里的 .svn, cmd 进入相应目录 运行 for /r ./ %a in (./) do @if exist "%a/.svn" rd ...
- Windows下查看8080进程及结束进程命令
Windows下查看进程及结束进程命令 1)查看占用8080端口的进程号 >netstat –aon | findstr “8080” 结果:TCP 0.0.0.0:8080 ...
- Windows下硬盘存储情况可视化工具--WinDirStat
WinDirStat是一款免费的用于Windows下硬盘空间可视化工具. 下载地址:https://windirstat.en.softonic.com/ 界面如图所示: 可以轻易看出硬盘空间使用情况 ...
- CMD命令行提示被禁用的情况下如何继续使用命令行工具执行命令
1.直接在Windows搜索 左下 输入要执行的 CMD 命令单句.多句同时执行没有试出来. 暂时记录这一条.2016-12-20
- windows下通过Git Bash使用Git常用命令
Git跟SVN最大不同的地方就是分布式.SVN的集中式与Git的分布式决定各自的业务场景.既然是分布式的,那么大部分操作就是本地操作.一般Git操作都是通过IDE,比如Eclipse,如果装了Git ...
随机推荐
- Log4j2基本使用入门
1.Log4j2简介 Apache Log4j 2是日志框架Log4j的升级, 它比其前身Log4j 1.x提供了重要的改进, 并且参考了Logback中许多有用的改进, 同时修复了Logback的一 ...
- Autosys 快速参考
Autosys Quick Reference Introduction to Autosys: AutoSys is an automated job control system for sche ...
- spring cloud feign 报错 feign.FeignException$MethodNotAllowed: status 405 reading 解决
1.前言 出现报错 feign.FeignException$MethodNotAllowed: status 405 reading XXXXX 需要检查 接口的请求参数是否一致 请求参数是否正确添 ...
- Go语言系列之标准库path/filepath
一.Path包 import "path" path实现了对斜杠分隔的路径进行操作的函数. func IsAbs(path string) bool // 判断是否是一个绝对路径 ...
- 编写程序向HBase添加日志信息
关注公众号:分享电脑学习回复"百度云盘" 可以免费获取所有学习文档的代码(不定期更新) 承接上一篇文档<日志信息和浏览器信息获取及数据过滤> 上一个文档最好做个本地测试 ...
- HTML5元素
1.1结构元素 HTML5定义了一组新的语义化标签,目前主流浏览器均已支持,语义化标签使用标记元素的内容,虽然可以使用原有标签替换,但是它可以简化HTML页面设计,并且也为搜索引擎在抓取和索引网页的时 ...
- Python多环境管理神器(pyenv)
前面我们已经介绍了,python中两种最基础的虚拟环境管理工具,venv和virtualenv,其中virtualenv可以和virtualenvwrapper配合使用.详情请参考:https://w ...
- 【小测试】使用腾讯云上的群集版redis
具体的文档请见:https://cloud.tencent.com/document/product/239/3205 群集版本相当于很多个redis进程构成一个群集,最大支持128个分片(猜测分片就 ...
- java继承成员变量特点
1 /* 2 * 在子父类中,成员的特点体现. 3 * 1,成员变量. 4 * 2,成员函数. 5 * 3,构造函数. 6 */ 7 8 //1, 成员变量. 9 /* 10 * 当本类的成员和局部变 ...
- 微信小程序入门教程之一:初次上手
微信是中国使用量最大的手机 App 之一,日活跃用户超过3亿,月活跃用户超过11亿(2019年底统计),市场极大. 2017年,微信正式推出了小程序,允许外部开发者在微信内部运行自己的代码,开展业务. ...