适合对git熟悉但是没用过svn的朋友查看
1、安装客户端
mac使用homebrew
brew install subversion
其他系统、安装方式自行搜索即可!
2、基本命令
2.1 检查远程仓库中的文件
# svn checkout 地址 本地目录
svn checkout svn://ip/XXX/docs mytest
作用:等于是git clone
前提:需要在服务端分配用户名、密码和权限
注意:(1)svn checkout
是在第一次与SVN服务器建立连接的时候使用;(2)在检出前,最好先新建一个空的文件夹;(3)在下载之前首先查看有什么文件svn list 地址
2.2 更新本地内容
svn update [PATH...]
作用:将远程仓库的修改同步到本地
2.3 推送本地到远程
# 1 添加到svn管理
svn add mytest/hi
# 2 保存版本
svn commit mytest/ -m "hi"
作用:将本地的修改同步到远程仓库
注意:It is a good practice to update your working copy before committing local modifications to the repository.
2.4 删除文件
svn delete 文件地址
作用:将某个文件排除svn
注意:先使用命令删除,然后在在文件目录中物理删除
3、分支管理
主要包括分支分类、创建、合并等
3.1 svn分支管理模型
svn分支管理和git不同,svn中分为主干和分支,主干就一个,分支可以有多个,使用不同的文件夹中以作区分。每一个类型的分支都对应服务器上单独的一个文件夹:
-
trunk文件夹: 主干,我们一般把项目提交到此文件夹里面,在trunk中开发。
-
branches文件夹:分支,我们一般把那些需要打分支,但是有可能会修改的项目代码,打分支到此目录,其中可包含多个项目的副本(多个分支项目)。
-
tags文件夹:分支,我们一般把那些阶段性(如迭代各期)的项目代码,打分支到此目录。
注意:(1)git中只有一个文件夹,没有副本,不同的分支只存在版本的不同;而在svn中,不同的分支就是不同的项目副本,这是我认为svn与git最大的不同。(2)在使用上,分支的概念和git中一样,就是新建、合并、删除的操作。
3.2 创建分支
svn cp -m "create branch" http://server/test/trunk http://server/test/branches/future
作用:根据trunk创建一个分支future
3.3 获得分支
svn co http://server/test/branches/future
3.4 合并主干上最新代码到分支
svn merge http://server/test/trunk
作用:将主干上的代码,合并到当前所在分支
注意:在分支下执行
3.5 分支合并到主干
svn merge --reintegrate http://server/test/branches/future
作用:在分支上开发完成后,合并到主干
注意: SVN中执行该操作需要在trunk的工作目录下进行
3.6 删除分支
svn rm http://server/test/branches/future -m 'delete future'
作用:代码在分支开发完成并合并到主干后,删除分支
3.7 合并版本并将合并后的结果应用到现有的分支上
svn -r 148:149 merge http://server/test/trunk
注意:在另外分支future1版本控制下
4、实践
未完待续……
如有不足,欢迎指正!
参考:
[1] svn 命令行创建分支、合并主干_svn 命令行创建分支、合并主干 命令行_ 蜂蜜柚子茶的博客-CSDN博客
[2] mac安装svn的两种方式(使用brew安装svn 和 可视化工具SnailsvnLite)mac svn工具@素素~的博客-CSDN博客