1. svn沖突怎麼解決
通過SVN客戶端更新需要的文件,如果出現有感嘆號的文件,找到出現感嘆號的文件。
選擇感嘆號文件,即沖突文件,單擊滑鼠右鍵對沖突文件進行編輯操作,如下圖所示:
進入沖突編輯頁面對出現問號的部分進行調整,如下圖所示:
4
沖突文件調整過程中,可以選擇使用自己的版本或對方版本或兩個都使用,如下圖所示:
5
完成後,點擊上圖【save】進行保存,至些svn的沖突文件就處理好了,重新提交就可以。
2. 試用svn時遇到文件沖突時怎麼處理
沖突有很多情況:
你update代碼並修改了,你提交前,別人已經修改並提交了,當你再提交就會有沖突;
最後把沖突的文件備份,然後更新庫上最新的到本地。再把自己的代碼合並進去就好了。
3. svn 下這個沖突怎麼解決
一、我給你說一下原理吧:
假如DBAccessUtils.java你在修改test方法,而你同事也在修改test方法,但是他先commit了,而你想commit的時候,commit不了,然後你不假思索就update下來了,然後就會出現4個文件分別為:
DBAccessUtils.java、
DBAccessUtils.java.mine、
DBAccessUtils.java.r2129、
DBAccessUtils.java.r2130。
.mine是你的修改的版本,裡面是保存的你修改的內容
.r2129是你做更新操作以前的版本,你是在這個版本的基礎上做的修改
.r2130是版本庫中的最新版本,這里有別人的修改,而就是這個修改和你的修改沖突了
DBAccessUtils.java就是融合了你修改的內容和伺服器最新的修改內容
二、說了那麼多,現在說說怎麼解決沖突吧:
我們打開DBAccessUtils.java,你會看到由小於號、等於號和大於號串組成的三個部分,其中小於號和等號之間的內容是你的修改,而等號和大於號之間的修改是其他人的修改,在明確了沖突的原因之後,我們已經知道怎麼修改了,兩個人的修改都是需要保留的。
OK,那就保留所有的修改,刪除掉<、=和>,最後就把沖突解決了。
注意:小於號、等於號和大於號串是沖突標記,並不是沖突的數據,你一定要確定這些內容在下次提交之前得到刪除。
三、如何降低沖突解決的復雜度:
1、當文檔編輯完成後,盡快提交,頻繁的提交/更新可以降低在沖突發生的概率,以及發生時解決沖突的復雜度。
2、在提交時,寫上明確的message,方便以後查找用戶更新的原因,畢竟隨著時間的推移,對當初更新的原因有可能會遺忘
3、養成良好的使用習慣,使用SVN時每次都是先資源同步,看看有沒有沖突,再做相應的提交或更新。
4、每天早上打開後,首先要從版本庫獲取最新版本。每天下班前必須將已經編輯過的文檔都提交到版本庫。
4. SVN常用命令及例句
1、linux命令行下將文件checkout到本地目錄
svn checkout path(path是伺服器上的目錄)
例如:svn checkout svn://192.168.1.1/pro/domain
簡寫:svn co
2、Linux命令行下往版本庫中添加新的文件
svn add file
例如:svn add test.php(添加test.php)
svn add *.php(添加當前目錄下所有的php文件)
3、Linux命令行下將改動的文件提交到版本庫
svn commit -m 「LogMessage「 [-N] [--no-unlock] PATH(如果選擇了保持鎖,就使用–no-unlock開關)
例如:svn commit -m 「add test file for my test「 test.php
簡寫:svn ci
4、Linux命令行下的加鎖/解鎖
svn lock -m 「LockMessage「 [--force] PATH
例如:svn lock -m 「lock test file「 test.php
svn unlock PATH
5、Linux命令行下更新到某個版本
svn update -r m path
例如:
svn update如果後面沒有目錄,默認將當前目錄以及子目錄下的所有文件都更新到最新版本。
svn update -r 200 test.php(將版本庫中的文件test.php還原到版本200)
svn update test.php(更新,於版本庫同步。如果在提交的時候提示過期的話,是因為沖突,需要先update,修改文件,然後清除svn resolved,最後再提交commit)
簡寫:svn up
6、Linux命令行下查看文件或者目錄狀態
1)svn status path(目錄下的文件和子目錄的狀態,正常狀態不顯示)
【?:不在svn的控制中;M:內容被修改;C:發生沖突;A:預定加入到版本庫;K:被鎖定】
2)svn status -v path(顯示文件和子目錄狀態)
第一列保持相同,第二列顯示工作版本號,第三和第四列顯示最後一次修改的版本號和修改人。
註:svn status、svn diff和 svn revert這三條命令在沒有網路的情況下也可以執行的,原因是svn在本地的.svn中保留了本地版本的原始拷貝。
簡寫:svn st
7、Linux命令行下刪除文件
svn delete path -m 「delete test fle「
例如:svn delete svn://192.168.1.1/pro/domain/test.php -m 「delete test file」
或者直接svn delete test.php 然後再svn ci -m 『delete test file『,推薦使用這種
簡寫:svn (del, remove, rm)
8、Linux命令行下查看日誌
svn log path
例如:svn log test.php 顯示這個文件的所有修改記錄,及其版本號的變化
9、Linux命令行下查看文件詳細信息
svn info path
例如:svn info test.php
10、Linux命令行下比較差異
svn diff path(將修改的文件與基礎版本比較)
例如:svn diff test.php
svn diff -r m:n path(對版本m和版本n比較差異)
例如:svn diff -r 200:201 test.php
簡寫:svn di
11、Linux命令行下將兩個版本之間的差異合並到當前文件
svn merge -r m:n path
例如:svn merge -r 200:205 test.php(將版本200與205之間的差異合並到當前文件,但是一般都會產生沖突,需要處理一下)
12、Linux命令行下SVN 幫助
svn help
svn help ci
以上是常用命令,下面寫幾個不經常用的
13、Linux命令行下版本庫下的文件和目錄列表
svn list path
顯示path目錄下的所有屬於版本庫的文件和目錄
簡寫:svn ls
14、Linux命令行下創建納入版本控制下的新目錄
svn mkdir: 創建納入版本控制下的新目錄。
用法: 1、mkdir PATH…
2、mkdir URL…
創建版本控制的目錄。
1、每一個以工作副本 PATH 指定的目錄,都會創建在本地端,並且加入新增調度,以待下一次的提交。
2、每個以URL指定的目錄,都會透過立即提交於倉庫中創建.在這兩個情況下,所有的中間目錄都必須事先存在。
15、Linux命令行下恢復本地修改
svn revert: 恢復原始未改變的工作副本文件 (恢復大部份的本地修改)。revert:
用法: revert PATH…
注意: 本子命令不會存取網路,並且會解除沖突的狀況。但是它不會恢復被刪除的目錄
16、Linux命令行下代碼庫URL變更
svn switch (sw): 更新工作副本至不同的URL。
用法: 1、switch URL [PATH]
2、switch –relocate FROM TO [PATH...]
1、更新你的工作副本,映射到一個新的URL,其行為跟「svn update」很像,也會將伺服器上文件與本地文件合並。這是將工作副本對應到同一倉庫中某個分支或者標記的方法。
2、改寫工作副本的URL元數據,以反映單純的URL上的改變。當倉庫的根URL變動(比如方案名或是主機名稱變動),但是工作副本仍舊對映到同一倉庫的同一目錄時使用這個命令更新工作副本與倉庫的對應關系。
17、Linux命令行下解決沖突
svn resolved: 移除工作副本的目錄或文件的「沖突」狀態。
用法: resolved PATH…
注意: 本子命令不會依語法來解決沖突或是移除沖突標記;它只是移除沖突的相關文件,然後讓 PATH 可以再次提交。
18、Linux命令行下輸出指定文件或URL的內容。
svn cat 目標[@版本]…如果指定了版本,將從指定的版本開始查找。
svn cat -r PREV filename > filename (PREV 是上一版本,也可以寫具體版本號,這樣輸出結果是可以提交的)
以上是Linux命令行下常用svn命令的使用方法。
5. svn怎麼解決兩個版本都用沖突
1我個人認為不管是提交、更新、編輯沖突第一個操作都應該是和資源庫進行同步,項目右鍵==》Team==>於資源庫同步(這里需要注意的是你的開發環境中已經正常集成了SVN,可以直接在myeclipse中使用).2與SVN資源庫同步後,就會在界面上顯示如你當前的項目需要更新多少文件、提交多少文件。3到這里我們知道了情況後就是操作順序的問題,我個人建議先更新沒有沖突的文件到本地,再編輯沖突文件、最後測試確認無問題再提交到SVN上。在這個界面上更新和提交的操作我就不詳細說明了,我這里想詳細說說編輯沖突。4在上面的圖片中需要重點說明的是圖片2和3.編輯沖突是會出現藍色和紅色的對比框。藍色的可以點擊中間的小正方形從伺服器移動到本地,紅色的移動後還得手動修改成一樣的,要不然還會出現沖突。這些事做完了保存一下,要保證你本地的已經有的部分和伺服器上一致,這次修改或者需要提交的是伺服器上沒有的。到這里還要像圖3那樣標記一下為合並。5最後一步其實就是提交,但是我建議在提交之前還是本地運行一下看看有沒有運行錯誤、報錯之類的。確認沒有問題後就回到那個資源庫對比界面選擇提交。
6. windows 怎麼用svn命令
1、Windows下命令行工具:
發現原來安裝的tortoisesvn已經集成到shell中,不能在命令行下使用。
下載Apache Subversion command line tools,這是一個可以在cmd下使用的命令行工具,解壓後把裡面bin目錄這個路徑添加到環境變數的path,這樣在cmd下就可以使用了,和linux下使用svn的習慣一樣了。
目錄約定:
/trunck:開發主線
/branches:支線副本
/tags:標簽副本(一旦創建,不允許修改)
1)使用trunk作為主要的開發目錄
一般的,我們的所有的開發都是基於trunk進行開發,當一個版本(release)開發告一段落(開發、測試、文檔、製作安裝程序、打包等結束後),代碼處於凍結狀態(人為規定,可以通過hook來進行管理)。此時應該基於當前凍結的代碼庫,打tag。
當下一個版本/階段的開發任務開始時,繼續在trunk進行開發。此時,如果發現了上一個已發行版本(Released Version)有一些bug,或者一些很急迫的功能要求,而正在開發的版本(Developing Version)無法滿足時間要求,這時候就需要在上一個版本上進行修改了。解決方法是基於發行版對應的tag,做相應的分支(branch)進行開發。
2)下圖為struts2的SVN倉庫目錄:
3、常用命令
svn help
svn --version
svn --version --quiet 只顯示版本號
svn checkout 地址
svn add 文件或者文件夾 增加本地數據到伺服器
svn commit / svn ci -m 「注釋」 文件名 提交代碼,要先add才commit
svn update / svn up不必跟特定的文件或目錄,也可以自己指定需要更新的文件或目錄。每次commit或者改動之前最好更新一下。
svn log
svn delete 文件名
svn resolve 路徑 --accept working 解決沖突
http://zccst.iteye.com/blog/1765519
svn switch 遠程路徑 版本切換
svn list路徑/svn ls 列出版本庫下的文件和目錄
svn merge -r m:n 路徑 合並文件,從版本號m到版本號n的遠程分支都合並到當前分支中
svn info 確認工作目錄的svn信息
svn diff -r m:n 路徑 對版本m和版本n比較差異
svn cleanup 為失敗的失誤清場
svn status -v 在本地進行代碼修改,檢查修改狀態
svn import 遠程路徑 --message 「message」 將當前路徑下文件導入到版本庫中
svn export 遠程路徑 導出一份干凈的項目
svn move/ svn mv 原文件名 新文件名 重命名
svn mkdir 文件名
svn / svn cp 源文件路徑 新文件路徑
svn revert 文件名 只能恢復未提交之前的操作
若要還原已提交的改動:只能用舊文件覆蓋新文件。操作如下:
1)sun up 讓本地工作拷貝更新到最新狀態
2)svn log your_file_path 查看文件日誌,這時候提交時填寫的說明信息就派上用場了
3)svn diff -r 舊修訂版序號:新修訂版序號 your_file_path 查看兩個修訂版之間的不同。
4)決定用哪個舊的修訂版號後,用舊的修訂版號文件覆蓋新的修訂版號文件。svn merge -r 新修訂版序號:舊修訂版序號 your_file_path
5)svn commit -m "恢復到某修訂版(某修訂版作廢)"
本地的版本叫做working
4、關於merge
branch主要用於新功能的開發
合並發生在本地working ,只要你不提交就不會影響到repository
合並前一定要先update、commit,保證不會out of day,並將本地的修改保存到repository
branch和trunk並行開發的過程中,要經常同步,將trunk的修改合並到branch,合並時選擇"Merge a range of revision"
branch最後合並回trunk時,merge type選擇"Reintegrate a branch"
不管是從trunk合並到branch還是最終從branch合並回trunk,在每次合並前最好先update,然後將本地的修改先全部commit,保護好現場,萬一合並不理想隨時都可以reverthttp://blog.csdn.net/eggcalm/article/details/6606520
http://zhengkun.readthedocs.org/zh_CN/latest/2014/02/07/svn-usage/
5、關於解決沖突
發生沖突之後會出現三個臨時文件:
XXX.mine XXX.r1 XXX.r2
一旦解決了沖突,需用svn resolved讓subversion知道,這樣就會刪除這三個臨時文件,沖突狀態解決。
三種解決方式:
手工合並沖突:需要將沖突標志刪除
用某一個臨時文件覆蓋自己的工作文件
用svn revert 放棄本地修改,不需要執行resolved
7. 怎樣處理SVN的提交代碼沖突
方法/步驟
1
我個人認為不管是提交、更新、編輯沖突第一個操作都應該是和資源庫進行同步,項目右鍵==》Team==>於資源庫同步(這里需要注意的是你的開發環境中已經正常集成了SVN,可以直接在myeclipse中使用)具體操作如下圖
2
與SVN資源庫同步後,就會在界面上顯示如你當前的項目需要更新多少文件、提交多少文件。如下圖:
3
到這里我們知道了情況後就是操作順序的問題,我個人建議先更新沒有沖突的文件到本地,再編輯沖突文件、最後測試確認無問題再提交到SVN上。在這個界面上更新和提交的操作我就不詳細說明了,我這里想詳細說說編輯沖突。如下圖
4
在
上面的圖片中需要重點說明的是圖片2和3.編輯沖突是會出現藍色和紅色的對比框。藍色的可以點擊中間的小正方形從伺服器移動到本地,紅色的移動後還得手動
修改成一樣的,要不然還會出現沖突。這些事做完了保存一下,要保證你本地的已經有的部分和伺服器上一致,這次修改或者需要提交的是伺服器上沒有的。到這里
還要像圖3那樣標記一下為合並。
5
最後一步其實就是提交,但是我建議在提交之前還是本地運行一下看看有沒有運行錯誤、報錯之類的。確認沒有問題後就回到那個資源庫對比界面選擇提交。
http://jingyan..com/article/6b97984dbe8d881ca2b0bfc0.html
8. svn如何解決分支沖突
1、 如何產生沖突
當開發人員A和開發人員B從版本庫同時檢出文檔1.txt,而A和B同時修改了1.txt的同一地方,後提交的一方會在拷貝副本中產生沖突。
兩個工作拷貝,A拷貝中文件1.txt內容為
dfqerq
123dfwre
B拷貝中文件1.txt內容為
dfqerq
123erwrq
在B版本提交之前版本庫上的1.txt(base版本)內容為
dfqerq
B拷貝先提交版本到版本庫中,以至於最新版本內容變為
dfqerq
123erwrq
此時A版本也提交則會產生沖突,無法提交,需要先svn
update,此時會在A拷貝中產生三個臨時文件1.txt.rNew\1.txt.rOld\1.txt.mine,其中1.txt.rNew是最新版
本,1.txt.rOld是base版本,1.txt.mine是A作者修改後的版本,在此例中內容為
dfqerq
123dfwre
而update之後A拷貝中的1.txt內容為
<<<<<<< .mine
dfqerq
123dfwre=======
dfqerq
123erwrq>>>>>>> .r18
其中<<<<<<< .mine與=======之間表示A修改後的內容,=======與>>>>>>> .r18之間是版本伺服器上的版本
2、解決沖突
第一種,利用update的選項進行沖突解決,也就是說不管當前拷貝副本是否是最新版本,都使用—accept參數作為沖突處理方式
–accept ARG : specify automatic conflict resolution action
(『postpone』, 『base』, 『mine-conflict』,
『theirs-conflict』, 『mine-full』, 『theirs-full』,
『edit』, 『launch』)
(p) postpone – mark the conflict to be resolved later //讓文件在更新完成之後保持沖突狀態。
(df) diff-full – show all changes made to merged file //使用標准區別格式顯示base修訂版本和沖突文件本身的區別。
(e) edit – change merged file in an editor //用你喜歡的編輯器打開沖突的文件,編輯器是環境變數EDITOR設置的。
(r) resolved – accept merged version of file //完成文件編輯之後,通知svn你已經解決了文件的沖突,它必須接受當前的內容—從本質上講就是你已經「解決了」沖突。
(mf) mine-full – accept my version of entire file (ignore their change//丟棄新從伺服器接收的變更,並只使用你查看文件的本地修改。
(tf) theirs-full – accept their version of entire file (lose my changes)//丟棄你對查看文件的本地修改,只使用從伺服器新接收的變更。
(l) launch – launch external tool to resolve conflict//啟動一個外置程序來執行沖突解決,這需要一些預先的准備。
(h) help – show this list //顯示所有在沖突解決時可能使用的命令。
第二種,在update時並不處理沖突,利用svn resolve解決沖突
1、利用svn resolve –accept base選擇base版本,即1.txt.rOld作為最後提交的版本
–accept ARG : specify automatic conflict resolution source
(『base』, 『working』, 『mine-conflict』,
『theirs-conflict』, 『mine-full』, 『theirs-full』)
2、手工修改1.txt文件,然後將當前拷貝即1.txt作為最後提交的版本
svn resolve –accept working 1.txt
3、svn resolve –accept theirs-full 1.txt 使用1.txt.rNew作為最後提交的版本
4、svn resolve –accept mine-full 1.txt 使用1.txt.mine作為最後提交的版本
5、svn resolve –accept mine-conflict 1.txt 使用1.txt.mine的沖突部分作為最後提交的版本
5、svn resolve –accept theirs-conflict 1.txt 使用1.txt.rNew的沖突部分作為最後提交的版本
第三種,使用svn revert取消變更
(以上文章來源:http://blog.sina.com.cn/s/blog_65fd4c1e0100h2cg.html)
-----
前兩天在解決沖突時用到了svn resolve這個命令,找到這篇文章主要是因為他對–accept參數的說明比較全
比官方的文檔更詳細。
svn文件沖突,樹沖突詳解
解決沖突
偶爾,當你從版本庫更新、合並文件時,或者切換工作副本至一個不同的 URL 時你會遇到沖突。有兩種沖突:
文件沖突
當兩名(或更多)開發人員修改了同一個文件中相鄰或相同的行時就會發生文件沖突。
樹沖突
當一名開發人員移動、重命名、刪除一個文件或文件夾,而另一名開發人員也對它們進行了移動、重命名、刪除或者僅僅是修改時就會發生樹沖突。
文件沖突
當兩名或更多開發人員修改了同一個文件中相鄰或相同的行時就會發生文件沖突。由於 Subversion 不知道你的項目的具體情況,它把解決沖突的工作留給了開發人員。一旦出現沖突,你就應該打開有問題的文件,查找以字元串<<<<<<<開頭的行。有沖突的區域用如下的方式標記:
<<<<<<< 文件名
你的修改
=======
合並自版本庫中的代碼
>>>>>>> 版本
對於每個沖突的文件 Subversion 在你的目錄下放置了三個文件:
文件名.ext.mine
這是你的文件,在你更新你的工作副本之前存在於你的的工作副本中——也就是說,沒有沖突標志。這個文件除了你的最新修改外沒有別的東西。
文件名.ext.r舊版本
這是在你更新你的工作副本之前的基礎版本(BASE revision)文件。也就是說,它是在你做最後修改之前所檢出的文件。
文件名.ext.r新版本
這個文件是當你更新你的工作副本時,你的 Subversion 客戶端從伺服器接收到的。這個文件對應於版本庫中的最新版本。
你可以通過TortoiseSVN → 編輯沖突運行外部合並工具/沖突編輯器,或者你可以使用任何別的編輯器手動解決沖突。你需要沖定哪些代碼是需要的,做一些必要的修改然後保存。
然後,執行命令TortoiseSVN → 已解決並提交人的修改到版本庫。需要注意的是已解決命令並不是真正的解決了沖突,它只是刪除了filename.ext.mine和filename.ext.r*兩個文件,允許你提交修改。
如果你的二進制文件有沖突,Subversion不會試圖合並文件。本地文件保持不變(完全是你最後修改時的樣子),但你會看到filename.ext.r*文件。如果你要撤消你的修改,保留版本庫中的版本,請使用還原(Revert)命令。如果你要保持你的版本覆蓋版本庫中的版本,使用已解決命令,然後提交你的版本。
你可以右擊父文件夾,選擇TortoiseSVN → 已解決...,使用「已解決」命令來解決多個文件。這個操作會出現一個對話框,列出文件夾下所有有沖突的文件,你可以選擇將哪些標記成已解決。
樹沖突
當一名開發人員移動、重命名、刪除一個文件或文件夾,而另一名開發人員也對它們進行了移動、重命名、刪除或者僅僅是修改時就會發生樹沖突。有很多種不同的情形可以導致樹沖突,而且不同的情形需要不同的步驟來解決沖突。
當一個文件通過 Subversion 在本機刪除後,文件也從本機文件系統中刪除。因此即使它是樹沖突的一部分,卻既不能顯示沖突的疊加圖標也不能通過右鍵單擊來解決沖突。使用檢查修改對話框來獲得編輯沖突選項。
TortoiseSVN 能夠協助找到合並更改的正確位置,但是需要作一些額外的工作來整理沖突。請牢記: 當進行一次更新操作後,工作副本的基礎文件將會包括每一個項目在執行更新操作時版本庫中的版本。如果你在進行更新後再撤銷更改,工作副本將返回到版本庫的 狀態,而不是你開始進行更改前的狀態。
本地刪除,當更新時有更改進入
開發人員 A 修改 Foo.c 並將其提交至版本庫中
開發人員 B 同時在他的工作副本中將文件 Foo.c 改名為 Bar.c,或者僅僅是刪除了 Foo.c 或它的父文件夾。
更新開發人員 B 的工作副本會導致樹沖突:
在工作副本中,Foo.c 被刪除了,但是被標記為樹沖突。
如果沖突是由於更改文件名引起的而不是刪除文件引起的,那麼 Bar.c 被標記為添加,但是其中卻不包括開發人員 A 修改的內容。
開發人員 B 現在必須做出選擇是否保留開發人員 A 的更改。在更改文件名的案例中,他可以將 Foo.c 的更改合並到改名後的文件 Bar.c 中去。對於刪除文件或文件夾的案例中,他可以選擇保留包含開發人員 A 更改內容的項目並放棄刪除操作。或什麼也不做而直接將沖突標記為已解決,那樣他實際上丟棄了開發人員 A 的更改。
如果 TortoiseSVN 能夠找到被改名為 Bar.c 的原始文件,沖突編輯對話框將可以合並更改。這取決於在什麼地方調用更新操作,它也許不能找到原始文件。
本地更改,當更新時有刪除進入
開發人員 A 將文件 Foo.c 改名為 Bar.c 並將其提交至版本庫中。
開發人員 B 在他的工作副本中修改文件 Foo.c。
或者在一個文件夾改名的案例中...
開發人員 A 將父文件夾 FooFolder 改名為 BarFolder 並將其提交至版本庫中。
開發人員 B 在他的工作副本中修改文件 Foo.c。
更新開發人員 B 的工作副本會導致樹沖突。對於一個簡單的文件沖突:
Bar.c 被當作一個正常文件添加到工作副本中。
Foo.c 被標記為添加(包括其歷史記錄)並且產生樹沖突。
對於一個文件夾沖突:
BarFolder 被當作一個正常文件夾添加到工作副本中。
FooFolder 被標記為添加(包括其歷史記錄)並且產生樹沖突。
Foo.c 被標記為已修改。
開發人員 B 現在需要做出決定是否接受開發人員 A 作出的結構改變並且合並她的更改到新結構下適當的文件中,或者直接放棄開發人員 A 的更改並保留本地文件。
要合並她的本機更改到新布局中,開發人員 B 必須先找出沖突的文件 Foo.c 經過改名/移動後在版本庫中的新文件名是什麼。可以使用日誌對話框來完成這個任務。更改必須要手工合並,因為沒有辦法自動的或者簡單的完成此操作。一旦更改移植完畢,沖突的路徑就是多餘的並且可以刪除。在此案例中,使用沖突編輯對話框中的刪除按鈕進行清理並將沖突標記為已解決。
如果開發人員 B 認為 A 的更改是錯誤的,那麼在沖突編輯對話框中她必須選擇保留按鈕。這樣就會標記沖突的文件/文件夾為已解決,但是需要手工刪除開發人員 A 的更改。又是通過日誌對話框幫助追蹤哪些文件移動了。
本地刪除,當更新時有刪除進入
開發人員 A 將文件 Foo.c 改名為 Bar.c 並將其提交至版本庫中。
開發人員 B 將文件 Foo.c 改名為 Bix.c
更新開發人員 B 的工作副本會導致樹沖突:
Bix.c 被標記為添加(包括其歷史記錄)。
Bar.c 被添加到工作副本中,其狀態為『正常』。
Foo.c 被標記為刪除並且產生一個樹沖突。
要解決這個沖突,開發人員 B 必須找出沖突的文件 Foo.c 經過改名/移動後在版本庫中的新文件名是什麼。可以使用日誌對話框來完成這個任務。
然後,開發人員 B 需要決定 Foo.c 的新文件名中的哪一個需要保留 - 開發人員 A 改的那個還是他自己改的那個。
在開發人員 B 手工解決沖突後,使用沖突編輯對話框中的按鈕將樹沖突標記為已解決。
本地缺少,當合並時有更改進入
開發人員 A 在主幹上工作,修改 Foo.c 並將其提交至版本庫中
開發人員 B 在分支上工作,將 Foo.c 改名為 Bar.c 並將其提交至版本庫中
合並開發人員 A 的主幹更改到開發人員 B 的分支工作副本會導致樹沖突:
Bar.c 已經存在於工作副本中,其狀態為『正常』。
Foo.c 被標記為缺少並產生樹沖突。
要解決這個沖突,開發人員 B 要在沖突編輯對話框中標記文件為已解決,這樣就會將其從沖突列表中刪除。她接下來需要決定是否將缺少的文件 Foo.c 從版本庫中復制到工作副本中,是否將開發人員 A 的對 Foo.c 的更改和合並到改名後的 Bar.c 或者是否通過標記沖突為已解決來忽略更改什麼事也不做。
注意,如果你將缺少的文件從版本庫中復制到工作副本中然後再標記為已解決,你復制下來的文件將被再次刪除。你必須先解決沖突。
本地更改,當合並時有刪除進入
開發人員 A 在主幹上工作,將 Foo.c 改名為 Bar.c 並將其提交至版本庫中
開發人員 B 在分支上工作,修改 Foo.c 並將其提交至版本庫中
當文件夾改名時有類似的案例,但是在 Subversion 1.6 中還未被識別...
開發人員 A 在主幹上工作,將父文件夾 FooFolder 改名為 BarFolder 並將其提交至版本庫中。
開發人員 B 在分支上工作,在她的工作副本中修改 Foo.c 。
合並開發人員 A 的主幹更改到開發人員 B 的分支工作副本會導致樹沖突:
Bar.c 被標記為添加。
Foo.c 被標記為修改並產生樹沖突。
開發人員 B 現在需要做出決定是否接受開發人員 A 作出的結構改變並且合並她的更改到新結構下適當的文件中,或者直接放棄開發人員 A 的更改並保留本地文件。
要合並她的本機更改到新布局中,開發人員 B 必須先找出沖突的文件 Foo.c 經過改名/移動後在版本庫中的新文件名是什麼。可以通過適用於合並源碼的日誌對話框來完成這個任務。沖突編輯器僅顯示工作副本的日誌因為它不知道將哪個路 徑的更改合並進來,所以你需要自己找到它。更改必須要手工合並,因為沒有辦法自動的或者簡單的完成此操作。一旦更改移植完畢,沖突的路徑就是多餘的並且可 以刪除。在此案例中,使用沖突編輯對話框中的刪除按鈕進行清理並將沖突標記為已解決。
如果開發人員 B 認為 A 的更改是錯誤的,那麼在沖突編輯對話框中她必須選擇保留按鈕。這樣就會標記沖突的文件/文件夾為已解決,但是需要手工刪除開發人員 A 的更改。又是通過日誌對話框幫助追蹤哪些文件移動了。
本地刪除,當合並時有刪除進入
開發人員 A 在主幹上工作,將 Foo.c 改名為 Bar.c 並將其提交至版本庫中
開發人員 B 工作在分之上,將 Foo.c 改名為 Bix.c 並將其提交至版本庫中
合並開發人員 A 的主幹更改到開發人員 B 的分支工作副本會導致樹沖突:
Bix.c 被標記為正常(未修改)狀態。
Bar.c 被標記為添加(包括其歷史記錄)。
Foo.c 被標記為缺少並且產生樹沖突。
要解決這個沖突,開發人員 B 必須先找出沖突的文件 Foo.c 經過改名/移動後在版本庫中的新文件名是什麼。可以通過適用於合並源碼的日誌對話框來完成這個任務。沖突編輯器僅顯示工作副本的日誌因為它不知道將哪個路徑的更改合並進來,所以你需要自己找到它。
然後,開發人員 B 需要決定 Foo.c 的新文件名中的哪一個需要保留 - 開發人員 A 改的那個還是他自己改的那個。
在開發人員 B 手工解決沖突後,使用沖突編輯對話框中的按鈕將樹沖突標記為已解決。
9. svn有沖突怎麼解決
在團隊開發中很多情況都會出現,下面就來一個一個的講解一下svn中的一下應用,以及遇到問題後如何解決。在Myeclipse中一定要有安裝svn,可以在線安裝也可以離線安裝。
項目一定要是在svn中檢出出來的,還有就是做過修改的,不管會別人修改的還是自己修改的,這樣才能看出來有沒有差別,然後右擊項目找打Team的與資源庫同步,這樣就能進入同步的界面,我們就從這里開始分析。
在途中最重要的是要分析一下這個區域的東西。
分析:第一個圖標是重新同步,如果在你同步的過程中還有人提交了文件,那麼點擊這個就會重新同步;第二:一個加號的那個是你自己有沒有添加文件,如果有添加的文件上就會出現一個加號圖標,減號也一樣,如果你刪除了文件上一樣會出現一個減號的圖。第三:藍色的圖標是別人提交的東西;第四:想右的灰色箭頭是你要提交的東西或者是修改的東西;第五:如果是全部的;而第六個紅色的箭頭的是別人的東西和你提交的東西改到了同一個地方。
其實紅色箭頭是需要處理的,這是需要雙擊文件,如果在兩個文件區域沒有紅色的區域那就可以直接更新,然後在提交,如果有紅色的區域,你需要解決一下沖突,你可以把你寫的東西換到其他的行中,這樣就不會沖突了,也可以兩個改的相通即可。
10. svn出現黃色感嘆號怎麼辦
如果您是指電腦寬頻網路連接圖標出現黃色嘆號導致無法上網,一般是由於IP地址沖突導致,建議您可打開【網路共享中心】,選擇【更改適配器設置】,右鍵本地連接屬性,雙擊ipv4,選擇自動獲取ip,然後打開【運行】,輸入CMD,在命令提示符下輸入【ipconfig\new】重新獲取ip地址嘗試。