假设人们一直在使用主干和Subversion存储库的分支.我想丢弃主干上的任何更改,并将其替换为分支的副本.
正如另一个问题所示,我可以移动或移除主干,然后将分支复制到主干.但随后树干的历史被分支的历史所取代.如果我想保留行李箱的历史怎么办?
我认为我想要的就是合并,但是忽略了目的地的变化,而只是用源代替.我将如何在Subversion中执行此操作?这被认为是好习惯吗?
SiB*_*SiB 36
虽然它是一个相当古老的线程,但仍然分享我的经验
我们最近为我们的一个项目做了这个,并遵循以下指导原则:
svn copy <repos/trunk> <repos/tag/old_trunk> -m "copied old trunk as tag"
svn delete <repos/trunk> -m "deleted trunk temporarily"
svn copy <repos/branch/new_fetaure_branch> <repos/trunk> -m "placed new trunk with features"
Run Code Online (Sandbox Code Playgroud)
执行这些步骤后,主干历史记录保持不变,并将新功能分支替换为主干.
合并从分支到主干的所有更改,然后解决所有冲突
svn resolve path --accept theirs-full
Run Code Online (Sandbox Code Playgroud)
或者,您可以告诉合并这样做:
svn merge -rX:HEAD url/of/branch trunk\wc --accept theirs-full
Run Code Online (Sandbox Code Playgroud)
经过这样的合并后,您将获得一个与分支上的工作副本类似的工作副本。您所要做的就是提交该主干的工作副本。