svn 常用

[code="java"]

(0)解决冲突 (分析原因)
# svn ci -m " " a.php
正在发送 a.php
传输文件数据.svn: 提交失败(细节见下):====>有冲突 服务器版本为10127 ,而本地版本为10126说明刚才有人已经提交过一个版本
svn: Out of date: '/svntest/a.php' in transaction '12127-1'

# svn log a.php
------------------------------------------------------------------------
r12126 | wangxj | 2011-02-12 16:12:17 +0800 (六, 12 2月 2011) | 1 line


------------------------------------------------------------------------
r12125 | wangxj | 2011-02-12 16:02:35 +0800 (六, 12 2月 2011) | 1 line


------------------------------------------------------------------------
r12124 | wangxj | 2011-02-12 15:59:27 +0800 (六, 12 2月 2011) | 1 line


------------------------------------------------------------------------
#比较本地版本和仓库中的版本有什么区别
# svn diff -r HEAD a.php
Index: a.php
===================================================================
--- a.php (修订版 12127)
+++ a.php (工作拷贝)
@@ -1,2 +1,2 @@

-ida..........................dddadad(=====>svn服务器仓库中的版本)
+idaddadad=============ddadad(===>本地最新的版本)
#

例子==>(2)
# svn ci -m "" a.php
正在发送 a.php
传输文件数据.svn: 提交失败(细节见下):
svn: Out of date: '/svntest/a.php' in transaction '12134-1'
# svn up
Conflict discovered in 'a.php'.
Select: (p) postpone, (df) diff-full, (e) edit,
(mc) mine-conflict, (tc) theirs-conflict,
(s) show all options: p
C a.php
更新至修订版 12134。
Summary of conflicts:
Text conflicts: 1
#
#
#
#
#
# svn up
于修订版 12134。
#
#
#
# svn st -v
12134 12133 wangxj .
? a.php.r12134
? a.php.r12126
? a.php.mine
12134 10884 wangxj trunk
12134 10884 wangxj branches
12134 12124 wangxj test.php
C 12134 12133 wangxj a.php
12134 12124 wangxj b.php
12134 10884 wangxj tags
#
# svn merge -r 12133:12134 a.php

# svn resolved a.php
“a.php”的已解决的冲突状态
(注意: 本子命令不会依语法来解决冲突或是移除冲突标记;它只是移除冲突的

相关文件,然后让 PATH 可以再次提交。)
# svn ci -m " " a.php
正在发送 a.php
传输文件数据.
提交后的修订版为 12138。


(1) 导入项目
$ cd ~/project
$ mkdir -p svntest/{trunk,branches,tags}
$ svn import svntest https://localhost/test/svntest --message "Start project"

(2) 导出项目
svn co svn://192.168.1.125/newipcentrex/exchange --username wangxj --password wangxj123 .
# svn co svn://192.168.1.125/newipcentrex/svntest svntest
A svntest/trunk
A svntest/branches
A svntest/test.php
A svntest/a.php
A svntest/b.php
A svntest/tags
取出修订版 12128。
#
#
#
#
# cd svntest/
# svn st -v
12128 12127 wangxj .
12128 10884 wangxj trunk
12128 10884 wangxj branches
12128 12124 wangxj test.php
12128 12127 wangxj a.php
12128 12124 wangxj b.php
12128 10884 wangxj tags
#
备注:第一列表示BASE, 第二列表示COMMITTED
可以看出checkout一个working-copy后,svn会给这个working-copy分一个新的、统一的BASE版本号(如 12128)。
接下来可以修改pi.cpp代码,然后checkin,你就会发现这个文件的BASE和COMMITTED会同时增加,并且相等。如下
# svn st -v
12128 12127 wangxj .
12128 10884 wangxj trunk
12128 10884 wangxj branches
12128 12124 wangxj test.php
12133 12133 wangxj a.php
12128 12124 wangxj b.php
12128 10884 wangxj tags

