如何处理与版本控制相关但经常以不相关的方式更改的文件?

时间:2011-11-18 09:46:42

标签: delphi git svn version-control

.dproj文件对于Delphi项目至关重要,因此它们必须受版本控制。

这些文件由IDE控制,并且还包含一些经常更改的信息,但与版本控制完全无关。

例如:我经常更改应用程序的启动参数(一天几次),但如果只有处理启动参数的部分发生了变化,则不想意外提交项目文件。

那么如何应对这种情况呢?

一个干净的解决方案是将文件拆开,但使用Delphi IDE AFAIK是不可能的。

您可以忽略文件的特定部分吗?

我们目前正在使用Subversion,但很快就会迁移到Git。

5 个答案:

答案 0 :(得分:12)

在我们的案例中,开发人员很少对.bdsproj,.dpr,.res文件进行有意义的更改。所以我们拒绝提交(subversion中的pre-commit hook),除非特殊标签:[add project file]或[add res file]出现在提交注释中。这可以防止对这些文件进行“frivilous”更改。

答案 1 :(得分:6)

SVN / git无法“知道”文件的哪些位是重要的,并且翻译对于您提交或不提交到文件“位”的重要内容将是困难的(特别是当您不确切知道信息是如何在其中构建)。最实用的解决方案是检查对文件所做的更改,并决定是否将它们提交到存储库。

You can decide which bits of the file you want to commit with git.然而,这不是您正在寻找的自动化流程。

答案 2 :(得分:6)

对于startparameters的特定情况:众所周知的Andreas Hausladen的DDevExtentions插件允许将起始参数存储为dproj文件的separetely。在his site.

上查看有关DDevExtensions的更多详细信息

编辑:如果我没记错的话,这个功能的创建只是因为他对启动参数和版本控制存在严重问题。

答案 3 :(得分:1)

我不会直接在版本控制中保存.dproj文件,而是提供一个默认文件,应该由用户重命名以使有缺陷的Delphi工作。

答案 4 :(得分:1)

使用--assume-unchanged上的git update-index <file>选项herestackoverflow/what-is-assume-unchanged

你可以为需要简单的人制作简单的别名。