我有两个分支:X和Y.我想用X(x1)中的等价物替换Y的子目录(y1)。
目前,我执行以下操作:将x1复制到Y,删除y1,将x1重命名(移动)到y1:
a) svn copy https://path/to/branches/X/x1 https://path/to/branches/Y/
b) svn delete https://path/to/branches/Y/y1
c) svn move https://path/to/branches/Y/x1 https://path/to/branches/Y/y1
我认为这很难看......
我怎么能以更聪明的方式做到这一点?
答案 0 :(得分:3)
如果您真的想要替换目录,可以通过两个操作来完成:
svn delete https://path/to/branches/Y/y1
svn copy https://path/to/branches/X/x1 https://path/to/branches/Y/y1
如果Y / y1实际上已经是X / y1的旧版本,则不应该一直替换它,而是将自上次合并以来的所有更改合并到其中。
答案 1 :(得分:1)
为什么不只是两个步骤:
a) svn delete https://path/to/branches/Y/y1
b) svn copy https://path/to/branches/X/x1 https://path/to/branches/Y/y1
答案 2 :(得分:1)
将分支Y检查到一份新的工作副本,并将自己放在那里。
svn co https://path/to/branches/Y Y
cd Y
合并将Y / y1转换为X / x1所需的更改为Y / y1
svn merge https://path/to/branches/Y/y1 https://path/to/branches/X/x1 y1
提交此
svn commit -m "Y/y1 now has the same contents as X/x1"
如果y1与x1的名称不同(不清楚您的描述),请重命名:
svn mv y1 x1
svn commit -m "Y/y1 now named Y/x1"
但是,你知道你的工作流程是否要求你做这样的子树合并(或者更糟糕的是其他海报提倡的那种树木手术),你可能做错了。
答案 3 :(得分:1)
移动分支的简单方法:
svn mv url1 url2 -m "commit log msg"