合併與解決存回檔案時的衝突
在下列情況存回檔案時可能會發生衝突:
您的檔案上的日期戳記早於已存回到 Team Foundation Server 的版本。如果您在取得較舊的檔案版本後嘗試存回檔案,就會發生這種情況。
在您取得最新版本的檔案到嘗試存回檔案中間這段時間內,其他小組成員已存回變更。在這種情況下,即使是同一個檔案也有可能出現兩種變更:
如果您在檔案中變更過的幾行和小組成員不同,這些變更會被視為簡單變更,可以使用 [自動合併全部] 功能自動進行合併。
如果您在檔案中變更過的幾行和小組成員相同,這些變更會被視為衝突。衝突較為複雜,需要手動解決。
雖然解決衝突乍看之下相當複雜,但是它卻可以幫助您瞭解不同的衝突類型和各種不同的解決方式。如需詳細資訊,請參閱 MSDN 上的了解檔案差異和衝突類型 。另外,這個主題還描述當您必須在 Microsoft Expression Blend 或 Microsoft Visual Studio Team System Team Explorer 中解決衝突時所看到的狀況。
使用解決衝突對話方塊
當存回過程中發生衝突時,一開始會有兩個選項:
自動合併全部 自動合併衝突。Microsoft Team Foundation 系統管理員應該已經在 Visual Studio 2010 Team System 中設定自動合併功能。
只有當您在檔案中變更過的行和小組成員不同時,才能使用自動合併功能,因為在這種情況中,合併是簡單的程序。如果不是這種情況,您就必須手動解決衝突。
注意: 如果衝突是由嘗試存回較舊的檔案版本所造成,自動合併功能通常不會使用舊版本中的任何內容,因為自動合併功能的預設設定是以最新的檔案優先。如需有關如何正確還原至舊版檔案的詳細資訊,請參閱 MSDN 上的 HOW TO:復原變更集 。
解決 手動解決衝突。[解決版本衝突] 對話方塊將會出現,並提供下列額外選項:
為我合併變更 使用自動合併功能。若 Expression Blend 偵測到您和其他小組成員變更過的行相同,便會停用此選項。
合併合併工具中的變更 提示您判斷要接受的變更。如果選取此選項,合併工具便會出現。請參閱下一節<使用合併工具>。
復原我的本機版本變更 移除您對檔案所做的變更,實際將檔案的內容 (而非日期戳記) 還原成 Team Foundation Server 上的最新版本。
捨棄伺服器版本的變更 只套用您的所有變更。若存回檔案,您會移除其他小組成員在您取出檔案時所做的變更。如果您想還原成舊版的檔案,就會使用這個選項。如需有關如何正確還原至舊版檔案的詳細資訊,請參閱 MSDN 上的 HOW TO:復原變更集 。
警告: 使用此選項前,請務必通知小組成員您即將復原他們所做的變更。
比較 顯示視窗,以比較下列三個檔案版本其中兩個的差異:您的本機複本、其他小組成員在您取出檔案時存回的最新複本,以及您和小組成員尚未取出檔案之前就已存在的原始版本。比較版本可幫助您決定是否要復原本機版本變更、捨棄伺服器版本變更,或是使用合併工具合併及解決衝突。
秘訣: |
---|
基於最佳作法的考量,在解決衝突之後但尚未執行其他任何原始檔控制之前,請記得執行 (F5) 並將暫止的變更存回檔案或復原。例如,如果您在解決衝突後但尚未存回檔案之前嘗試取得特定版本的檔案,系統將再次要求您解決衝突,而 [解決衝突] 對話方塊中的衝突描述將為「您有衝突的暫止變更」。 |
使用合併工具
合併工具能夠提供最大的控制權,因為您可以個別選取發生衝突的行,並將它們套用到合併的檔案或從檔案中移除。
合併工具上方的兩個窗格會顯示不同的檔案版本。左邊顯示的是其他成員小組在您取出檔案時所存回的版本,而右邊顯示的則是您的本機複本 (尚未存回)。每個窗格都會使用色彩來識別與原始檔案版本 (在其他小組成員存回其變更之前就已存在) 不同的行。紅色的行代表已刪除的文字,綠色的行代表插入的文字,而藍色的行則代表修改過的文字。如果頂端兩個窗格中兩個檔案的同一行都有變更,系統就會將這項變更視為衝突。
合併工具下方還有第三個窗格。一開始,下方的這個窗格會顯示尚未套用上面兩個檔案中的非衝突變更的原始檔案版本。
這一行在您的本機版本和目前已存回的版本都已變更,因而產生必須手動解決的衝決。 |
|
衝突的行的原始版本。 |
|
由您新增且已套用至下方合併檔案的行。 |
|
最近存回且未與您的變更發生衝突的行。這一行已經套用到下方的合併檔案而且無法移除。 |
|
目前已存回之版本中移除的行。您不能復原這項變更,因為它和您的本機版本沒有衝突。 |
您必須手動解決在下方窗格中以週框矩形識別的衝突。若要接受上方一或兩個檔案中的變更,請執行下列一項動作:
按一下要套用變更至下方檔案的行 (請參見下圖)。
以滑鼠右鍵按一下您要套用其變更的行,然後按一下 [套用變更]。
以滑鼠右鍵按一下下方檔案中原始的行,然後按一下 [套用左方的變更] 或 [套用右方的變更]。
若要移除您已套用的變更,請執行下列一項動作:
在上方其中一個檔案中按一下您已套用其變更的行。
在上方其中一個檔案中,以滑鼠按一下您已套用其變更的行,然後按一下 [移除變更]。
以滑鼠右鍵按一下下方檔案中原始的行,然後按一下 [移除這項衝突的變更]。
從上方兩個窗格套用或移除衝突之後,下方窗格便會更新,以顯示您所做的選擇。
發生衝突的其中一行。請按一下您要套用至合併的檔案的那一行。 |
|
衝突的行的更新版本。 |
如果您 [同時套用兩者的變更],這兩行都會出現在下方窗格中,而可能造成建置錯誤。不過,這種作法可以讓您在下方窗格對照比較這兩行。您可以在完成比較之後隨時從下方窗格移除其中一行。
您可以隨時從伺服器版本的檔案或是您的本機檔案套用所有發生衝突的行,方法是在合併工具內按一下滑鼠右鍵,指向 [解決所有衝突],然後按一下 [使用左方的變更] 或 [使用右方的變更]。這種作法只會套用發生衝突的行,不會移除已經變更但沒有衝突的行。
在您按一下 [確定] 結束合併工具,按一下 [是] 儲存檔案,並按一下 [關閉] 結束 [解決衝突] 對話方塊之後,請記得要先建置 (CTRL+SHIFT+B) 或執行 (F5) 解決方案來測試合併後的檔案,然後才將檔案存回。
您可以在 MSDN 上的 HOW TO:解決兩個檔案之間的衝突 找到使用合併工具的簡短程序。
檢視具有衝突的檔案清單
如果您嘗試存回檔案,然後沒有解決任何衝突就關閉 [解決衝突] 對話方塊,原始檔控制系統將會持續追蹤這些檔案。您可以隨時用滑鼠右鍵按一下 [專案] 面板中的解決方案,然後按一下 [解決衝突],查看尚有未解決衝突的所有檔案。
另請參閱
工作
Copyright © 2011 by Microsoft Corporation. All rights reserved.