SVN 記錄衝突、忽略

一、衝突

  SVN非常智能,它不像VSS那樣,一個人在改的時候必須以獨佔的方式簽出文件,導致其他人不能夠修改。而是允許多個人同時修改一個文件。這就大大減少了資源競爭的問題,之前用VSS經常要問同事:"改完沒,簽入一下"。

  1、衝突是如何發生的

  • 兩個人修改了不同文件?不會有衝突,因爲它們並不相關。
  • 兩個人同時修改了同一個文件的不同位置?不會有衝突,SVN很好地解決了這個問題。
  • 兩個人同時修改了同一個文件的相同位置?這個時候會產生衝突。

  情景:工程師A修改了a.txt的第一行,提交了。工程師B也修改了a.txt的第一行,然後上傳,這時SVN會提示存在衝突。

  我們來重現一次這樣的情景。首先,我們創建3個文件夾,一個服務端,兩個客戶端。SVN關聯它們。然後上傳1個a.txt上去。

  同時在兩個文件夾,打開並修改a.txt文件。

  

  修改完畢後,文件夾提示有文件未上傳:

  

  上傳client1,沒問題,直接變綠。但是當上傳client2的時候,SVN提示a.txt文件過期。

  

  這時,重新獲取client2文件夾,如果此時SVN發現a.txt文件修改的不是同一行,那麼也沒問題了,但是很遺憾,這裏我們修改的都是兩個文件夾的第一行。

  SVN提示衝突,文件夾變成“黃色歎號”。

  

  2、衝突的解決

  我們選擇編輯衝突:

  

  此時,在一側上右鍵會有如下選擇項供我們選擇:

  

  1、Use this text block:使用此文本塊;
  2、Use this whole file:使用這個文件;
  3、Use text block from 'mine' before 'theirs':合併,將我的改動放在別人的改動之前;
  4、Use text block from 'theids' before 'mine':合併,將別人的改動放在我的改動之前;

  以上4個選項,點擊之後就會在最下面的TextArea看到最終效果,選擇想要的版本就OK了。

  如果是一個個處理,可以選擇跳轉到上一個/下一個衝突地方:

  

  完事了,標記爲已解決衝突就OK了。

  

二、SVN忽略文件

  在項目中,有些文件可能是不需要SVN管理的,因爲有些文件可能每次生成都會改變,例如bin目錄。可以考慮將這些目錄從SVN管理中忽略掉,就不用每次Comit都更新這些文件。其操作方式如下:

  1、在SVN中忽略某文件:

  

  2、忽略後,如果提交,此時服務器端會刪除掉該文件,其圖標顯示如下:

  

  3、如果又想將已經忽略的文件添加回來:

  

  通常來說,一個.Net的Web項目,如下文件夾是不需要添加到SVN管理的:

  • bin文件夾;
  • obj文件夾;
  • *.user文件;
  • .suo文件;

轉自:http://blog.csdn.net/mysouling/article/details/51365141

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章