`

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

    博客分类:
  • svn
阅读更多
   

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
“明明是刚在本目录下执行了一次提交,为什么 "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 中。
分享到:
评论

相关推荐

    TortoiseSVN

    Working Copy中每一个子目录下都会有一个“.svn”目录, 并不是只有最上层目录才有“.svn”目录。 所以,F:\project1\ccc下也有一个“.svn”目录, 该目录存储的是F:\project1\ccc\d.txt的副本 (d.txt的副本...

    SVN用户使用手册

    6. 分支管理:分支是源代码的一个副本,允许开发者在不影响主版本线(trunk)的情况下独立工作。在SVN中,可以创建分支和标签(tag)来进行版本控制管理。 7. 访问控制和认证:SVN支持多种用户认证方式,以保证只有...

    SVN 命令使用手册

    - SVN不会简单地将文件保存在指定位置,而是通过数据库管理系统(BDB)进行管理,因此在仓库目录下看不到实际的源代码文件。 - `svn_lib_path`的几种形式包括: - `file:///`:直接版本访问(本地磁盘)。 - `...

    svn安装包和安装文档

    4. **分支(Branch)与合并(Merge)**:SVN支持创建分支,让开发者在不影响主分支的情况下进行实验性开发。完成后,可以通过合并操作将分支的更改合并回主分支。 5. **标签(Tag)**:用于标记特定版本,通常用于...

    svn删除文件出错的经验总结.rar

    如果仅在本地删除而未提交,其他团队成员将看不到这个更改。 5. **文件被忽略**:如果你在`.svnignore`文件中列出了要删除的文件,SVN将不会追踪该文件,因此也无法通过SVN进行删除。你需要先移除文件的忽略设置,...

    TortoiseSVN(解决服务端较低时,高版本客户端无法查看日志问题)

    TortoiseSVN是一款在Windows操作系统上广泛使用的Subversion(SVN)客户端工具,它以图形用户界面的形式提供版本控制系统的服务。在某些情况下,当用户的TortoiseSVN客户端版本较高,而服务器上的Subversion服务端...

    TortoiseSVN客户端程序

    来到任意空目录下,比如在f分区建立一个空文件夹 f:\work 。“右键 -> SVN Checkout”。在“URL of repository”中输入“svn://localhost/svn/repos1/guestbook”,这样我们就得到了一份 guestbook 中内容的工作拷贝...

    TortoiseSVN常见问题(FAQ)

    在SVN选中一个目录showlog时,出现了某些版本只显示版本号和(nodate),没有其他信息。 这种情况通常发生在他人修改了你没有权限访问的某个目录下的文件。在这种情况下,TortoiseSVN无法提供完整的日志信息。如果...

    Eclipse SVN插件

    将这些文件解压到Eclipse的`plugins`目录后,Eclipse会自动识别并加载这些插件,从而在IDE中提供SVN支持。用户可以通过Eclipse的"Team"菜单或者右键项目选择"Team"选项来访问这些功能,包括但不限于: - **检出...

    第五章 Git及GitHub和Gitee的应用.pdf

    2. 新建一个 test.txt 文件(暂不执行添加操作) 3. 选中文件右键,选择 TortoiseGit,之后选择添加 4. 空白处右键,Git 提交,提交到本地历史仓库 5. 空白处右键,TortoiseGit,显示日志,可以产看日志信息

    SVN出现提示org.apache.subversion.javahl.ClientException: Attempted to lock an already-locked dir解决方案

    在使用Subversion(SVN)进行版本控制时,有时可能会遇到一个常见的错误提示:“org.apache.subversion.javahl.ClientException: Attempted to lock an already-locked dir”。这个错误通常表示某个目录已经被锁定,...

    经典Git学习资料ProGit

    - **GitHub Flow**:在GitHub上使用的一种流行分支策略,每个新功能或修复都在独立的分支上完成,然后通过Pull Request合并回master/main分支。 - **Git Flow**:一种较为复杂的分支管理模型,包含develop、release...

Global site tag (gtag.js) - Google Analytics