我们即将开始一个新项目,我们客户的当前应用程序是在SourceSafe中进行.NET版本化。但是,我们在内部使用Subversion。这可能是“一次性”交付(完整的应用程序重写),因此他们可以轻松地从我们的仓库结账,然后导出,并导入他们的SourceSafe仓库。但是,我担心的是,如果我们进行一些编辑或进行未来的维护,那么管理就变得更加困难。有关如何最好地处理这个的任何想法?
编辑:
我不确定它是否有所作为,但客户端进行更改的可能性很小。如果他们这样做,那将是我们100%完成之后,这使得管理更容易。如果我们同时进行更改,那么我可能会建议我为他们的项目授予他们对我们的repo的写访问权限,并且我们以这种方式管理它。我试图进行前瞻性思考,因为他们很有可能希望我们回来并与他们一起做更多的工作。
答案 0 :(得分:3)
另一种选择是为他们提供对svn回购的访问权限(仅限他们的项目),并为他们提供支持,链接等。一旦他们看到了灯光,他们可能不想使用其他任何东西......
我想我会这样做,直到你必须做出关于ssafe的决定。也许在你做出决定之前它就会消失。
我过去确实有这方面的经验。出于某种原因,我们分包的公司在内部使用CVS,但SourceSafe用于面向外部客户端。我接管了这个项目并把它放到了svn中。承包商很满意。
编辑:
此外,可以设置主/从svn repo。不确定在这种情况下是否有帮助。
另一种可能性是询问他们是否会主持一个svn回购,如果你设置它并首先管理它。
总而言之,最好与客户交谈来解决这个问题。看看你能提出什么想法。维护两个ACTIVE回购不是一个好主意。
答案 1 :(得分:2)
我一直在研究VSS-> SVN迁移工具,其中一项任务是为在更新SVN存储库时提供支持,使其在特定日期之后进行任何更改(我必须这样做,因为我们有16 gig VSS DB,它需要闪烁的年龄来迁移大约300万个修订版)
因此,我制作了VSS数据库的快照副本,并使用它来导入,然后一段时间后,我迁移了自拍摄快照以来所做的所有更改。这似乎对您有用,因为您可以将客户端所做的更改导入其VSS DB。
代码在SVN仓库中发布,但尚未构建为包,因为您必须从SVN仓库下载文件并进行构建。它基于.NET,所以你应该对它感到满意。它还保留所有标签,作者和日期的更改。
它托管在CodePlex as VSS2SVN。
答案 2 :(得分:1)
我想知道是否有任何方法可以使用分布式版本控制系统来管理两个存储库之间的交互。我知道git可以使用svn,但我不确定sourcesafe。
答案 3 :(得分:1)
客户是否也会对程序进行更改?如果是这样,我会说你认为最好的是:从subversion中导出并将其放入源代码安全。然后,只要他们希望您进行更改,您可以导出(或检出或其他)他们所做的任何更改,并在subversion中对已检出版本进行更改(实际上只是复制到顶部)。它不漂亮,但你没有很多选择。您也可以尝试让他们向您发送他们所做的任何和所有更改。
为什么需要将代码保存在两个代码库中?