【问题标题】:Merging a folder in SVN records only the folder in the log, and not the files inside itSVN中合并文件夹只记录日志中的文件夹,不记录里面的文件
【发布时间】:2016-07-21 16:05:54
【问题描述】:

场景如下。

我们正在运行一个 CI 服务器,它会扫描存储库中的任何 .sql 更改,然后针对目标数据库执行它们。

目前它失败了,因为 SVN 没有记录文件夹中的文件更改(已从分支合并)。合并信息也已提交。

例子:

  • 开发人员将“/Trunk”分支到“/Branches/CR1”
  • 开发者添加了一个新文件夹“CR1/Scripts”
  • 开发者新增两个文件“Scripts/Script1.sql”和“Scripts/Script2.sql”
  • 开发者将文件夹和文件一起提交
  • 开发者从 CR1 合并到 Trunk,提交对话框显示状态“正常”

  • CI 服务器未检测到任何更改
  • 开发人员检查日志,发现没有提及 Script1.sql 或 Script2.sql

所有这些都通过 Windows 上的 TortoiseSVN 显示,CI 服务器使用 SharpSvn .NET 库。

任何帮助弄清楚如何显示 *.sql 文件将不胜感激。

【问题讨论】:

    标签: sql-server svn merge continuous-integration


    【解决方案1】:

    快一年了,在此期间,我们使用了一种解决方法来查找丢失的文件。使用 CLI 命令svn log -v,我们扫描了带有COPY-FROM-PATH 文本的任何目录,并将该目录中的内容列出在磁盘上而不是 SVN 上。

    虽然这确实为我们提供了该文件夹中文件的完整列表,但我们确实应该能够远程获取此信息,而无需检查存储库的副本。当一位同事最近也遇到这个问题时,他们在 freenode 上的 IRC 频道 #svn 上找到了答案。

    使用 CLI 命令 svn diff <url>[old rev] <url>[new rev] --summarize 您会发现版本之间的差异,这要归功于 --summarize 标志显示所有文件并最终回答了原始问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-16
      • 1970-01-01
      • 2015-10-31
      • 1970-01-01
      • 2015-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多