一、目的
簡單記錄svn的merge操作,特別是merge時的from,to很容易根據字面意思弄錯。
二、操作
1. 本地創建Testing目錄,裏面自動包含三個文件夾branches,tags, trunk.
2. trunk目錄下創建examples1目錄,裏面添加文件hello.c,之後commit到server.
3. 創建分支到branches/examples1。
1. 在trunk的examples1目錄,選擇Branck/tag,創建分支。
2. 路徑選擇branches/examples,並添加註釋,之後點擊OK。點確定後,svn服務器上已經將trunk的examples1copy到branches/examples1了,但是沒有自動同步到本地。需要本地update目錄才能下載分支。
.
3. update本地Testing目錄後,代碼下載到本地。
4. 修改branch/examples1下的內容(修改hello.c,添加hello.h),並commit到服務器。
5. 將branch下的exmples1合併到trunk的examples1.
a. 在trunk下的examples1目錄選擇merge功能。
b. 選擇differenttree
c. 在From中選擇trunk的路徑,在to中選擇branches路徑。在merge時,前後版本會先比較內容,再將差異部分copy到本地。From是左邊,類似於原始版本,to是右邊,類似於修改後的程序。
d. merge之後,branches的內容已經更新到trunk目錄,之後通過commit,將內容放到服務器。
6. 修改trunk/examples1的內容,並commit到服務器
7. Trunk Merge到Branches
a. 在Branches/examples1目錄,右鍵選擇Merge功能。之後仍然選擇differenttree。
b. 之後選擇路徑,from選擇branches,to選擇trunk。
c. 點OK後,trunk的內容就合併到了branches。之後commit到服務器就Ok。
三、總結
1. 如果merge時出現衝突,需要小心處理。
2. 在使用merge功能時,一定要在合併目的地選擇merge功能,而不是在數據源處選擇merge。
3. 裏面的from和to很容易被字面意思搞混,容易理解成“從。。到。。”。其實可以理解爲,from爲左邊,起始狀態,to爲右邊,最終狀態。他們之間會做diff比較,之後將to的內容更新到from。
4. svn操作記錄從版本25-29.