2010-02-04 45 views
4

當前,當我在Visual Studio 2008中右鍵單擊 - >合併特定文件時,它會嘗試(通常會成功)自動將文件合併到指定的目標。在Visual Studio 2008中合併文件時的強制比較

如何強制VS始終允許我手動比較和合並我的合併工具中的文件?

我應該提到我的源代碼控制是TFS。

回答

0

實際上有這裏有兩個潛在的問題:

  1. 由於合併計算的一部分,服務器確定沒有變化已經對目標文件自從上次兩個完全同步是被提交。因此,它是安全的(無論如何通過TFS語義)來簡單地覆蓋目標文件。

  2. 兩個分支都有歷史記錄,所以服務器聲明文件處於衝突狀態。現在由客戶選擇一個解決方案。

    • 您可以決定保持源或目標的原樣。
    • 您可以在您配置的工具中選擇手動合併。
    • 您可以要求AutoMerge(通過TF決心-auto:acceptmerge,或自動合併在外對話框中的所有按鈕,或者在「我的更改合併」內對話框上的單選按鈕)
      • 如果AutoMerge失敗,你會用同樣的選擇呈現除了AutoMerge將顯示爲灰色

沒有什麼可以做的情況#1。除非服務器代碼中存在嚴重的未修補缺陷,歷史數據庫中的損壞,或者[很可能]您以前的解決方案選擇已大大誤導TFS關於您的真實意圖,否則它應該是安全的。最壞的情況,你總是必須建立&運行測試對你的待審中的任何檢查被合併的機會。

正如你可以看到,有很多皺紋情況#2。目前還不清楚,如果有的話,你想攔截哪個步驟。好消息是,一旦控制權轉移給客戶,您就有了廣泛的選擇範圍(並且很容易擴展)。唯一棘手的部分是確保你瞭解每個人的後果;誠然,無論是用戶界面還是文檔都不完全清楚。根據需要回復您的問題的更多細節。

+0

謝謝理查德。你確定情況#1只發生在源和目標都相同的情況下嗎?我相信如果他們不同,VS也會發生,他們可以安全地執行自動合併。 這就是我所擔心的。這些文件是敏感的配置文件,我不能搞砸了。這就是爲什麼自動化測試不會給我所需的安全性。 所以底線是,我不能真正手動強制比較,因爲我右鍵單擊 - >合併? – urig 2010-02-07 14:06:39

+0

實際上,當源和目標完全相同時,它永遠不會發生。發生這種情況的原因是,對於目標中所做的每一項更改,信息來源都已獲得信用。示例序列:編輯A,編輯B,合併B-> A [衝突拋出],解析爲接受它們(「從源複製」),編輯A,再次編輯A,合併A-> B。服務器不會發出衝突,因爲之前的合併使它們完全同步,並且自此之後B沒有更改。根本沒有AutoMerge發生。 B僅被A中的內容覆蓋。AutoMerge只發生在場景#2中,並且僅在用戶請求時發生。 – 2010-02-07 16:57:32

+0

如果您想保持分支之間的某些差異,則情況1存在問題。例如。我希望我的分支始終使用到引用程序集的不同路徑。但是,我仍然需要合併項目文件中的其他更改。 – xr280xr 2016-02-08 15:50:15

0

嘗試使用帶有/保守標誌的命令行。更有可能允許您在合併工具中合併您的更改。

/conservative - >當您將一個分支合併到另一個分支時,會導致更多衝突。