vss2svn - Visual SourceSafe转换Subversion
vss2svn - Visual SourceSafe to Subversion 格式转换器
这是一个源代码库工具,能将Visual SourceSafe(VSS)存储库转换为Subversion 的dumpfile格式,以便VSS历史可以导入到版本库。
开发文档
这个工具的开发早已结束,但我决定把它放这里,也许其他人发现它有用。随意使用它,但是我不能保证我会接受拉要求(pull requests),因为我没有资源验证或测试你的代码。
我最初写它在Windows,但在Linux得到它并运行可能更容易。因为前者不能很好和Perl工作。C程序应当在两种平台都编译得很好。
最新的文档可以在谷歌代码维基找到。
它是如何工作的
这个工具不同于许多其他类似的工具之处是,使用它不需要安装微软VSS API。相反,我们组的无畏的开发者去反向工程VSS物理存储格式,并写一个C程序来解析那些文件并将结果输出到一个XML格式。
这个项目的另一半是一个可以读取XML输出并将其组装到subversion的dumpfile格式的Perl程序。dumpfile格式是完整的档案库,可以使用“svnadmin load”命令导入。
最终的结果是,这个工具经常甚至比微软的库提取历史做了更好的工作。不幸的是,VSS库是如此容易中断,任何在尺寸、时间、使用方面大一些的库,几乎可以保证至少部分损坏。历史库越久远,越有可能是不正确的。因此,一般的结果是,虽然这个工具经常从VSS获得真实代码历史时“好过大多数”,一些历史也会永远消失了。这是天性。也许,无论如何,切换到一个新的版本控制系统是一个重构您的代码库的好机会?你可能要考虑你的旧的历史迁移到Subversion 历史只有参考价值,然后开始进一步积极开发新的。
其他版本
不幸的是,“vss2svn”这个名字是相当通用的,至少还有另一个完全无关的同名程序版本工具服务于相同的目的。
这个工具多年来有不同的家。开放源代码的合作并不完全象GitHub支持一样好,你知道。以前的家包括:
•http://vss2svn.tigris.org/
•我建立在pumacode.org的个人TRAC/Subversion 网站(不到那里去;现在它由垃圾邮件运行)
•https://code.google.com/p/vss2svn/
在GitHub源代码应被视为“最新”的版本取代所有以前版本的代码库。