linux下svn命令大全

linux下svn命令大全

1、将文件checkout到本地目录

svn checkout path(path是服器上的目
例如:svn checkout svn://192.168.1.1/pro/domain
写:svn co

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

svn addfile
例如:svn add test.php(添加test.php)
svn
add*.php(添加当前目下所有的php文件)

 

svn propset svn:keywords"Id" *.txt

 

别说明:下面文件较复杂的情况下,比如有.sh文件,有.so文件,有.bin文件等等,要添加此目录最好在ubuntu环境下添加。步骤如下

       a. 先修改限。 chomod 755-R  test/

       b.  添加   svnadd --no-ignore --auto-props  test/

 

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

svn commit -m “LogMessage“ [-N][--no-unlock] PATH(如果选择了保持,就使用–no-unlock开关)
例如:svn commit -m“add test file for my test“ test.php
写:svn ci

export SVN_EDITOR=vi

可以直接编辑提交的注释

4、加锁/解锁

svn lock -m “LockMessage“ [--force] PATH
例如:svn lock -m“lock test file“ test.php
svn unlock PATH

5、更新到某个版本

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

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

1svn status path(目下的文件和子目的状,正常状示)
【?:不在svn的控制中;M:内容被修改;C:生冲突;A定加入到版本;K:被定】
2
svn status -v path(示文件和子目)
第一列保持相同,第二列示工作版本号,第三和第四列示最后一次修改的版本号和修改人。
注:svn status、svn diff和 svn revert三条命令在没有网的情况下也可以行的,原因是svn在本地的.svn中保留了本地版本的原始拷
写:svn st

7、删除文件

svn delete path -m “delete test fle“
例如:svn deletesvn://192.168.1.1/pro/domain/test.php -m “delete test file”
或者直接svn delete test.php 然后再svnci -m ‘delete test file‘,推荐使用这种
写:svn (del, remove, rm)

8、查看日志

svn log path
例如:svn logtest.php 个文件的所有修改记录,及其版本号的

 

修改日志

例:svn propedit svn:log --revprop main.c -r 5

(hook 目录下得有  pre-revprop-change可执行文件)

9、查看文件详细信息

svn info path
例如:svn infotest.php

10、比较差异

svn diff path(将修改的文件与基版本比)
例如:svn difftest.php
svn diff -r m:n path(版本m和版本n比差异)
例如:svn diff -r 200:201 test.php
写:svn di

显示改动部分上下20svn diff--diff-cmd diff -x "-U20"

svn diff -r2:4 [文件/]

svn diff > diffname.patch(生成patch文件)
使用patch文件: patch -p0 -i diffname.patch

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

除后一个版本前一个版本的修改

svn merge -r m:n path
例如:svn merge -r200:205 test.php(将版本200与205之的差异合并到当前文件,但是一般都会生冲突,需要理一下)

svn merge -r27:26 [文件/] && svn ci -m"undo the work of version 27"
版本27所做的修改

 

首先需要:

svn up

让本地工作拷贝更新到最新状态。

然后:

svn log your_file_path

查看文件日志,这时候提交时填写的说明信息就派上用场了。

查看两个修订版之间的不同:

svn diff -r 旧修订版序号:新修订版序号your_file_path

或者通过tortoiseSVNeclipse插件。

决定用哪个旧的修订版号后,用旧的修订版号文件覆盖新的修订版号文件。

svn merge -r 新修订版序号:旧修订版序号your_file_path

还需要:

svn commit -m “恢复到某修订版(某修订版作废)”

这个还原是所谓的,不是用旧的版本号替代,而是将旧文件覆盖新文件。

12、SVN 帮助

svn help
svn help ci

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

以上是常用命令,下面写几个不经常用的

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

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

svn list path
示path下的所有属于版本的文件和目
写:svn ls

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

svn mkdir: 入版本控制下的新目
用法: 1、mkdir PATH…
2、mkdir URL…
建版本控制的目
1
一个以工作副本 PATH 指定的目,都会建在本地端,并且加入新增
度,以待下一次的提交。
2个以URL指定的目,都会透立即提交于仓库建。
两个情况下,所有的中都必事先存在。

15、恢复本地修改

svn revert: 原始未改的工作副本文件 (大部份的本地修改)。revert:
用法: revert PATH…
注意: 本子命令不会存取网,并且会解除冲突的状况。但是它不会恢
除的目

svn revert -R ./

16、代码库URL变更

svn switch (sw):更新工作副本至不同的URL
用法: 1、switch URL [PATH]
2、switch –relocate FROM TO [PATH...]

1、更新你的工作副本,映射到一个新的URL,其行“svnupdate”很像,也会将
器上文件与本地文件合并。是将工作副本对应到同一仓库中某个分支或者标记
方法。
2
、改写工作副本的URL元数据,以反映单纯URL上的改。当仓库的根URL变动
(
比如方案名或是主机名称变动),但是工作副本仍旧映到同一仓库的同一目录时使用
个命令更新工作副本与仓库对应关系。

17、解决冲突

svn resolved:移除工作副本的目或文件的“冲突”状
用法: resolved PATH…
注意: 本子命令不会依法来解决冲突或是移除冲突标记;它只是移除冲突的
文件,然后 PATH 可以再次提交。

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

svn cat[@版本]…如果指定了版本,将从指定的版本找。
svn cat -r PREV filename > filename (PREV
是上一版本,也可以写具体版本号,这样输果是可以提交的)

 

svn的文件路径发生改变,执行的命令

svn switch --relocate svn://[email protected]/KENKYU_FEB_20121Q/MK-01svn://[email protected]/hayabusa/KENKYU_FEB_20121Q/MK-01

 

添加文件属性svn propset svn:executable on test.c

删除文件属性svn propdel svn:executable test.c

 

 

 

19、SVN创建分支

svn 建分支:

svn copy trunk_path branch_path  -m '描述'

 

看现在的版本号变成23了,这才几分钟。如果时间长了的话。我真的会不记得这个创建分支时的版本号的。咋办呢?

svn log --verbose--stop-on-copy branch_path

或者  svn log -v--stop-on-copy svn+ssh://[email protected]/home/fe/svnroot/fe_sp/branches/V02_BASE

 

 

svn 合并分支:

查看trunkbranch的代码的差分(diff

$ svn diff svn+ssh://XX/trunk svn+ssh://XX/branches/first

 

 

merge的流程如下

1.     trunkのチェックアウト

2.    确认merge时,影响的文件

svn merge --dry-run -r 8:HEAD $REPO/branches/first

3.     merge代码

$ svn merge -r 8:HEAD $REPO/branches/first
当有冲突时,选择【p(延期对应冲突文件)

4.     修正箇所の確認(必要に応じてコンフリクトの解決)

冲突对应

删除冲突产生的多余文件

$ svn resolved 冲突的文件名

 

在svn命令行merge之后文件经常会出现local add, incomingadd upon merge问题,导致无法提交,

      C error/l2hlp_error_01_0055.txt

      >  local add, incoming add upon merge
可以通过以下命令解决冲突 

svn resolve --accept working -R ./

 

5.     コミット

 

 

 

 

 

你可能感兴趣的:(linux下svn命令大全)