2009-10-16 105 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

相關問題