上节我们讲到SVN冲突解决方法中手动合并冲突,本节接着上节继续介绍SVN冲突解决方法,这里我发表一下个人理解,和大家讨论讨论,希望对你的学习有所帮助。下面是具体介绍。
凉城ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18980820575(备注:SSL证书合作)期待与您的合作!
[6]一旦你们确认了提交内容后,修改文件并且删除冲突标志。
Toppieceofbread
Mayonnaise
Lettuce
Tomato
Provolone
Salami
Mortadella
Prosciutto
CreoleMustard
Bottompieceofbread
现在运行svnresolved,你已经准备好提交了:
$svnresolvedsandwich.txt
$svncommit-m"Goaheadandusemysandwich,discardingSally'sedits."
记住,如果你修改SVN冲突时感到混乱,你可以参考subversion生成的三个文件—包括你未作更新的文件。你也可以使用第三方的合并工具检验这三个文件。
拷贝覆盖你的工作文件
如果你只是希望取消你的修改,你可以仅仅拷贝Subversion为你生成的文件替换你的工作拷贝:
$svnupdate
Csandwich.txt
Updatedtorevision2.
$lssandwich.*
sandwich.txtsandwich.txt.minesandwich.txt.r2sandwich.txt.r1
$cpsandwich.txt.r2sandwich.txt
$svnresolvedsandwich.txt
下注:使用svnrevert
如果你得到上SN冲突,经过检查你决定取消自己的修改并且重新编辑,你可以恢复你的修改:
$svnrevertsandwich.txt
Reverted'sandwich.txt'
$lssandwich.*
sandwich.txt
注意,当你恢复一个冲突的文件时,不需要再运行svnresolved。
现在我们准备好提交修改了,注意svnresolved不像我们本章学过的其他命令一样需要参数,在任何你认为解决了SVN冲突的时候,只需要小心运行svnresolved,—一旦删除了临时文件,Subversion会让你提交这文件,即使文件中还存在冲突标记。
提交你的修改
最后!你的修改结束了,你合并了服务器上所有的修改,你准备好提交修改到版本库。
svncommit命令发送所有的修改到版本库,当你提交修改时,你需要提供一些描述修改的日志信息,你的信息会附到这个修订版本上,如果信息很简短,你可以在命令行中使用--message(-m)选项:
$svncommit--message"Correctednumberofcheeseslices."
Sendingsandwich.txt
Transmittingfiledata.
Committedrevision3.
然而,如果你把写日志信息当作工作的一部分,你也许会希望通过告诉Subversion一个文件名得到日志信息,使用--file选项:
$svncommit--filelogmsg
Sendingsandwich.txt
Transmittingfiledata.
Committedrevision4.
如果你没有指定--message或者--file选项,Subversion会自动地启动你最喜欢的编辑器(见“config”一节的editor-cmd部分)来编辑日志信息。
提示
如果你使用编辑器撰写日志信息时希望取消提交,你可以直接关掉编辑器,不要保存,如果你已经做过保存,只要简单的删掉所有的文本并再次保存。
$svncommit
WaitingforEmacs...Done
Logmessageunchangedornotspecified
a)bort,c)ontinue,e)dit
a$
版本库不知道也不关心你的修改作为一个整体是否有意义,它只检查是否有其他人修改了同一个文件,如果别人已经这样做了,你的整个提交会失败,并且提示你一个或多个文件已经过时了:
$svncommit--message"Addanotherrule"
Sendingrules.txt
svn:Commitfailed(detailsfollow):
svn:Outofdate:'rules.txt'intransaction'g'
此刻,你需要运行svnupdate来处理所有的合并和SVN冲突,然后再尝试提交。
我们已经覆盖了Subversion基本的工作周期,还有许多其它特性可以管理你得版本库和工作拷贝,但是只使用前面介绍的命令你就可以很轻松的工作了。
[3]当然没有任何东西是在版本库里被删除了—只是在版本库的HEAD里消失了,你可以通过检出(或者更新你的工作拷贝)你做出删除操作的前一个修订版本来找回所有的东西。
[4]Subversion使用内置区别引擎,缺省情况下输出为统一区别格式。如果你期望不同的输出格式,你可以使用--diff-cmd指定外置的区别程序,并且通过--extensions传递其他参数,举个例子,察看本地文件foo.c的区别,同时忽略空格修改,你可以运行svndiff--diff-cmd/usr/bin/diff--extensions'-bc'foo.c。
[5]你也可以手工的删除这三个临时文件,但是当Subversion会给你做时你会自己去做吗?我们是这样想的。
[6]如果你向他们询问,他们非常有理由把你带到城外的铁轨上。
如何降低SVN冲突解决的复杂度:
-当工作完成之后(即编写完程序,单元测试通过)尽快的提交,频繁的提交/更新可以降低在冲突发生的概率,以及发生时解决冲突的复杂度。
-如果冲突频繁发生,就有必要找出原因了。
-在提交时,书写明确的message。方便以后的查找更新的原因,毕竟随着时光流逝,记忆也会变得模糊。本节讲解SVN冲突完毕。
当前名称:SVN冲突问题专家详解
网页链接:http://www.gawzjz.com/qtweb2/news36/11336.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联