2008-10-24 27 views
7

在SVN服務器上有一個名爲config.conf的文件。我有一個本地版本稱爲相同的東西(在同一個地方)。 如何確保我的本地配置不會被覆蓋,也沒有檢入?SVN:如何維護我的本地config.blah文件?

雖然我在這裏,目錄的答案不同嗎?

我正在使用Tortoise SVN,但命令行的答案很酷。

謝謝!

+0

非常有用的問題。可怕的答案。幾乎讓我完全離開SVN!他們怎麼可能不允許配置文件?模板答案是不可接受的,因爲文件可能在許多不同的目錄樹中處於許多級別,並且對每個程序員進行更改都是不實際的。 – 2008-11-18 18:42:03

+0

我有這個問題與asp.net和web.config。在這種情況下,移動文件不是一個選項,因爲.NET需要它在Web根目錄中。很煩人! – 2008-12-11 16:26:18

回答

3

如果將SVN命名爲相同的目錄並將其保存在同一目錄中,SVN將始終認爲該文件是存儲庫的一部分。你的選擇是

  • 將其重命名(也許寫一個shell腳本mv config.conf config.conf.theirs && mv config.conf.mine config.conf,然後運行你的應用程序)
  • 移動。也許向你的應用程序添加一些邏輯,檢查本地用戶特定的目錄中的config.conf,然後使用默認的config.conf(如果未找到)
3

您可以在SVN-忽略添加[很抱歉,如果這個基本問題已經被問過......我看了看,但沒有找到它。]:屬性本地文件夾排除config.conf或即使* .conf文件

但我相信,你必須完全排除從SVN這個文件,也就是說,如果它已經到回購檢查完畢後,你需要將其刪除rfrom庫第一

4

感謝大家。我認爲Eoin可能會生氣,但事實上這是真的。您不能忽略版本控制中的文件。

據龜文檔

忽略已版本項目

版本的文件和文件夾不能 被忽略 - 那就是 subversion的一個特性。如果您通過 錯誤版本化文件,請閱讀 「忽略已經版本化爲 版本的文件」一節,以獲取有關如何 「unversion」的說明。

而且從SVN文檔

我在我的項目中的文件,每一個 必須改變,但我不 希望這些地方MODS的永遠是 犯下的。如何讓'svn commit' 忽略該文件?

答案是:不要將該文件 置於版本控制之下。相反,將該文件的 模板置於版本 控件之下,如「file.tmpl」。

然後,最初的「SVN 結賬」後,有你的用戶(或您的 構建系統)做的 模板正常OS拷貝到正確的文件名, 並讓用戶自定義副本。該 文件是無版本的,所以它永遠不會 承諾。如果你願意,你可以 將文件添加到它的父目錄的 svn:ignore屬性,所以也沒有 顯示爲「?」在'svn status' 命令中。

這是非常討厭的......我想我只需要小心這個文件,併爲我自己的配置(我可以忽略)做一個備份副本。

感謝大家對你的答案。

5
  1. 排除它與SVN倉庫:不理(你必須從資源庫中先刪除)
  2. 保留一份在config.conf.default與佔位符值。您可以保留存儲庫中的默認副本。
  3. 使用config.conf正常 - 顛覆不會看到任何更
+0

謝謝,是的,這是官方顛覆的方式來做到這一點。 – 2008-10-24 13:14:23

1

如果有一個與配置文件subversioning,我找到了非常有用的專門給它一個完整的樹幹。 爲什麼? 大多數,因爲你可以簡單地有兩個本地倉庫副本,一個地方的用途,一個用於遠程chanings。

像這樣:

/WORKDIR /配置[是鏈接到/ WORKDIR/conf_local]
/WORKDIR/conf_local [保持局部的conf更新,但不ovverride我的設置]
/WORKDIR/conf_remote [總是用遠程數據更新,所以我可以提交更改]

1

我不知道你有什麼樣的設置,或者如果這適用於你正在使用的任何語言,但這是我的方式用網站和PHP來做。

首先,創建默認配置,這可能已經不會對設置的90%的工作天真的值,但給你什麼值也有,什麼其實是可以配置的參考。這個腳本通常被稱爲'config.default.php'或類似的東西。在這個腳本的底部是一些調整:

if (file_exists("config.php")) require "config.php"; 

簡單的邏輯。如果有配置文件的用戶覆蓋,然後加載它,並讓它覆蓋任何需要的。然後只需通過保持對所有的開發機器已經解釋的方法,任何生產機器,保持不管是什麼原因,svn籤忽略此用戶配置文件。這是一個非常靈活的設置,可以爲大多數語言/環境設置類似的程序。

+0

很酷。實際上這是爲PHP開發的,所以你的答案可能適用於我們。 – 2008-10-24 15:10:38