(0)解决冲突 (分析原因)[root@host150 svntest]# svn ci -m " " a.php 正在发送 a.php传输文件数据.svn: 提交失败(细节见下):====>有冲突 服务器版本为10127 ,而本地版本为10126说明刚才有人已经提交过一个版本svn: Out of date: '/svntest/a.php' in transaction '12127-1'[root@host150 svntest]# 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------------------------------------------------------------------------#比较本地版本和仓库中的版本有什么区别[root@host150 svntest]# svn diff -r HEAD a.php Index: a.php===================================================================--- a.php (修订版 12127)+++ a.php (工作拷贝)@@ -1,2 +1,2 @@ -ida..........................dddadad(=====>svn服务器仓库中的版本)+idaddadad=============ddadad(===>本地最新的版本)[root@host150 svntest]# 例子==>(2)[root@host150 svntest]# svn ci -m "" a.php 正在发送 a.php传输文件数据.svn: 提交失败(细节见下):svn: Out of date: '/svntest/a.php' in transaction '12134-1'[root@host150 svntest]# 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[root@host150 svntest]# [root@host150 svntest]# [root@host150 svntest]# [root@host150 svntest]# [root@host150 svntest]# [root@host150 svntest]# svn up于修订版 12134。[root@host150 svntest]# [root@host150 svntest]# [root@host150 svntest]# [root@host150 svntest]# 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.phpC 12134 12133 wangxj a.php 12134 12124 wangxj b.php 12134 10884 wangxj tags[root@host150 svntest]# [root@host150 svntest]# svn merge -r 12133:12134 a.php[root@host150 svntest]# svn resolved a.php“a.php”的已解决的冲突状态(注意: 本子命令不会依语法来解决冲突或是移除冲突标记;它只是移除冲突的相关文件,然后让 PATH 可以再次提交。)[root@host150 svntest]# 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 .[root@host150 tmp]# svn co svn://192.168.1.125/newipcentrex/svntest svntestA svntest/trunkA svntest/branchesA svntest/test.phpA svntest/a.phpA svntest/b.phpA svntest/tags取出修订版 12128。[root@host150 tmp]# [root@host150 tmp]# [root@host150 tmp]# [root@host150 tmp]# [root@host150 tmp]# cd svntest/[root@host150 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[root@host150 svntest]# 备注:第一列表示BASE, 第二列表示COMMITTED可以看出checkout一个working-copy后,svn会给这个working-copy分一个新的、统一的BASE版本号(如 12128)。接下来可以修改pi.cpp代码,然后checkin,你就会发现这个文件的BASE和COMMITTED会同时增加,并且相等。如下[root@host150 svntest]# 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[root@host150 svntest]# 接下来在此目录下执行update动作,你就会发现所有文件的BASE都进行了升级,但是COMMITTED没有改变,如下ost150 svntest]# svn up于修订版 12133。[root@host150 svntest]# 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[root@host150 svntest]# (3)查看日志 ============>比较差异#比较上一次提交的版本和当前提交的版本有什么区别svn diff --revision PREV:COMMITTED users_controller.php svn di -r PREV:COMMITTED users_controller.php #比较本地文件和版本库中的文件的最新改动[root@host150 app]# svn diff --revision HEAD controllers/clientrates_controller.php 例子:#显示这个文件的所有修改记录,及其版本号的变化[root@host150 svntest]# 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两个版本之间的差异[root@host150 svntest]# svn diff a.php [root@host150 svntest]# 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版本)[root@host150 svntest]# (4) 显示log#显示最后1次修改的LOG$ svn log --revision HEAD#显示所有修改的LOG[root@host150 app]# svn log --revision BASE:HEAD (5)更新版本#更新到前面一个版本[root@host150 controllers]# svn update --revision PREV clientrates_controller.php#更新到1.10的版本[root@host150 cdrreports]# svn update --revision {2011-01-10}将版本库中的文件test.php还原到版本200svn update -r 200 test.php(6)(显示文件和子目录状态)[root@host150 svntest]# 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)删除文件[root@host150 models]# svn del jurisdiction_prefix.php[root@host150 models]# 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)查看文件详细信息[root@host150 svntest]# svn info 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 (六, 12 2月 2011)文本最后更新: 2011-02-12 16:19:31 +0800 (六, 12 2月 2011)校验和:32247a4a24368c64ea5d56cabcb5c8d7(10) 加锁/解锁[root@host150 svntest]# svn lock -m " " a.php “a.php”被用户“wangxj”锁定。[root@host150 svntest]# [root@host150 svntest]# [root@host150 svntest]# svn unlock a.php “a.php”被解除锁定。[root@host150 svntest]# 6.合并冲突svn merge -r 200:205 test.php(将版本200与205之间的差异合并到当前文件,但是一般都会产生冲突,需要处理一下)
详细解决方案
svn 惯用
热度:3165 发布时间:2013-02-26 00:00:00.0
相关解决方案