2

我们有一些我们希望在版本控制中使用的配置文件,因为它们指定了项目的默认设置:搜索路径、条件定义等。不幸的是,IDE(Delphi 5)也使用这些文件来保存临时信息。IDE 在开发过程中不断更新文件,这导致 Tortoise 一直将工作目录标记为已修改,即使可能发生的只是项目的构建。有时我们确实想要对这些文件进行更改,例如,如果项目搜索路径依赖项发生更改,但大多数情况下它们只是噪音源。

我的第一个想法是检查文件,在 TortoiseSVN 中应用全局忽略模式来忽略有问题的文件类型,并在我对要检查的代码进行真正的更改时删除全局忽略。然而,如果某个版本的文件已经在存储库中,Tortoise 似乎不会忽略它。

有没有一种方法可以设置它,以便
1) 文件在结帐期间被拉入
2) 有一些方法可以忽略对这些文件的更改
3) 如果需要,有一种方法可以检查文件的重大更改

4

3 回答 3

11

从 1.5 版开始,TortoiseSVN 支持更改列表,允许您在提交对话框中将文件组合在一起。TortoiseSVN 提供了一个特殊的更改列表,称为ignore-on-commit“用于标记您几乎不想提交的版本化文件,即使它们有本地更改。” 有关更多信息,请参阅从提交列表中排除项目。

要使用提交时忽略功能,请在Check for ModificationsCommit对话框中选择一个或多个文件,然后在上下文菜单中选择change lists >> ignore-on-commit. 结果是这些文件现在被分组在一起,并且当您打开Commitignore-on-commit 组中的对话框文件时,默认情况下是unchecked而所有其他文件都已选中。请注意,一旦您签入更改列表中的文件,它们就会从该更改列表中删除;TortoiseSVN 假定不再需要组成员身份。但是,在这种情况下,由于您没有签入ignore-on-commit组中的项目,我相信该组将无限期地存在。

(我在提出问题三年多后开始写这个答案,目的是说现在有一种简单的方法可以做到这一点。但我忍不住先做一些检查。事实证明,我刚刚提供的答案是可用的从 2008 年 6 月正式发布的 TortoiseSVN 1.5 开始,我的回答也适用于这个问题。)

于 2013-02-12T21:05:23.813 回答
10

允许对版本控制的配置文件进行本地修改的一般解决方案不是将配置文件本身保持在版本控制之下,而是对其模板进行版本控制,例如.template附加到文件名。

开发人员第一次签出项目时,他们会制作此文件的副本,从副本的文件名中删除 .template。然后他们将副本(非模板)添加到忽略列表中,以确保它不会被意外添加或提交。

对需要进入版本控制的配置所做的任何更改都必须对模板进行。并且每次开发人员更新并发现模板中的更改时,他们必须再次遵循复制/重命名程序。但希望这不会经常发生。

于 2009-10-16T15:19:15.473 回答
1

不,我不认为这是可能的。一种解决方案可能是将这些文件的“规范”版本放入某些子目录中,例如“idefiles”,它会被检入,但 IDE 不会使用。然后可以从存储库中删除并忽略 IDE 正在使用的文件。

如果要签入“重要更改”,只需将它们复制到“idefiles”即可。

唯一的缺点:

在第一次结帐时,人们必须记住将“idefiles”中的内容复制到正确的位置。但是第一次结帐通常很少见...

此外,如果“idefiles”更改,必须手动将更改复制到读取的 IDE 文件中。但这可能很有用(开发人员可能不希望覆盖本地配置)。

顺便说一句,“版本控制中的配置文件”问题之前已经讨论过,例如:

如何在SVN中存储配置参数?

于 2009-10-16T15:22:06.960 回答