2010-11-08 43 views
0

我看了how to create trunk directory in existing svn repo without a trunk and move all,它可能适用,但是,我有一个“主干”,但开发人员,在那个高级的开发人员,将项目导入到svn回购的方式可能会提供值得回顾的差异。svn导入混乱,没有任何东西

它的出现,查看日志,该开发商在本地创建一个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是初始提交的一部分,历史不是真的允许一个干净的合并。

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

+1

这可能是我错过了一些东西,但它听起来像你的目标是将所有从/ branches/branch1/file1等移到/ trunk/file1等。似乎像svn移动将解决这个问题... – ThatBlairGuy 2010-11-08 19:52:08

+0

是,不是。没有树干上的历史,我不能只是'svn'移动到树干。这会使分支的历史记录变为主干,但将分支留空。不幸的是,*我们的*构建“流程”会对此产生反感。尽管我做了“解决”。也许不是基于建议,但是它完成了我们的组织可以接受的事情:将文件复制到主干,提交和分支以发布新版本。 – javafueled 2010-11-09 11:30:00

回答

0

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

最终,此举不会对我们组织的构建过程起作用。这可以将分支历史记录保留在主干上,但将分支留空。我们的构建不会喜欢这样的。

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

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

反馈欢迎。