3

我们使用的是 SVN 1.8,我也在使用 Tortoise SVN 1.8。

主要代码位于 /project/trunk。我将做一个很大的改变,所以我在其中创建了一个分支,/project/branches/x它是/project/trunk.

作为更改的一部分,我需要重新排列目录结构以处理多个客户端。目前主干看起来像:

/project/trunk/process/xyz/file1.xml
/project/trunk/process/xyz/file2.xml

我想将结构更改为更像:

/project/trunk/process/xyz/client1/file1.xml
/project/trunk/process/xyz/client1/file2.xml

我尝试右键拖动到新文件夹并使用上下文菜单执行 SVN Move Here。当我在分支中工作时,我需要对主干中的 file1.xml 进行更改以解决生产问题。我希望在我的分支中进行更改,但是当我尝试在 Tortoise SVN 中进行合并时,由于本地文件丢失,它出现了冲突。

这些选项只是给了我解决、推迟或中止的选项。将更改从/trunk/process/xyz/file1.xmlinto的最佳方法是什么/trunk/process/xyz/client1/file1.xml

我是 SVN 的新手,所以请善待 :)

4

1 回答 1

1

好吧,你是 SVN 中“重构地狱”的受害者——这仍然是一个大问题

你至少有两个选择

  • 合并(为了消除树冲突)不是树(整体/trunk进入/branches/x),而是单个文件,file1.xml在你的情况下。
    • 在分支的WC中,为单个文件选择“合并”,而不是父文件夹,并将主干file1.xml作为合并源。
    • 对所有(移动的)具有树冲突的文件重复这些合并
  • 至少迁移到 Mercurial 进行重构
    • (安装 Mercurial /TortoiseHG/)
    • 启用(与 THG 3.0 捆绑)hgsubversion 扩展
    • 将 SVN 存储库克隆到 Mercurial 存储库中
    • 重构、合并、提交到本地 HG
    • (因为无法将合并集推回 Subversion)Mercurial 存储库的存档提示到未版本化的文件中,该文件必须替换您的 Subversion 存储库的 WC 并提交此更改状态(您将在 Subversion 的此修订中获得损坏的历史记录)
    • 返回使用 Subversion 存储库和重构代码
于 2014-05-29T20:53:10.983 回答