2012-07-19 147 views
0

我正在嘗試做什麼我不認爲SVN:ignore命令會執行我想要的操作。SVN更新但忽略某些修訂

我有一個SVN倉庫,它是爲少數幾個單獨的客戶端部署的同一個應用程序。我對一組文件進行了更改,但只有一個客戶端(我們稱之爲客戶端A)需要這些更改(他們希望他們的Web應用程序可以在iframe中訪問,而其他客戶端則不需要)。

我不想忽略其他服務器上的文件,因爲將來我會對它們需要的文件進行修改。

基本上大家是不是客戶端A我需要更新自己的服務器,但沒有任何更新的這僅適用於客戶端A

我甚至不知道這是否可能在修訂X的變化因爲將來它會很容易覆蓋那些文件不是嗎?我會永遠記住忽略那個修改不是我嗎?

如果這是不可能的,是否還有其他解決方法人們使用?我認爲但似乎無法按照我認爲理論上的方式工作的一種方法是將客戶端A的服務器的這些更改合併到不同的分支中,但是隨後每次客戶需要時都必須維護不同的存儲庫分支與其他客戶不同的東西?

回答

2

在這裏有點逆轉,我不認爲分支或標籤是解決您的問題的正確方法,除非您有無限的時間在開發線之間合併代碼。

另一種方法是單片代碼庫,您可以爲所有客戶端調整功能的超集。對於每個客戶端,您都可以打開和關閉功能。 (您的每個客戶端的配置與您的代碼庫是分開的,對嗎?)即使您的代碼遵循不同的路徑,每個客戶端也可以享受一次修復常見功能的好處。

此外,當您爲每個客戶開發各種功能時,您有機會向客戶推銷可能已經構建的功能。你所需要做的就是配置它。

當然,如果您的每個客戶的需求大不相同,則此解決方案可能無法正常工作。但是,由於您將代碼庫保存在同一個repo中,因此我會假設它是。

+0

我其實很喜歡這個解決方案。以前沒有真正想過這種方式。它肯定會對我自己的解決方案起作用,我從頭開始構建。 無論它在我的作品中工作是否會很有趣 - 我正在使用的代碼已經基本上在過去的8 - 9年裏與大約20多位不同的程序員疊加在一起。不用說這是一個絕對的混亂。 http://www.urbandictionary.com/define.php?term=shambles(我認爲shambles是澳大利亞俚語;)) – 2012-07-19 02:03:34

0

這裏使用的正確方法是爲客戶端A創建一個分支。SVN忽略是完全不同的。

1

我認爲一個單獨的分支是最合理的解決方案。至少在這種情況下,您可以設置測試系統來運行兩個分支的測試:客戶端A和其他客戶端。你要麼保持一些顛覆分支/樹幹的變化,要麼很容易丟失/忘記它們。您不能完全自動排除修訂版本X,因爲理論上在應用修訂版Y> X的某些更改時可能會發生衝突,該修訂假定修訂版X的更改存在。

+0

乾杯隊友,我有一種感覺,一個單獨的分支將是這裏最好的選擇。 – 2012-07-19 01:38:44