1

美好的一天,我正在控制一个包含超过 10k .sql 文件的 SVN 存储库。每当有提交时,都需要在文件中更新修订号。为了解决这个问题,我在每个现有文件上运行了这一行

svn propset svn:keywords "Id" filename.sql

这有效,并且能够看到 $Id$ 在具有 $Id$ 的文件上正确扩展

接下来要确保在新文件上设置了这个属性,我修改了我的本地 svn 配置文件以包含

enable-auto-props = yes
*.sql = svn:keywords="Id";

这也适用于我所有的初始测试,因为似乎新文件也得到了适当的扩展。但经过进一步测试,似乎一些新文件没有得到 $Id$ 扩展。这引起了问题,所以我试图缩小为什么有些没有得到扩展。为了测试,我创建了一个包含 $Id$ 的虚拟文件,并将该文件添加/提交(使用 TortoiseSVN)到几个不同的目录中,发现结果好坏参半。(No 表示 $Id$ 没有扩展,Yes 表示它扩展了)

NO: Breakfix\DB\schema\MasterMind\nonMAS\grants\testSVN.sql
YES: Breakfix\EnvSetup\testSVN.sql
YES: Breakfix\DB\schema\MasterMind\testSVN.sql
YES: Breakfix\DB\schema\MasterMind\nonMAS\testSVN.sql
NO: Breakfix\DB\schema\MasterMind\nonMAS\indexes\testSVN.sql
NO: Breakfix\DB\schema\MasterMind\nonMAS\Scripts\testSVN.sql
NO: Breakfix\DB\schema\MasterMind\nonMAS\triggers\testSVN.sql
YES: Trunk\DB\schema\MasterMind\nonMAS\grants\testSVN.sql
YES: Trunk\DB\schema\MasterMind\nonMAS\Objects\testSVN.sql

我的问题是,为什么 $Id$ 在某些目录中没有像在同一 SVN 存储库中的其他目录中那样扩展,有哪些可能的原因?

注意: svn propget 为有效的文件返回“Id”,而对于没有运行的文件,svn propget 返回“Header”。

任何意见或建议将不胜感激!

谢谢

4

1 回答 1

0

解决了!我一直在研究这个问题几个月,但终于弄明白了。Tortoise SVN 的这篇文章提供了帮助。https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-propertypage.html

原来我的前任设置了一些基于文件夹的 svn:keywords。这就是某些文件夹对我不起作用的原因。我能够转到所有内容的父文件夹并设置一个全局 svn:keyword,现在它适用于所有人。

于 2019-11-15T18:52:35.197 回答