Backstory :作为入门级Web开发人员找到了一份工作。当我开始时,主开发者离开了。对我负责。从未使用过SVN。盲目进入。
问题:
我一直遇到像
'svn://svn/svn/xxx/project_name/branches/dev@330' must be
ancestrally related to 'svn://svn/svn/xxx/project_name/trunk@326'
我开始新项目的过程是:
使用子文件夹在我的计算机上创建项目目录:
project_name/branches
project_name/branches/dev
project_name/tags
project_name/trunk
右键单击项目根目录,选择我的项目根目录,然后Add
将其添加到存储库
(以下所有内容都是我必须为当前项目做的事情,这对它们没有任何问题,但在合并时新项目中断了)
Commit
“dev”branch
Merge
“dev”进入“trunk”(合并所有修订版)* 在这里打破 * Commit
“trunk”svn up
等不熟悉SVN,我对此非常艰难。正如我所说,在现有项目上做3-6工作,但在新项目上,我在合并时遇到must be ancestrally related to
错误。 那么,我做错了什么?非常感谢所有任何帮助。
答案 0 :(得分:6)
[thatidiotguy] [1]可能没有通过主干副本创建。
如果在dev分支上使用svn log --verbose --stop-on-copy,则最早的条目应显示从中复制分支的位置。
TortoiseSVN的svn日志功能以相同的方式工作;复制停止是日志窗口中的一个复选框。
如果您没有从副本创建它,则无法合并它。
您需要重新创建开发分支并重新应用更改。
更新:通过“重新创建开发分支”,我的意思是创建一个新的分支进行开发,这是一个真正的svn副本(分支)离开主干。如果使用svn copy trunk / [application subfolder] branch / [application subfolder - branch of name]创建分支,svn将记录原始源版本。这允许将主干/基本版本中的更改智能合并到分支中(以修复缺陷,添加功能等) 复制完成后,您可以复制原始源中已更改的文件,并将其作为代码的正常更改提交。