Subversion 中没有分支的概念
分支的概念是用户使用 Subversion 做出来的.
创建分支: 用 cp 命令 复制一个库
切换分支: 切到不同分支对应的根目录(主分支对应/trunk,其他分支对应/branches/xxx ,xxx 为分支名),并开发.
svn cp -m "create branch" svn://192.168.2.25/webphp/trunk svn://192.168.2.25/webphp/branches/future
1.创建分支
[pop@centos77 pro1]$ svn cp -m "create branch" svn://192.168.2.25/webphp/trunk svn://192.168.2.25/webphp/branches/future
2.分支提交
[pop@centos77 future]$ echo 1111 >> file2
[pop@centos77 future]$ echo 2222 >> file4
[pop@centos77 future]$ cat file2
Mon Mar 16 13:48:21 CST 2020
1111
[pop@centos77 future]$ cat file4
Mon Mar 16 13:48:15 CST 2020
Mon Mar 16 14:16:50 CST 2020
2222
[pop@centos77 future]$ sm -m "commit 1 in branch-future"
Sending file2
Sending file4
Transmitting file data ..
Committed revision 20.
[pop@centos77 future]$ echo 111 > file
[pop@centos77 future]$ sm -m "commit 2 in branch-future"
Sending file
Transmitting file data .
Committed revision 21.
[pop@centos77 future]$ s update
Updating '.':
At revision 21.
3.主干提交
[pop@centos77 trunk]$ echo 3333 > newfile
[pop@centos77 trunk]$ echo 2222 > file2
[pop@centos77 trunk]$ svn commit -m "co^C
[pop@centos77 trunk]$ sm -m "commit1 in master"
Sending file2
Transmitting file data .
Committed revision 22.
[pop@centos77 trunk]$ echo 1111 > newfile2
[pop@centos77 trunk]$ sm -m "commit2 in master"
[pop@centos77 trunk]$ ^C
[pop@centos77 trunk]$ ss
? newfile
? newfile2
[pop@centos77 trunk]$ s add newfile newfile2
A newfile
A newfile2
[pop@centos77 trunk]$ sm -m "commit2 in master"
Adding newfile
Adding newfile2
Transmitting file data ..
Committed revision 23.
[pop@centos77 trunk]$ s update
Updating '.':
At revision 23.
4. 时不时的merge 主干 到 分支
[pop@centos77 future]$ svn merge svn://127.0.0.1/webphp/trunk
Conflict discovered in '/home/pop/learn/svn/pro1/branches/future/file2'.
Select: (p) postpone, (df) diff-full, (e) edit,
(mc) mine-conflict, (tc) theirs-conflict,
(s) show all options: df
--- /tmp/svn-HRG9h6 Tue Mar 17 12:01:34 2020
+++ /home/pop/learn/svn/pro1/.svn/tmp/file2.tmp Tue Mar 17 12:01:34 2020
@@ -1 +1,6 @@
+<<<<<<< .working
Mon Mar 16 13:48:21 CST 2020
+1111
+=======
+2222
+>>>>>>> .merge-right.r23
Select: (p) postpone, (df) diff-full, (e) edit, (r) resolved,
(mc) mine-conflict, (tc) theirs-conflict,
(s) show all options: e
33333
Select: (p) postpone, (df) diff-full, (e) edit, (r) resolved,
(mc) mine-conflict, (tc) theirs-conflict,
(s) show all options: r
--- Merging r19 through r23 into '.':
U file2
A newfile
A newfile2
--- Recording mergeinfo for merge of r19 through r23 into '.':
U .
[pop@centos77 future]$ ss
M .
M file2
A + newfile
A + newfile2
[pop@centos77 future]$ s diff
Index: .
===================================================================
--- . (revision 21)
+++ . (working copy)
Property changes on: .
___________________________________________________________________
Modified: svn:mergeinfo
Merged /webphp/trunk:r19-23
Index: file2
===================================================================
--- file2 (revision 21)
+++ file2 (working copy)
@@ -1,2 +1 @@
-Mon Mar 16 13:48:21 CST 2020
-1111
+3333
[pop@centos77 future]$ sm -m "merge master to branch"
Sending .
Sending file2
Adding newfile
Adding newfile2
Transmitting file data .
Committed revision 24.
[pop@centos77 future]$
[pop@centos77 future]$ ls
dir1 dir.txt dri2 file file2 file4 newfile newfile2
[pop@centos77 future]$ s update
Updating '.':
At revision 24.
[pop@centos77 future]$ s log |less
------------------------------------------------------------------------
r24 | (no author) | 2020-03-17 12:04:24 +0800 (Tue, 17 Mar 2020) | 1 line
merge master to branch
------------------------------------------------------------------------
r21 | (no author) | 2020-03-17 11:57:05 +0800 (Tue, 17 Mar 2020) | 1 line
commit 2 in branch-future
------------------------------------------------------------------------
r20 | (no author) | 2020-03-17 11:56:09 +0800 (Tue, 17 Mar 2020) | 1 line
commit 1 in branch-future
------------------------------------------------------------------------
r19 | (no author) | 2020-03-17 10:13:48 +0800 (Tue, 17 Mar 2020) | 1 line
5. 在最后一次 merge 主干 到 分支后,马上将分支merge 到主干
将分支 merge 到 master
svn merge --reintegrate svn://127.0.0.1/webphp/branches/future
6. 删除分支
svn delete svn://127.0.0.1/webphp/branches/future -m "Remove branches future,reintegrated with trunk in last Revision "