2012-06-20 51 views
2

我检查基于特定需要的版本控制应用程序之间进行选择的一部分:GIT或颠覆 - 如何忽略代码

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

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应该被忽视是导致每次开发者将移动框(称为第一阶段),这些值将改变,但我不希望认为它是代码的改变。

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

Thx

+0

使用[smudge/clean filter](http://www.kernel.org/pub/software/scm/git/docs/gitattributes .html#_tt_filter_tt),你可能可以在Git中做到这一点。我不认为它会“忽略”该文件的一部分,但你可以在干净的步骤中指定恢复该文件的那部分。 – vcsjones

回答

1

我不这么认为。

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

这样一来,每个开发人员可以改变较小的文件只包含StageXSizeStageYSize线,根本没有提交。

2

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

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

下面是一个例子,如何做到这一点:
how to ignore files in kiln/mercurial using tortoise hg "that are part of the repository"

如果莫名其妙地可能的话,你应该尽量把整个脚本文件作为“配置文件”。

0

只需回答不可以SVN和Git都可以忽略文件的某些部分。你可以忽略文件。

在SVN中通过svn:通过.gitignore文件忽略Git中某个目录的属性。

0

听起来像StageXSize和StageYSize的值是不应该被硬编码的配置选项。他们应该在配置文件像stage.config或some-app.conf