刚刚在本目录下执行一个提交,然后执行 "svn log",怎么看不到最新的提交?

[url]http://www.ossxp.com/HelpCenter/00030_Subversion/00050_FAQ/#HelpCenter.2BAC8-00030_Subversion.2BAC8-00050_FAQ.2BAC8-SVN_00010_MIXED_REVISION.HelpCenter.2BAC8-00030_Subversion.2BAC8-00050_FAQ.2BAC8-SVN_00010_MIXED_REVISION[/url]
“明明是刚在本目录下执行了一次提交,为什么 "svn log",看不到呢?”

如果您是使用分布式版本控制工具(如 git, hg, bzr),或者使用 CVS 的用户,会对此现象感到非常奇怪。

原因分析:

*

问题的实质是 SVN 的混杂版本号。
o

(!) 执行 "svn status -v" 命令可以看到当前目录处于混杂版本状态。
*

不同的版本控制工具使用不同的方法记录本地工作目录下文件的状态
o

分布式版本控制工具在工作区的最顶级目录包含唯一一个控制目录(如 .git, .hg, .bzr ── 实际为版本库本身)
o

Subversion在每一个工作目录下都包含一个名为 .svn 的控制目录,记录着每一个文件以及当前目录的版本号
o

相比之下,Subversion虽然采用了全局版本号,但本地记录目录和文件的版本散布在各个 .svn 目录中
*

当刚刚完成一次提交,仅仅该次提交涉及的文件在 .svn 控制目录中记录的版本号是最新的,其它的文件包括目录本身的版本号还是旧的。
*

“难道提交不应该自动更新所有文件和目录状态么?”
o

但这是不合理的,可能由于他人的修改破坏当前工作区,因此只有主动执行 "svn update" 命令,才进行更新。

解决办法:

*

在目录下执行一次 "svn update",之后再执行 "svn log",就在日志中能够看到刚刚的提交。或者使用命令 "svn log -rHEAD:1" 也可以看到最新提交实践出现在 log 中。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值