2

我正在检查根据特定需求在版本控制应用程序之间进行选择:

源文件由导出脚本文件的 4GL 图形客户端生成。问题是某些代码部分需要被忽略。这是一个脚本的代码示例:

BEGIN DSRECORD
   Identifier "V0"
   DateModified "1899-12-30"
   TimeModified "00.00.01"
   (...)
   StageXSize "730|48|46|48|48|48|48|48|48|48|48|48|48|48"
   StageYSize "132|48|48|48|48|48|48|48|48|48|48|48|48|48"
   ContainerViewSizing "0083 0345 0569 0735 0000 0001 0183 0680"
END DSRECORD

在该代码中,应该忽略 StageXSize 和 StageYSize 行,因为每次开发人员移动框(称为 Stage)时,这些值都会改变,但我不想将其视为代码的更改。

所以我在 GIT 或 Subversion 中的问题,是否有办法指定在比较脚本的 2 个版本时忽略部分代码?

谢谢

4

4 回答 4

2

我听说过的所有版本控制应用程序都只允许忽略每个文件,但不能忽略文件中的特定行。

在任何 VCS 中,您通常通过签入具有默认值的“模板文件”来处理配置文件(=需要以某种形式存在于存储库中的文件,但任何开发人员都应该可以对其进行编辑而不提交更改),然后让开发人员在其副本中进行更改,VCS 会忽略该副本。

这是一个如何执行此操作的示例:
如何使用 tortoise hg “作为存储库的一部分”忽略 kiln/mercurial 中的文件

如果可能的话,您应该尝试将整个脚本文件视为“配置文件”。

于 2012-06-20T14:44:39.203 回答
1

我不这么认为。

我认为“正确”的解决方案是将其拆分为两个文件,并让构建过程的某些部分将它们粘合到运行时所需的单个文件中(大概)。

这样,每个开发人员都可以更改仅包含StageXSizeandStageYSize行的较小文件,而根本不提交它。

于 2012-06-20T14:43:40.140 回答
0

只需回答“否”。对于 SVN 和 Git,都不能忽略文件的某些部分。您可以忽略文件。

在 SVN 中通过 svn:ignore 属性在 Git 中通过 .gitignore 文件获取目录。

于 2012-06-20T14:57:19.553 回答
0

听起来 StageXSize 和 StageYSize 的值是不应该硬编码的配置选项。他们应该进入一个配置文件,比如 stage.config 或 some-app.conf

于 2012-06-20T19:56:08.510 回答