svn log 不显示当前提交
关于svn log,我之前的工作方式一般都是这样:
- 执行 commit 操作时,不限平台。一般提交代码,会在 Linux 工作环境下用 svn commit 命令,提交文档则是在 Windows 下用 TortoiseSVN 客户端提交。这主要是本着方便的原则,因为代码一般是在 Linux 下编辑和测试的,文档是在 Windows 下编辑的。
- 执行 log 操作时,在 Windows 下。使用 TortoiseSVN 查看版本日志以及各版本提交内容变化实在太方便了。
最近由于办公环境网络的变化,在 Windows 下无法用 TortoiseSVN 连接到仓库了,只能在 Linux 下进行。这样就无法在 Windows 下看版本日志了,好在也就只是一个 svn log 命令,简单明了。但使用中还是有一个要注意的地方。
在使用 TortoiseSVN 客户端查看日志时,即使当前工作目录版本是某个历史版本,也能看到最新的版本记录情况。
而直接使用 svn log 命令时,默认只显示当前工作目录的 log。
假设当前工作目录已经是最新了,在此基础上,对一个文件 A 提交了 commit,此时在当前目录下执行 svn log -l 1 无法看到这次提交的 log,如果想要看到,必须先执行 svn update,即使当前的工作目录下内容已经是最新的了;而执行svn log A -l 1则可以。
原因在于 svn 对于文件及其父目录是分开管理版本号的。更新了一个文件,该文件的版本号是更新了,但该文件所在的目录的版本号并没有更新。