2012-06-20 131 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