Apache Subversion 通常被缩写成 SVN,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。
下载地址:svn下载
这里讲解 Mac 上操作 SVN, window使用 tortoisesvn 操作 SVN 可以参照这里:tortoisesvn具体操作SVN。
注: Mac系统自带SVN所以不需要下载。
svn checkout path(服务器目录)
例:svn checkout svn:192.168.1.1/XXXX
简写:svn co
svn status
(1)svn status path(目录下的文件和子目录的状态,正常状态不显示)
【?:不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被锁定】
(2)svn status -v path(显示文件和子目录状态)
第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改人。
注:svn status、svn diff和 svn revert这三条命令在没有网络的情况下也可以执行的,原因是svn在本地的.svn中保留了本地版本的原始拷贝。
简写:svn st
svn info
svn info path
例:svn info test.html
svn ls
svn ls -r 100
svn add file
例:svn add test.html(添加test.html)
// 更新
svn update [-r] m path
例如:
svn update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。
svn update -r 200 test.php(将版本库中的文件test.php还原到版本200)
svn update test.php(更新,于版本库同步。如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件,然后清除svn resolved,最后再提交commit)
简写:svn up
*** 跟Git一样,公司协作开发,防止意外,先拉后推。***
// 提交
svn commit -m 'add test file' test.html
简写:svn ci
svn log path
例如:svn log test.php 显示这个文件的所有修改记录,及其版本号的变化
svn delete path -m "delete test file"
例如:svn delete svn://192.168.1.1/pro/domain/test.php -m "delete test file"
或者直接svn delete test.php 然后再svn ci -m 'delete test file',推荐使用这种
简写:svn (del, remove, rm)
svn diff path(将修改的文件与基础版本比较)
例如:svn diff test.php
svn diff -r m:n path(对版本m和版本n比较差异)
例如:svn diff -r 200:201 test.php
简写:svn di
svn merge -r m:n path
例如:svn merge -r 200:205 test.php(将版本200与205之间的差异合并到当前文件,但是一般都会产生冲突,需要处理一下)
revert PATH…
取消所有的本地编辑。
恢复一整个目录的文件,可以使用--depth=infinity选项
注意: 本子命令不会存取网络,并且会解除冲突的状况。但是它不会恢复被删除的目录
服务器上更新新版本我们经常就用这个命令来把当前代码切换到新的分支
svn switch svn://svnbucket.com/test/branches/online1.0
svn resolved PATH…
移除工作副本的目录或文件的“冲突”状态。
注意: 本子命令不会依语法来解决冲突或是移除冲突标记;它只是移除冲突的相关文件,然后让 PATH 可以再次提交。
svn switch --relocate 原svn地址 新svn地址
svn cp -m "描述内容" http://svnbucket.com/xxxx http://svnbucket.com/xxxx/branches/online1.0
cd branches/online1.0
svn merge http://svnbucket.com/xxxx
svn merge --reintegrate http://svnbucket.com/xxxxx/branches/online1.0
svn rm http://svnbucket.com/xxxxx/branches/online1.0
svn help
# 查看指定命令的帮助信息
svn help commit
1 svn lock -m “LockMessage“ [--force] PATH
2 例如:svn lock -m “lock test file“ test.php
3 svn unlock PAT
(1)首先通过“ls”操作可以查看当前目录的文件。
通过“cd 文件名”操作可以进入到某个文件夹,文件夹输入一部分后,如果是唯一的,则可以按Tab键来补全文件夹名。
进入到使用svn进行版本管理的工程文件夹后。
使用以下语句可以查看当前本地文件的版本号:
svn info
当然查出来的不止是版本号信息了。
使用以下语句进行版本回退:
svn update -r 版本号
这样就可以更新到某个版本,比如要去往版本号为20190925的版本:
svn update -r 20190925
这样就可以开始版本替换了。
在替换过程中,有可能会出现冲突,svn会给出处理的快捷键:
按s可以查看各个快捷键的说明:
我们选择“tf”就可以了,表示全部以服务器的代码为准。
这样就可以回退到相应的版本了。
要回到现在的版本也是一样的操作。
// 解决方法:
svn add 所创建的文件夹名称
然后执行 svn commit -m '描述内容' 出现以下过程,说明文件在远程SVN上面提交成功
SnailSVNLite官网
其实也没必要去官网,App Store就可以。直接搜
SnailSVN 是最像 TortoiseSVN 小乌龟的 Apache Subversion(SVN)客户端,与 Finder 紧密集成。
SnailSVN 允许你从 Finder 的上下文菜单中快速访问各种最常用的 SVN 功能。
SnailSVN 为 Finder 中的 SVN 工作副本文件添加状态图标,并在文件改动时自动更新状态图标,工作副本中文件的状态一目了然。
安装好以后,需要在“系统偏好设置 » 扩展 » Finder”中启用“SnailSVN 扩展”,才能在Finder里右键菜单看到。