2009-09-28 90 views
2

是否可以在不提交文件中的任何其他更改的情況下對SVN進行單個更改?在SVN中提交單個更改

例如,我有一個文件,config.properties,源代碼受SVN控制,而且我的本地副本包含了許多與本地環境相關的更改。但是,我想爲此文件提交一個新的配置條目,以便我的團隊成員可以選擇此項,但我不想失去本地更改。

有沒有辦法做到這一點?

+1

如果它的實用性和功能,你想在一個版本控制系統,比你應該考慮使用Git。 那麼你可以使用 混帳添加-i 到一個文件中只承諾的一部分。 – 2009-09-28 17:00:16

+1

我記得當CVS用戶給這些關於新的和改進的SVN的評論時。現在SVN變成了CVS: -/ – 2009-09-28 17:04:59

+1

@Artem:每當有人問SVN問題時,至少有一個git狂熱者會爲他們的Holy Grail(TM)做廣告。男孩我討厭這個垃圾郵件!它早已讓我想要檢查git。老實說,如果他們覺得有必要不斷向我們宣傳它的優越性,它會有什麼好處呢? – sbi 2009-09-28 18:33:41

回答

3

不,這是不可能的。只需將svn在一個單獨的位置簽出該文件,然後進行更改並將其合併回其他更改。

+0

這可能是我的最佳選擇。我可以將我的項目的兩個副本簽出到兩個單獨的位置:〜/ svn/myproject&〜/ svn/myproject-new-commits。 myproject位置是我的工作副本,我可以僅使用myproject-new-commits來提交其他團隊成員所需的更改。 – rmcc 2009-09-28 17:12:26

+0

對於每一個「prj」項目我都努力工作,我很快發現自己有一個總是最新的結帳「prj_clean」,並且只是爲了做這些小小的改變,需要立即完成,而我正在做一些工作功能需要一兩天,直到我可以提交。這樣做,您甚至可以使用您最喜愛的差異/合併實用程序將更改從「prj」合併到prj_clean「,並檢查它們而不檢查您的半成品功能。 – sbi 2009-09-28 18:38:52

4

我建議在svn下有一個模板配置並忽略本地配置。這樣你就可以做你想做的事情:更新模板,與本地配置合併,你很好去。

2

這是不可能的。但是,解決方法是:

  • 複製你的修改config.properties安全的地方,你的工作文件夾之外
  • 回覆config.properties
  • 僅適用的變化要承諾config.properties
  • 提交config.properties
  • 將您的備份(安全副本)複製到您的工作文件夾中的config.properties中以獲取您不想提交的更改
0

在你的具體情況下,我第二次silentghost的建議。我從來沒有在配置文件中保存配置文件的活動副本,只有模板文件。這還有其他好處:您不會在更新時意外覆蓋您的生產配置文件,您可以將數據庫密碼等敏感信息保存在存儲庫中,並且每個人都可以擁有適合其需求/偏好的自己的開發設置。當需要一個新的配置行時,只需將其檢入到模板中,並通知其他開發人員需要將其與其本地副本合併。 (或者,也許看看將配置文件抽象爲隨每個環境(db連接等)而變化的配置文件以及不會改變的配置文件(常量,語言變量等),並且可以成爲回購的一部分。

也就是說,對於一般需要合併一行變化到回購,Orbman和jeffamaphone是正確的。(Orbman會得到我的最全面的答案的選票,但是我已經投票給SilentGhost。)