5

背景故事:得到了一份入门级 Web 开发人员的工作。当我开始时,首席开发人员就离开了。一切责任在我。没用过SVN。盲入。

问题
我不断收到类似的错误

'svn://svn/svn/xxx/project_name/branches/dev@330' must be
ancestrally related to 'svn://svn/svn/xxx/project_name/trunk@326'

我开始新项目的过程是:

  1. 在我的计算机上为项目创建一个目录,其中包含子文件夹:
    project_name/branches
    project_name/branches/dev
    project_name/tags
    project_name/trunk

  2. 右键单击项目根目录,选择我的项目根目录,并将Add其添加到存储库

    (以下是我必须为当前项目做的事情,这在他们中没有问题,但在合并时会中断新项目)

  3. Commit“开发”分支

  4. Merge“dev”到“trunk”(合并所有修订版)* BREAKS HERE *
  5. Commit“树干”
  6. svn up, ETC

不熟悉 SVN,我对此感到非常艰难。正如我所说,在现有项目上做 3-6 是可行的,但在新项目上,我must be ancestrally related to在合并时遇到错误。那么,我做错了什么?非常感谢 所有和任何帮助。

4

1 回答 1

7

[thatidiotguy][1] 关于不通过主干副本创建可能是正确的。

如果你在 dev 分支上使用 svn log --verbose --stop-on-copy,最早的条目应该显示你从哪里复制分支。

TortoiseSVN 的 svn log 函数的工作方式相同;复制时停止是日志窗口中的一个复选框。

如果您不是从副本创建的,则无法将其合并回来。

您需要重新创建 dev 分支并重新应用您的更改。

更新:通过“重新创建 dev 分支”,我的意思是为开发创建一个新分支,它是主干的实际 svn 副本(分支)。如果使用 svn copy trunk/[application subfolder] branch/[application subfolder - name of branch] 创建分支,svn 将记录原始源版本。这允许将主干/基础版本中的更改智能合并到分支中(以修复缺陷、添加功能等)。一旦复制完成,您可以从原始源复制更改的文件,并将它们作为正常更改提交到代码。

如何在颠覆中替换分支?

https://stackoverflow.com/users/821722/thatidiotguy

于 2014-03-05T17:53:49.057 回答