2009-10-16 126 views
2

我们有我们要在版本控制,因为他们指定项目的默认设置某些配置文件:搜索路径,有条件的定义等。不幸的是,这些文件也使用IDE(德尔福5)持有临时信息。 IDE在开发过程中不断更新文件,这会导致Tortoise将工作目录始终标记为已修改,尽管所有可能发生的都是该项目的构建。有时我们确实想要对这些文件进行更改,例如,如果项目搜索路径依赖性发生变化,但绝大多数时候它们只是噪声源。有没有办法让TortoiseSVN暂时忽略版本化文件?

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

有没有办法,我可以设置这让
1)文件被检出
2)是忽略这些文件的修改
3)的一些手段时被拉有一个方式方法如果需要的话

+0

接受的答案(Ben James,2009)其他方式可用。然而,[第二个答案](http://stackoverflow.com/a/14841814/1890400)(由迈克尔Sorens,2013年)是更优雅,正是Willbill想:忽略的文件,除非是特别选择提交。 – Byson 2014-12-17 15:13:21

回答

10

一般的解决方法,以使局部修改的版本控制配置文件中的文件显著变化检查是不保留版本控制下的配置文件本身,而是版本的它的模板,如与.template附加到文件名。

的第一次开发者检出的项目,他们让这个文件的副本,从复制的文件名移除.template。然后,他们将副本(非模板)添加到忽略列表以确保它不会被意外添加或提交。

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

+0

1+谢谢,我真的很喜欢这个解决方案 – Willbill 2009-10-16 15:31:17

1

不,我不认为这是可能的。解决方案可能是将这些文件的“规范”版本放入某些子目录,例如“idefiles”,该文件会被签入但未被IDE使用。然后IDE中使用的文件可以从回购库中删除并被忽略。

如果你想入住“重要变化”,只是将它们复制到“idefiles”。

唯一的缺点:

在第一次结账时,人们必须记住,从“idefiles”复制的东西到正确的位置。但首先检出是平时难得一见...

而且,如果“idefiles”的变化,更改必须手动复制到读取IDE文件。但是这可能是有用的(开发人员可能不希望本地配置被覆盖)。

BTW,的“版本控制配置文件”的问题已经讨论过,如:

How to store configuration parameters in SVN?

11

自1.5版本时,TortoiseSVN一直支持change lists使您可以对文件分组提交对话框中。TortoiseSVN的提供一个特殊的变化列表,称为忽略上提交,即“用于标记,你几乎从来没有要提交,即使他们有本地修改版本的文件。”有关更多信息,请参见Excluding Items from the Commit List

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

(我从这个问题提出3年后开始写这个问题的意图是说现在有一个简单的方法来做到这一点,但我无法抗拒做一些检查,事实证明,答案我刚刚提供的截至2008年6月的TortoiseSVN 1.5是officially released - 因此,当我提出这个问题时,我的答案也是适用的。)

+1

为TortoiseSVN的特定用户体面的解决办法。我不认为“ignore-on-commit”变更集被广泛认可,我敢打赌其他前端对同一个功能也有自己的变更集名称。作为旁注,我发现AnkhSVN(Visual Studio SVN插件)也支持“ignore-on-commit”变更集,所以它在Tortoise和它本身之间运行良好。 – Nicholi 2013-06-06 23:26:01

+0

的强大功能**忽略上提交**名单,虽然影响的文件标有红色的**!**,目录树保持绿色** V **,这使得项目状态概览更容易。 – 2014-09-22 13:36:35

+0

@Nicholi如果我没有错误AnkhSVN是一个TortoiseSVN的Visual Studio包装。它不只是在后台使用TortoiseSVN客户端吗? – Byson 2014-12-17 15:16:10

相关问题