#
接下来在此目录下执行update动作,你就会发现所有文件的BASE都进行了升级,但是COMMITTED没有改变,如下
ost150 svntest]# svn up
于修订版 12133。
# svn st -v
12133 12133 wangxj .
12133 10884 wangxj trunk
12133 10884 wangxj branches
12133 12124 wangxj test.php
12133 12133 wangxj a.php
12133 12124 wangxj b.php
12133 10884 wangxj tags
#


(3)查看日志 ============>比较差异
#比较上一次提交的版本和当前提交的版本有什么区别
svn diff --revision PREV:COMMITTED users_controller.php
svn di -r PREV:COMMITTED users_controller.php
#比较本地文件和版本库中的文件的最新改动
# svn diff --revision HEAD controllers/clientrates_controller.php

例子:
#显示这个文件的所有修改记录,及其版本号的变化
# svn log a.php
------------------------------------------------------------------------
r12127 | wangxj | 2011-02-12 16:26:50 +0800 (六, 12 2月 2011) | 1 line


------------------------------------------------------------------------
r12126 | wangxj | 2011-02-12 16:12:17 +0800 (六, 12 2月 2011) | 1 line


------------------------------------------------------------------------
r12125 | wangxj | 2011-02-12 16:02:35 +0800 (六, 12 2月 2011) | 1 line


------------------------------------------------------------------------
r12124 | wangxj | 2011-02-12 15:59:27 +0800 (六, 12 2月 2011) | 1 line


------------------------------------------------------------------------比较12126和12127两个版本之间的差异
# svn diff a.php
# svn diff -r 12126:12127 a.php
Index: a.php
===================================================================
--- a.php (修订版 12126)
+++ a.php (修订版 12127)
@@ -1,2 +1,2 @@

-idadddadad(===>代表12126版本)
+ida..........................dddadad(====>12127版本)
#


(4) 显示log
#显示最后1次修改的LOG
$ svn log --revision HEAD
#显示所有修改的LOG
# svn log --revision BASE:HEAD


(5)更新版本
#更新到前面一个版本
# svn update --revision PREV clientrates_controller.php
#更新到1.10的版本
# svn update --revision {2011-01-10}

将版本库中的文件test.php还原到版本200
svn update -r 200 test.php

(6)(显示文件和子目录状态)
# svn st -v
12125 12125 wangxj .
12125 10884 wangxj trunk
12125 10884 wangxj branches
12125 12124 wangxj test.php
12126 12126 wangxj a.php
12125 12124 wangxj b.php
12125 10884 wangxj tags
第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改人。
【?:不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被锁定】

(7)添加文件
#svn add *.php(添加当前目录下所有的php文件)
#注:svn status、svn diff和 svn revert这三条命令在没有网络的情况下也可以执行的,原因是svn在本地的.svn中保留了本地版本的原始拷贝。

(8)删除文件
# svn del jurisdiction_prefix.php
# svn ci -m " "

svn delete svn://192.168.1.1/pro/domain/test.php -m “delete test file”

(2)
svn delete svn://192.168.1.1/pro/domain/test.php -m “delete test file”

(9)查看文件详细信息

# svn info a.php
路径:a.php
文件名:a.php
地址(URL):svn://192.168.1.125/newipcentrex/svntest/a.php
Repository Root: svn://192.168.1.125/newipcentrex
档案库 UUID:c004b24f-da91-4a55-83d2-5bfd46da7693
修订版:12125
节点种类:文件
调度:正常
最后修改的作者:wangxj
最后修改的修订版:12125
最后修改的时间: 2011-02-12 16:02:35 +0800 (六, 12 2月 2011)
文本最后更新: 2011-02-12 16:19:31 +0800 (六, 12 2月 2011)
校验和:32247a4a24368c64ea5d56cabcb5c8d7

(10) 加锁/解锁

# svn lock -m " " a.php
“a.php”被用户“wangxj”锁定。
#
#
# svn unlock a.php
“a.php”被解除锁定。
#


6.合并冲突
svn merge -r 200:205 test.php(将版本200与205之间的差异合并到当前文件,但是一般都会产生冲突,需要处理一下)
[/code]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值