svn 常用
(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 (六, 122月 2011) | 1 line------------------------------------------------------------------------r12125 | wangxj | 2011-02-12 16:02:35 +0800 (六, 122月 2011) | 1 line ------------------------------------------------------------------------r12124 | wangxj | 2011-02-12 15:59:27 +0800 (六, 122月 2011) | 1 line------------------------------------------------------------------------#比较本地版本和仓库中的版本有什么区别# svn diff-r HEADa.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 upConflict discovered in 'a.php'.Select: (p) postpone, (df) diff-full, (e) edit, (mc) mine-conflict, (tc) theirs-conflict, (s) show all options: pC a.php更新至修订版 12134。Summary of conflicts:Text conflicts: 1# # # # # # svn up于修订版 12134。# # # # svnst-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.phpC 12134 12133 wangxj a.php 12134 12124 wangxj b.php 12134 10884 wangxj tags# # svn merge-r 12133:12134a.php# svnresolved a.php“a.php”的已解决的冲突状态(注意: 本子命令不会依语法来解决冲突或是移除冲突标记;它只是移除冲突的相关文件,然后让 PATH 可以再次提交。)# svnci-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 cosvn://192.168.1.125/newipcentrex/exchange --username wangxj --password wangxj123 .# svnco svn://192.168.1.125/newipcentrex/svntestsvntestA svntest/trunkA svntest/branchesA svntest/test.phpA svntest/a.phpA svntest/b.phpA 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)查看日志 ============>比较差异#比较上一次提交的版本和当前提交的版本有什么区别svndiff--revision PREV:COMMITTEDusers_controller.php svn di -rPREV:COMMITTEDusers_controller.php#比较本地文件和版本库中的文件的最新改动# svn diff--revisionHEADcontrollers/clientrates_controller.php 例子:#显示这个文件的所有修改记录,及其版本号的变化# svnlog a.php ------------------------------------------------------------------------r12127 | wangxj | 2011-02-12 16:26:50 +0800 (六, 122月 2011) | 1 line ------------------------------------------------------------------------r12126 | wangxj | 2011-02-12 16:12:17 +0800 (六, 122月 2011) | 1 line------------------------------------------------------------------------r12125 | wangxj | 2011-02-12 16:02:35 +0800 (六, 122月 2011) | 1 line ------------------------------------------------------------------------r12124 | wangxj | 2011-02-12 15:59:27 +0800 (六, 122月 2011) | 1 line------------------------------------------------------------------------比较12126和12127两个版本之间的差异# svndiff a.php # svndiff-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# svnlog --revisionBASE:HEAD (5)更新版本#更新到前面一个版本# svn update--revision PREV clientrates_controller.php#更新到1.10的版本# svnupdate --revision {2011-01-10}将版本库中的文件test.php还原到版本200svn update -r 200 test.php(6)(显示文件和子目录状态)# svnst -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)查看文件详细信息# svninfo a.php 路径:a.php文件名:a.php地址(URL):svn://192.168.1.125/newipcentrex/svntest/a.phpRepository Root: svn://192.168.1.125/newipcentrex档案库 UUID:c004b24f-da91-4a55-83d2-5bfd46da7693修订版:12125节点种类:文件调度:正常最后修改的作者:wangxj最后修改的修订版:12125最后修改的时间: 2011-02-12 16:02:35 +0800 (六, 122月 2011)文本最后更新: 2011-02-12 16:19:31 +0800 (六, 122月 2011)校验和:32247a4a24368c64ea5d56cabcb5c8d7(10) 加锁/解锁# svn lock -m" "a.php “a.php”被用户“wangxj”锁定。# # # svn unlocka.php “a.php”被解除锁定。# 6.合并冲突svn merge -r 200:205 test.php(将版本200与205之间的差异合并到当前文件,但是一般都会产生冲突,需要处理一下)
页:
[1]