2009-01-29 125 views
4

自从我在微软工作以来,我有一个本地Source Depot版本控制存储库。最近,我一直想迁移到SVN,并与我一起改变历史,但似乎没有脚本迁移到SVN。从源代码库迁移到SVN

由于有很多微软公司在这里闲逛,我以为我会在这里尝试。我基本上是在寻找一个简单的迁移脚本来为我处理事情。

除此之外,欢迎任何其他劝告让我走。仅供参考,Source Depot基于Perforce,并且我已经尝试过执行迁移tools,但没有取得任何成功。

回答

3

Source Depot是否有类似于Perforce的命令行?

大约一年前,我使用Python脚本在几步之内将我的SCC库从Perforce移到SVN。虽然我不再有脚本,但它非常简单,并在一个下午写完。

基本上,脚本从第一个perforce更改列表开始,然后按顺序遍历它们。它会同步到每个更改列表并将文件分成编辑/添加/分支列表。这些文件将被复制到SVN路径,并使用适当的命令更新/添加/分支。然后他们会使用原始更改列表中的评论进行提交。

这给了我一个完整的我的Perforce软件仓库的SVN镜像,它保留了所有的历史/评论和分支信息。我只有一个用户(我!),但支持多个用户并不困难。

我甚至想到让脚本改变系统时钟,以便历史日期是正确的,但这似乎不值得。对我而言,历史和分支/标签信息是最重要的。

1

也许我误解了你的问题,但是什么阻止你从源代码库完成代码检查,然后将它检入Subversion?

除非您还意味着要导入已设置的任何用户/组控件,在这种情况下,检出/检入无法完全实现该功能。

+1

他想保留更改历史记录。 – Malfist 2009-02-02 20:42:24

+0

我想,或许正确地(如果我错了,请纠正我)每个结帐都包含变更记录的元文件?也许这只是我在工作中使用的源代码控制工具(或配置) – warren 2009-02-02 20:51:39

2

我的公司有一个承包商访问我们的信息会议,回来一下从MKS迁移到SVN的所有源代码和版本历史。事实证明,通过迁移过程保持版本历史记录实际上非常困难,因为它们都有自己的存储历史记录的方法。我从那次访问中拿走的是,有一些昂贵的第三方工具可以进行迁移,但是很难找到,实际上并不是那么好。

我们最终决定,对于大多数项目,我们会咬紧牙关,只用现有的源代码创建新的源代码管理项目,丢失新软件的版本历史记录并将旧版本保留在磁盘上。当然,我们的情况有所不同,因为我们的基础版本历史记录格式不同(我的是MKS,你的是SD)。但是,我不相信它会很容易找到一个用于转换它的魔法脚本。我可能是错的,但这就是我从那次会议中得到的结果,无论如何。