自从我在 Microsoft 工作以来,我就有一个用于版本控制的本地 Source Depot 存储库。最近,我一直想迁移到 SVN 并随身携带更改历史记录,但似乎没有脚本可以迁移到 SVN。
由于有很多微软人在这里闲逛,我想我会在这里尝试。我基本上是在寻找一个可以为我处理事情的简单迁移脚本。
除此之外,欢迎任何其他建议让我上路。仅供参考,Source Depot 基于 Perforce,我尝试过 perforce 迁移工具但没有任何成功。
自从我在 Microsoft 工作以来,我就有一个用于版本控制的本地 Source Depot 存储库。最近,我一直想迁移到 SVN 并随身携带更改历史记录,但似乎没有脚本可以迁移到 SVN。
由于有很多微软人在这里闲逛,我想我会在这里尝试。我基本上是在寻找一个可以为我处理事情的简单迁移脚本。
除此之外,欢迎任何其他建议让我上路。仅供参考,Source Depot 基于 Perforce,我尝试过 perforce 迁移工具但没有任何成功。
Source Depot 是否有类似于 Perforce 的命令行?
大约一年前,我使用 Python 脚本通过几个步骤将我的家庭 SCC 仓库从 Perforce 迁移到了 SVN。虽然我不再有剧本,但它很简单,一下午就写好了。
基本上,脚本从第一个 perforce 更改列表开始,并按顺序运行它们。它将同步到每个更改列表并将文件拆分为编辑/添加/分支列表。然后将这些文件复制到 SVN 路径并使用适当的命令进行更新/添加/分支。然后将使用原始更改列表中的注释提交它们。
这给了我一个完整的 Perforce 仓库的 SVN 镜像,其中保留了所有历史记录/评论和分支信息。我只有一个用户(我!),但支持多个用户并不难。
我什至玩弄了让脚本更改系统时钟以使历史日期正确的想法,但这似乎不值得。对我来说,历史和分支/标签信息是最重要的。
不久前,我公司的一位承包商拜访了我们,参加了一次关于将所有源代码和版本历史从 MKS 迁移到 SVN 的信息会议。事实证明,实际上很难通过迁移过程保持版本历史完整,因为它们都有自己的存储历史的方法。我从那次访问中得到的是,有一些昂贵的第三方工具可以进行迁移,但它们很难找到,而且真的不是那么好。
我们最终决定,对于大多数项目,我们会咬紧牙关,只使用现有源创建新的源代码控制项目,丢失新软件的版本历史记录并将旧软件备份到磁盘上。
当然,我们的情况略有不同,因为我们的基本版本历史记录格式不同(我的是 MKS,你的是 SD)。但是,我不相信找到一个转换它的魔法脚本会很容易。我可能是错的,但无论如何,这就是我从那次会议中得到的。
也许我误解了您的问题,但是是什么阻止您从 Source Depot 全面检出代码,然后将其检入 Subversion?
除非您还打算导入已设置的任何用户/组控件,否则在这种情况下,签出/签入不会完全实现这一点。