首页 文章

使用SVN中项目的当前Trunk版本替换Branched项目

提问于
浏览
0

我有\ trunk \ root \,其中包含文件夹ProjectA,ProjectB等 . 我创建了root分支 - > \ branches \ task \ root \

现在我对包括ProjectB在内的任务项目进行了大量更改 .

但是\ trunk \ root \ ProjectB也转移到了使task \ Root \ ProjectB中的所有更改都冗余的点 .

我想用\ trunk \ root \ ProjectB的内容完全替换\ branches \ task \ root \ ProjectB的内容 . 没有合并只是让任务版本ProjectB与trunk版本相同 . 请注意,当将任务重新合并到trunk时我不希望在ProjectB中发生任何奇怪的事情,SVN应该只看到它是ProjectB中现在的旧版本并且不会更改其中的任何内容 .

任何人都可以通过使用TortoiseSVN来实现这一目标,引导一个像我这样的SVN(也恰好是一个完整的CLI) .

4 回答

  • 3
    • 删除分支上的当前ProjectB,在svn repo上执行此操作

    • 将主干ProjectB再次复制到该分支位置(以前是ProjectB) .

    • 还原,或者更好的是,重新检查ProjectB .

    那就是如果你没有失去历史 .

    将保留历史记录的另一种方法 - 但这将使用Eclipse IDE

    • 从主干结帐ProjectB

    • 从分支机构检出ProjectB(到Eclipse中的另一个项目)

    • 比较两个版本的ProjectB,并将Trunk Project B中的所有更改引入分支ProjectB

    • Checkin Branch Project B

  • 0
    • Switch 工作副本到 /branches/task/root/ProjectB (或 checkout 来自此URL的新WC)

    • 右键单击并选择 Merge

    • 选择 Merge two different trees

    • 来自: /branches/task/root/ProjectB

    • 收件人: /trunk/root/ProjectB

    • 将其他选项保留为默认值,然后单击 Merge (或 Test merge

    • 通过选择文件的中继版本来解决所有冲突

    这将带来必要的更改,使您的分支与主干相同 . 然后你可以提交 .

  • 3

    在Tortoise中您可以右键单击并执行相当于“svn delete”的操作,即删除要杀死的分支 .

    然后你需要做一个Tortoise副本并放入新的路径 .

  • 0

    通常,您应该定期将主干中所做的更改重新集成到分支中,以避免出现这种情况 .

    为什么不保留以前的分支,而是改为新分支?在结构中使用版本是很常见的,如:

    branches/task/version1.0
    branches/task/version2.0
    tags/task/version1.0
    tags/task/version2.0
    trunk
    

    要使用TortoiseSVN执行此操作,请移动您的分支:

    • 打开repo-browser(上下文菜单, TortoiseSVN - > repo-browser

    • 创建branches / task / version1.0目录( Create folder on task)

    • 将分支/任务重命名为branches / task / version1.0( Rename on task)

    然后你可以正常进行:

    • (签出的中继目录上的上下文菜单) TortoiseSVN - > Branch/Tag

    • 指定新分支的 To URL (branches / task / version2.0)

    • 指定是否要从工作副本或其他地方创建新分支(我强烈建议先提交并从HEAD分支)

    (或者您可以使用repo-browser并从主干执行 Copy to

    当工具警告你时,你仍然需要切换:

    • (同一目录下的上下文菜单) TortoiseSVN - > Switch

    • 指定新分支的 To URL (branches / task / version2.0)

    你会有更清洁的东西 .

    如果你选择删除分支,你可以通过指定要合并的修订范围(其中一个字段用TortoiseSVN填写)来避免混淆 . 确保排除与已删除分支相关的任何内容 . 但说实话,我会避免这种情况 .

相关问题