SVN(Subversion)是一个开源的版本控制工具,普遍用于代码管理。
SVN系统中存在服务器代码库和终端。终端即本地电脑,从远程服务器上拷贝代码到本地,编辑后可以提交到服务器上。SVN中的所有内容都保存在远程服务器上。对于每一次提交,SVN都会针对这次的文件版本分配一个版本号,用于唯一标识这个版本。
查看svn信息
svn目录的信息
? beauty svn info config [文件夹名]
Path: config[相对于SVN root目录的位置]
Working Copy Root Path: /Users/a2014/test/Project[SVN root目录的位置]
URL: http://svn.localhost.com/repos/project/trunk/config[远程server代码库的URL]
Repository Root: http://svn.localhost.com/repos[远程SVN代码库的root url]
Repository UUID: 66a6744b-ee30-477d-922d-9bb399cb4c39[代码库的UUID]
Revision: 290575[SVN代码库当前版本号]
Node Kind: directory[当前文件的类型,路径]
Schedule: normal
Last Changed Author: deshengkong[上次提交修改的用户]
Last Changed Rev: 286192[copy下来的文件上次修改时的SVN版本号]
Last Changed Date: 2015-02-07 12:04:28 +0800 (六, 07 2 2015)[当前路径上次修改的时间]
svn文件的信息
? beauty svn info config/bj/config.inc.php
Path: config/bj/config.inc.php
Name: config.inc.php
Working Copy Root Path: /Users/a2014/test/Project
URL: http://svn.localhost.com/repos/project/trunk/config/bj/config.inc.php
Repository Root: http://svn.localhost.com/repos
Repository UUID: 66a6744b-ee30-477d-922d-9bb399cb4c39
Revision: 290575
Node Kind: file[文件]
Schedule: normal
Last Changed Author: taoyan
Last Changed Rev: 279400
Last Changed Date: 2015-01-28 12:18:04 +0800 (三, 28 1 2015)
Text Last Updated: 2015-02-16 11:57:01 +0800 (一, 16 2 2015)[该文件最新一次update的时间]
Checksum: a8c1e957e1d21569b371d6d9cae6362818825af8[推测是该文件的md5值,不确定。。。]
将文件checkout到本地
? test svn co http://svn.localhost.com/repos/project/trunk/[远程SVN代码库中某个文件的url地址] ./Project[本地文件夹]
……
U Project
Checked out revision 290575.[代码库的版本号]
查看当前目录下文件的状态
? public svn st ./public[路径/文件名]
? index.test1.php[?表示该文件没有加入版本控制系统]
M index.test2.php[M表示该文件本地有修改 modify,并且未提交到SVN服务器]
A index [A表示add 新增]
D index [D表示delete 删除]
更新当前文件,即从远程server上update最新的代码到本地
? beauty_server svn up
Updating ‘.‘:
At revision 290624.
向版本库中添加路径
? public svn mkdir index[路径名]
A index
向版本库中添加文件
? public svn add index.test1.php[文件名]
A index.test1.php
向版本库提交修改,做任何操作后,包括添加、删除、修改,都要提交到远程server。
? public svn ci -m ‘test‘[m是备注]
Adding index
Transmitting file data .
Committed revision 290600.
比较两版本a和b版本的差别,di后面没参数的话,则比较当前工作目录和远程SVN代码库中的文件的差别
? public svn di -r a:b
从版本库中删除文件
? public svn rm index
D index
查看SVN中某文件的内容
? im svn cat -r258008[版本号] Car.class.php[文件名]
......
撤销未commit的SVN命令/本地对某个文件的修改
? public svn revert index
Reverted ‘index‘
新建分支test
? public svn copy http://svn.localhost.com/repos/project/trunk/[source 分支] http://svn.localhost.com/repos/project/branches/test[target 分支] -m ‘test‘
Committed revision 290621.
切换分支,在root目录下执行该命令
? project svn switch http://svn.localhost.com/repos/project/branches/test
Updated to revision 290623.
合并分支,切换到主分支
? project svn merge http://svn.localhost.com/repos/project/branches/test [分支URL]
删除分支
? project svn rm http://svn.localhost.com/repos/project/branches/test -m ‘test‘
Committed revision 290624.
查看日志,日志按版本号倒排
? project svn log
------------------------------------------------------------------------
r290620[版本号] | deshengkong [author]| 2015-02-16 14:40:57 +0800 (一, 16 2 2015) [date]| 1 line [修改行数]
test[备注]
原文地址:http://blog.csdn.net/dia_vampire/article/details/43852045