4

自从我在 Microsoft 工作以来,我就有一个用于版本控制的本地 Source Depot 存储库。最近,我一直想迁移到 SVN 并随身携带更改历史记录,但似乎没有脚本可以迁移到 SVN。

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

除此之外,欢迎任何其他建议让我上路。仅供参考,Source Depot 基于 Perforce,我尝试过 perforce 迁移工具但没有任何成功。

4

3 回答 3

3

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

大约一年前,我使用 Python 脚本通过几个步骤将我的家庭 SCC 仓库从 Perforce 迁移到了 SVN。虽然我不再有剧本,但它很简单,一下午就写好了。

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

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

我什至玩弄了让脚本更改系统时钟以使历史日期正确的想法,但这似乎不值得。对我来说,历史和分支/标签信息是最重要的。

于 2009-02-02T21:07:15.437 回答
2

不久前,我公司的一位承包商拜访了我们,参加了一次关于将所有源代码和版本历史从 MKS 迁移到 SVN 的信息会议。事实证明,实际上很难通过迁移过程保持版本历史完整,因为它们都有自己的存储历史的方法。我从那次访问中得到的是,有一些昂贵的第三方工具可以进行迁移,但它们很难找到,而且真的不是那么好。

我们最终决定,对于大多数项目,我们会咬紧牙关,只使用现有源创建新的源代码控制项目,丢失新软件的版本历史记录并将旧软件备份到磁盘上。

当然,我们的情况略有不同,因为我们的基本版本历史记录格式不同(我的是 MKS,你的是 SD)。但是,我不相信找到一个转换它的魔法脚本会很容易。我可能是错的,但无论如何,这就是我从那次会议中得到的。

于 2009-02-02T20:46:03.513 回答
1

也许我误解了您的问题,但是是什么阻止您从 Source Depot 全面检出代码,然后将其检入 Subversion?

除非您还打算导入已设置的任何用户/组控件,否则在这种情况下,签出/签入不会完全实现这一点。

于 2009-02-02T20:39:46.707 回答