1、将文件checkout到本地目录

svncheckoutpath(path是服务器上的目录)

比如:svncheckoutsvn://192.168.1.1/pro/domain

缩写:svnco

2、往版本库中添加新的文件

svnaddfile

比如:svnaddtest.php(添加test.php)

svnadd*.php(添加当前目录下所有的php文件)

3、将改动的文件递交到版本库

svncommit-m“LogMessage“[-N][--no-unlock]PATH(假如选择了保持锁,就使用–no-unlock开关)

比如:svncommit-m“addtestfileformytest“test.php

缩写:svnci

4、加锁/解锁

svnlock-m“LockMessage“[--force]PATH

比如:svnlock-m“locktestfile“test.php

svnunlockPATH

5、更新到某个版本

svnupdate-rmpath

比如:

svnupdate假如前面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。

linux查看svn版本命令_查看linux版本命令_linux 查看 svn 版本命令

svnupdate-r200test.php(将版本库中的文件test.php还原到版本200)

svnupdatetest.php(更新linux 查看 svn 版本命令,于版本库同步。若果在递交的时侯提示过期的话,是由于冲突,须要先update,更改文件,之后去除svnresolved,最后再递交commit)

缩写:svnup

6、查看文件或则目录状态

1)svnstatuspath(目录下的文件和子目录的状态,正常状态不显示)

【?:不在svn的控制中;M:内容被更改;C:发生冲突;A:预定加入到版本库;K:被锁定】

2)svnstatus-vpath(显示文件和子目录状态)

第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次更改的版本号和更改人。

注:svnstatus、svndiff和svnrevert这三条命令在没有网路的情况下也可以执行的,缘由是svn在本地的.svn中保留了本地版本的原始拷贝。

缩写:svnst

7、删除文件

svndeletepath-m“deletetestfle“

比如:svndeletesvn://192.168.1.1/pro/domain/test.php-m“deletetestfile”

或则直接svndeletetest.php之后再svnci-m‘deletetestfile‘,推荐使用这些

缩写:svn(del,remove,rm)

8、查看日志

svnlogpath

比如:svnlogtest.php显示这个文件的所有更改记录,及其版本号的变化

9、查看文件详尽信息

linux 查看 svn 版本命令_查看linux版本命令_linux查看svn版本命令

svninfopath

比如:svninfotest.php

10、比较差别

svndiffpath(将更改的文件与基础版本比较)

比如:svndifftest.php

svndiff-rm:npath(对版本m和版本n比较差别)

比如:svndiff-r200:201test.php

缩写:svndi

11、将两个版本之间的差别合并到当前文件

svnmerge-rm:npath

比如:svnmerge-r200:205test.php(将版本200与205之间的差别合并到当前文件,而且通常还会形成冲突,须要处理一下)

12、SVN帮助

svnhelp

svnhelpci

——————————————————————————

以上是常用命令,下边写几个不时常用的

——————————————————————————

13、版本库下的文件和目录列表

svnlistpath

显示path目录下的所有属于版本库的文件和目录

缩写:svnls

14、创建列入版本控制下的新目录

svnmkdir:创建列入版本控制下的新目录。

用法:1、mkdirPATH…

2、mkdirURL…

创建版本控制的目录。

1、每一个以工作副本PATH指定的目录,就会创建在本地端,但是加入新增

调度,以待下一次的递交。

2、每个以URL指定的目录,就会透过立刻递交于库房中创建。

在这两个情况下,所有的中间目录都必须事先存在。

15、恢复本地更改

svnrevert:恢复原始未改变的工作副本文件(恢复大部分的本地更改)。revert:

用法:revertPATH…

注意:本子命令不会存取网路,但是会解除冲突的状况。并且它不会恢复

被删掉的目录

16、代码库URL变更

svnswitch(sw):更新工作副本至不同的URL。

用法:1、switchURL[PATH]

查看linux版本命令_linux查看svn版本命令_linux 查看 svn 版本命令

2、switch–relocateFROMTO[PATH…]

1、更新你的工作副本,映射到一个新的URL,其行为跟“svnupdate”很像,也会将

服务器上文件与本地文件合并。这是将工作副本对应到同一库房中某个分支或则标记的

方式。

2、改写工作副本的URL元数据,以反映单纯的URL上的改变。当库房的根URL变动

(例如方案名或是主机名称变动)linux 查看 svn 版本命令,而且工作副本仍然对映到同一库房的同一目录时使用

这个命令更新工作副本与库房的对应关系。

我的事例:svnswitch--relocate

17、解决冲突

svnresolved:移除工作副本的目录或文件的“冲突”状态。

用法:resolvedPATH…

注意:本子命令不会依句型来解决冲突或是移除冲突标记;它只是移除冲突的

相关文件,之后让PATH可以再度递交。

18、输出指定文件或URL的内容。

svncat目标[@版本]…如果指定了版本,将从指定的版本开始查找。

svncat-rPREVfilename>filename(PREV是上一版本,也可以写具体版本号,这样输出结果是可以递交的)

19、查找工作拷贝中的所有遗留的日志文件,删掉进程中的锁。

当Subversion改变你的工作拷贝(或是.svn中的任何信息),它会尽可能的当心,在更改任何事情之前,它把意图讲到日志文件中去,之后执行log文件中的命令,之后删除日志文件,这与分类帐的文件系统构架类似。假如Subversion的操作中断了(举个反例:进程被杀害了,机器跑掉了),日志文件会保存在硬碟上,通过重新执行日志文件,Subversion可以完成上一次开始的操作,你的工作拷贝可以回到一致的状态。

这就是svncleanup所作的:它查找工作拷贝中的所有遗留的日志文件linux安装教程,删掉进程中的锁。假如Subversion告诉你工作拷贝中的一部份早已“锁定”了linux操作系统简介,你就须要运行这个命令了。同样,svnstatus将会使用L显示锁定的项目:

$svnstatus

Lsomedir

Msomedir/foo.c

$svncleanup

$svnstatus

Msomedir/foo.c

20、拷贝用户的一个未被版本化的目录树到版本库。

svnimport命令是拷贝用户的一个未被版本化的目录树到版本库最快的方式,假如须要,它也要构建一些中介文件。

$svnadmincreate/usr/local/svn/newrepos$svnimportmytreefile:///usr/local/svn/newrepos/some/projectAddingmytree/foo.cAddingmytree/bar.cAddingmytree/subdirAddingmytree/subdir/quux.hCommittedrevision1.

在上一个反例里,将会拷贝目录mytree到版本库的some/project下:

$svnlistfile:///usr/local/svn/newrepos/some/projectbar.cfoo.csubdir/

注意,在导出以后,原先的目录树并没有转化成工作拷贝,为了开始工作,你还是须要运行svncheckout导入一个工作拷贝。

另附:为SVN加入Email通知

可以通过Subversion的Hook脚本的形式为SVN加入电邮列表功能

编译安装了Subversion后在源码的tools下有一个comm-email.pl的Perl脚本,在你的档案目录下有一个hooks目录,步入到hooks目录把post-commit.tmpl更名为post-commit并给它可执行的权限。

修改post-commit脚本把comm-email.pl脚本的决对路径加上,否则SVN找不到comm-email.pl

REPOS=”$1″

REV=”$2″

/usr/local/svn/resp/commit-email.pl”$REPOS””$REV”

#log-commit.py--repository”$REPOS”--revision”$REV”

最后一行是拿来记日志的我不用这个功能所以注释掉了

Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复