在我的方案中,我有三个分支b1
,b2
和b3
。
我在b1
中创建了三个文件A,B和C,并单独提交,生成此日志:
svn log ^/branches/b1
------------------------------------------------------------------------
r14
C created
------------------------------------------------------------------------
r13
B created
------------------------------------------------------------------------
r12
A created
------------------------------------------------------------------------
然后我更改为分支b2
并合并b1
svn merge ^/branches/b1
导致r15
svn log ^/branches/b2
------------------------------------------------------------------------
r15
Merged from b1: A,B,C
------------------------------------------------------------------------
现在我想将仅修订版r12 合并到分支b3
。我可以使用svn log -g ^/branches/b2
查看所有修订版12,13和14。
当我执行merge命令时,只写入mergeinfo:
svn merge -c 12 ^branches/b2
--- Recording mergeinfo for merge of r12 into '.':
U .
但我希望仅将文件A从b2
合并到b3
的确切修订版。
如果我做对了,这是不可能的,因为b2
路径中不存在r12。因此,实现我想要的只有两种方式:
b1
合并到b3
b1
的每个修订单独合并并提交到b2
,然后选择那里的“新”修订我已经看到了这个:SVN. Merge every single branch revision separately让我了解了如何实现一个简化后一种选择的脚本。
是不是有可能用svn“本地”实现这个?
由于
答案 0 :(得分:0)
我可以使用
查看所有修订版12,13和14svn log -g ^/branches/b2
但是(我的样本)
>svn log -g -q -v
------------------------------------------------------------------------
r9 | Badger | 2014-03-09 02:01:44 +0600 (Вс, 09 мар 2014)
Changed paths:
M /branches/b2
A /branches/b2/A.txt (from /branches/b1/A.txt:8)
A /branches/b2/B.txt (from /branches/b1/B.txt:8)
A /branches/b2/C.txt (from /branches/b1/C.txt:8)
------------------------------------------------------------------------
r8 | Badger | 2014-03-09 02:00:16 +0600 (Вс, 09 мар 2014)
Changed paths:
A /branches/b1/C.txt
Merged via: r9
------------------------------------------------------------------------
r7 | Badger | 2014-03-09 01:59:56 +0600 (Вс, 09 мар 2014)
Changed paths:
A /branches/b1/B.txt
Merged via: r9
------------------------------------------------------------------------
r6 | Badger | 2014-03-09 01:59:38 +0600 (Вс, 09 мар 2014)
Changed paths:
A /branches/b1/A.txt
Merged via: r9
------------------------------------------------------------------------
r3 | Badger | 2014-03-09 01:56:48 +0600 (Вс, 09 мар 2014)
Changed paths:
A /branches/b1 (from /trunk:2)
Merged via: r9
------------------------------------------------------------------------
r4 | Badger | 2014-03-09 01:57:41 +0600 (Вс, 09 мар 2014)
Changed paths:
A /branches/b2 (from /trunk:3)
------------------------------------------------------------------------
r2 | Badger | 2014-03-09 01:55:10 +0600 (Вс, 09 мар 2014)
Changed paths:
A /trunk/Main.txt
------------------------------------------------------------------------
r1 | Badger | 2014-03-09 01:52:47 +0600 (Вс, 09 мар 2014)
Changed paths:
A /branches
A /tags
A /trunk
------------------------------------------------------------------------
合并后在b2中记录存在修订版b8 必须表示没有
Merged via: r9
是合并到的良好迹象,但不属于分支修订版
如果您希望将合并更改从一个特定修订更改为另一个节点,则必须才能使用来自节点的修订版本(在您的情况下为b1)