0

我研究了如何在没有主干的情况下在现有 svn 存储库中创建主干目录并全部移动,它可能适用,但是,我有一个“主干”,但是开发人员(高级开发人员)导入项目的方式到 svn repos 可能会提供值得回顾的差异。

看起来,查看日志,开发人员在本地创建了一个 svn 树,一个trunk/branches/tags目录,创建了目录中的所有文件branches,然后在初始导入时svn,提交树干和标签作为分支提交的一部分。

这意味着没有副本到分支的历史记录。近乎保真的日志是:

% cd work
% mkdir -p project/trunk project/branches project/tags
% cd project/branches
... begin a bunch of work on a java service v1.0
... happy lets import to svn
% cd ..
% pwd project
% svn import -m"Initial import"
A branches
A branches/file-n
A branches/file-n ...
A tags
A trunk
Sending...
Committed rn
% svn mv $repos/project $repos/project_name
...
Committed rn

所以svn merge在这里真的行不通。trunk是初始提交的一部分,历史并没有真正允许干净的合并。

我可以使用上面的复制和提交建议吗?或者在这种情况下还有其他必要的方法吗?

4

1 回答 1

0

我在 SO 结合了几件事解决了这个问题。

最终,搬家对我们组织的构建过程来说是行不通的。这将使分支历史记录保留在主干上,但使分支为空。我们的构建不会喜欢这样。

相反,我将文件复制到主干目录,.svn当然没有目录,通过svn export并提交它们。

现在,有人可能会说,你只是失去了历史。我不太确定。分支的历史仍然存在,并且从主干创建了一个新分支。前一个分支保持活动状态,并且可以在进程允许、标记 EOL 等情况下退役。

欢迎反馈。

于 2010-11-09T12:47:10.180 回答