SVN 外部允许您使 SVN 文件夹看起来就像位于其他位置一样。这样做的一个很好的用途是在 SVN 中的所有项目之间共享一个公共文件夹。

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

例子:

  • 项目1:/主干/项目1/取决于
  • 项目2:/主干/项目2/取决于
  • 项目3:/主干/项目3/取决于
  • 项目4:/主干/项目4/取决于

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

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

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

有帮助吗?

解决方案

这对于当前版本的 Subversion 来说是不可能的,除了在外部目录的目标上显式调用 svn log 之外

您可以尝试在以下位置发出功能请求: Apache Subversion 网站

其他提示

当您显示本地版本文件夹的日志时,它将显示与此特定文件夹相关的更改。外在只是 一条链接 到存储库上的另一个文件夹。您可以从依赖于该外部项目的文件夹中跟踪有关外部引用的唯一信息是 参考定义本身. 。这是因为引用是依赖文件夹的颠覆属性。

假设您有以下存储库层次结构:

repo
   myfirstproject
      trunk
   mysecondproject
      trunk
   mycommonlib
      trunk

然后 mysecondproject\trunk 文件夹有以下内容 svn:外部 财产 :

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

结帐 我的第二个项目\主干 在新文件夹内 第二个项目 将在您的文件系统上创建类似的内容:

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

调用 Tortoise 的“显示日志”命令 第二个项目 文件夹只会显示 第二个项目 文件发生变化,最终发生的变化 svn:外部 文件夹的属性。

要获取外部项目的更改日志,您需要从内部文件夹中调用“显示日志” 共享库, ,这是有道理的。

根据我个人的经验,只有在更改外部文件的同一提交中,您还只修改“内部”文件夹中的一个文件时,才会报告外部链接的日志。这样,SVN 就可以检索正确的日志,也可以从外部文件夹中检索日志。

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

再见

我认为,在 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(WC 的目录,从存储库的 / 创建,请注意 .svn 目录仅在主线中存在两次)

>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 日志必须以某种方式 合并的 (顺便说一句,由于未知的原理)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top