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

时间:2020-03-05 18:53:26  来源:igfitidea点击:

SVN外部组件使我们可以使SVN文件夹看起来好像在另一个位置一样。这样做的一个很好的用途是在SVN中的所有项目之间共享一个公用文件夹。

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

例子:

  • 项目1:/ trunk / project1 / depends
  • 项目2:/ trunk / project2 / depends
  • Project3:/ trunk / project3 / depends
  • Project4:/ trunk / project4 / depends

这些依赖文件夹中的每一个都是空的,但是定义了svn:external指向我的/ trunk / common文件夹。

问题是当我在以下任何项目中查看日志时:/ trunk / projectX /,它没有显示svn:externals的更改。我正在使用乌龟SVN作为我的SVN客户端。

有谁知道如何改变这种行为?我希望/ trunk / projectX的显示日志也包括对任何定义的svn:externals的任何更改。

解决方案

回答

当前版本的Subversion无法做到这一点,除了在externals目录的目标上显式调用svn log之外

我们可以尝试在Apache Subversion网站上发布功能请求

回答

当我们显示本地版本文件夹的日志时,它将显示相对于此特定文件夹的更改。外部对象只是指向存储库中其他文件夹的链接。我们可以从依赖于此外部项目的文件夹中跟踪关于外部引用的唯一信息是引用定义本身。这是因为引用是从属文件夹的subversion属性。

假设我们具有以下回购层次结构:

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"命令将仅显示secondproject文件的更改,并最终显示该文件夹的svn:external属性上发生的更改。

要获取外部项目的更改日志,我们需要从内部文件夹sharedlib调用"显示日志",这很有意义。