4 svn解決衝突

一、什麼狀況下會發生衝突java

<1>兩個開發人員,Harry和Sally,分別從服務器端下載了文件A。服務器

<2>Harry修改以後,A變成了A’,Sally修改以後,A變成了A’’。人工智能

<3>Harry先一步提交,使服務器端文件的版本也變成了A’spa

<4>Sally本地的文件A’’已通過時了,此時她已沒法提交文件,服務器會要求她先進行一次更新操做。code

<5>此時Sally的更新操做有兩種可能blog

   (1)Sally所作的修改與Harry不是同一個位置,更新操做嘗試合併文件成功。ip

   (2)Sally所作的修改與Harry剛好是同一個位置,更新操做嘗試合併文件失敗,發生衝突。開發

<6>發生衝突後,本地工做副本會發生以下變化it

      (1)文件A中的內容發生以下改變class

public static void main(String[] args) {
        System.out.println("Edit By Command!");
        System.out.println("Edit By Command!");
<<<<<<< .mine
        System.out.println("Edit By Eclipse!");
=======
        System.out.println("Edit By Command!New Edit");
>>>>>>> .r14
        System.out.println("Edit By Command!");
        System.out.println("Edit By Command!");
    }

其中,從<<<<<<< .mine到=======之間是發生衝突時本地副本的內容。從=======到>>>>>>> .r14是發生衝突時服務器端的最新內容。注意這裏r後面的數字是發生衝突時服務器端的版本號,有多是任何整數值,r14只是一個例子。

同時文件圖標變成一個「黃色的!」。

      (2)與衝突文件同目錄下新增文件,擴展名爲.mine,其內容是發生衝突時本地副本的文件內容。

      (3)與衝突文件同目錄下新增文件,擴展名爲.r小版本號,例如MyCRM.java.r13,其內容是衝突發生以前,服務器端的文件內容,能夠做爲解決衝突的參照。

      (4)與衝突文件同目錄下新增文件,擴展名爲.r大版本號,例如MyCRM.java.r14,其內容是衝突發生時,服務器端的文件內容。

②解決衝突

      (1)在衝突文件上點右鍵→Team→編輯衝突...→出現以下界面

以對比的方式將本地內容與衝突內容顯示出來,其中左側爲本地內容,右側爲衝突內容。其中本地內容是能夠修改的。

      (2)根據須要和實際狀況將本地內容更正——這個過程極可能須要牽涉衝突的兩位開發人員進行必要的溝通——機器與程序目前還不能徹底取代人工智能。更正後文件圖標會變成一個「四角形」,同時衝突文件內的<<<<<<< .mine、=======以及>>>>>>> .r14等標記都會被去掉。

      (3)在衝突文件上點右鍵→Team→標記爲解決

 

 

      此時.mine文件和.r版本號文件都會被自動刪除,衝突文件的圖標變爲「*」,表示能夠提交。

      (4)提交文件,文件圖標變爲「金色圓柱體」。

相關文章
相關標籤/搜索