首页 文章

SVN外部子文件夹更改未显示在视图日志中(tortoise svn)

提问于
浏览
11

SVN外部允许您使SVN文件夹显示为在另一个位置 . 一个很好的用途是在SVN中的所有项目中共享一个公共文件夹 .

我在SVN中有一个/ trunk / common文件夹,我通过几个不同的项目共享 .

例:

  • Project1:/ trunk / project1 / depends

  • Project2:/ trunk / project2 / depends

  • Project3:/ trunk / project3 / depends

  • Project4:/ trunk / project4 / depends

每个依赖文件夹都是空的,但有一个svn:external定义为指向我的/ trunk / common文件夹 .

问题是当我在任何项目中查看日志时:/ trunk / projectX /它不显示来自svn:externals的更改 . 我正在使用陆龟SVN作为我的SVN客户端 .

有谁知道如何改变这种行为?我希望/ trunk / projectX的show log包含对任何已定义的svn:externals的任何更改 .

4 回答

  • 0

    除了在外部目录的目标上显式调用svn log之外,当前版本的Subversion不可能实现这一点

    您可以尝试在the Apache Subversion website发布功能请求

  • 0

    显示本地版本化文件夹的日志时,它将显示与此特定文件夹相关的更改 . 外部只是 a link 到存储库中的不同文件夹 . 您可以从依赖于此外部项目的文件夹中跟踪外部引用的唯一内容是 reference definition itself . 这是因为引用是依赖文件夹的subversion属性 .

    想象一下,你有以下的repo层次结构:

    repo
       myfirstproject
          trunk
       mysecondproject
          trunk
       mycommonlib
          trunk
    

    并且 mysecondproject\trunk 文件夹具有以下svn:external属性:

    svn://mysrv/repo/mysharedlib@2451 sharedlib
    

    在新文件夹secondproject中检出mysecondproject \ trunk将在您的文件系统上创建类似这样的内容:

    secondproject Folder (refers mysecondproject/trunk)
       sharedlib Folder (refers mycommonlib/trunk @ revision #2451)
    

    从secondproject文件夹调用Tortoise的"Show log"命令只会显示第二个项目文件的更改,并最终更改在文件夹的svn:external属性上发生的更改 .

    要获取外部项目的更改日志,您需要从内部文件夹sharedlib中调用"Show log",这是有意义的 .

  • 3

    根据我的个人经验,只有在您更改外部文件的同一提交中,才会报告外部链接的日志,您还只修改“internal”文件夹中的一个文件 . 通过这种方式,SVN可以使用正确的日志检索外部文件夹中的日志 .

    我认为使用钩子应该可以实现一种机制,用于在每个提交的工作目录中自动提交一个专色文件,如果提交从外部链接开始 .

    再见

  • 0

    我认为,在Subversion 1.7(在WC的根目录中引入了单个.svn文件夹)之后,它更加干净:对于目录外部工作副本的外部目录,工作副本是a)独立的b)独立存储库的嵌套工作副本

    >dir /B /S /AD
    z:\subversion-troubleshoot-b\.svn
    ...
    z:\subversion-troubleshoot-b\trunk
    z:\subversion-troubleshoot-b\tags
    z:\subversion-troubleshoot-b\trunk\lib
    z:\subversion-troubleshoot-b\trunk\lib\.svn
    ...
    z:\subversion-troubleshoot-b\tags\1.0.0
    z:\subversion-troubleshoot-b\tags\1.0.1
    z:\subversion-troubleshoot-b\tags\1.0.1\lib
    z:\subversion-troubleshoot-b\tags\1.0.1\lib\.svn
    ...
    

    和父WC [3011455_关于嵌套WC(WC的目录,从/存储库创建,注意.svn dir仅存在两次主线)

    >svn ls -R
    readme.textile
    tags/
    tags/1.0.0/
    tags/1.0.0/core_mod.txt
    tags/1.0.1/
    tags/1.0.1/core_mod.txt
    trunk/
    trunk/core_mod.txt
    

    当trunk(和标签)分别具有子目录lib作为外部

    Repo-Browser with externals

    支持处理外部添加到更新和提交,因为这种支持产生独立和无关的连续命令 - 并且因为没有这种支持外部没有任何意义,聚合的svn日志必须以某种方式组合(由未知原则,BTW)

相关问题