我们正在寻找一个版本控制系统来更改我们当前的Source Safe系统。我们将它与Visual Studio一起使用。到目前为止我们已经失败了 - 主要原因是我们看到的所有替代方案都不支持VSS的一个或多个功能,特别是我们广泛使用的一个 - 文件共享!怎么了?
像Source Gear这样的替代品声称支持他们,但我必须告诉你他们做得很差。更不用说它们比Source Safe慢,而且还有更多错误。我们有哪些替代方案可以获取支持文件共享的版本系统?或者有没有理由不使用这样的功能?请分享您的经验并支持您的意见。
编辑:
按共享文件我的意思是我可以从任何共享它的项目中签出文件,进行一些更改,然后全部获得最新版本。在使用C ++项目甚至C#Web项目时非常有用。我希望能够共享一个文件,而无需为此创建另一个库。
答案 0 :(得分:5)
来自MSDN:
分享文件或项目
Visual SourceSafe有一个共享命令,允许共享文件或项目。有关命令的使用,请参见如何:共享项目。
当您请求文件共享时,Visual SourceSafe会在共享该文件的项目中的文件版本之间创建共享链接。当您将文件签入其中一个项目时,您的更改将自动签入所有共享项目。共享特定文件的所有项目都列在文件的“链接”选项卡中。
共享Visual SourceSafe项目时,在当前项目下创建一个全新的重复项目。新项目中的所有文件都与共享项目中的相应文件副本共享,其中一个文件的更改在签入Visual SourceSafe数据库期间反映在另一个文件中。
其他工具确实有类似的概念,但并不总是使用相同的名称或完全相同的语义。在我的头顶:
我倾向于避免使用它们,因为它表明我的项目存在其他一些问题。如果需要跨多个项目的资源,我将它们打包为一个库,并将我的其他项目设置为依赖于该工件(使用依赖管理工具,如Maven或Ivy来管理依赖项)
答案 1 :(得分:3)
在Subversion中,您可以使用svn:external属性共享整个文件夹(及其子文件夹)。
从版本1.6开始,您还可以share files。
在Git中,这些被称为“子模块” - 不确定它们是否适用于单个文件。
答案 2 :(得分:1)
这篇文章http://blogs.msdn.com/ericlee/archive/2006/07/20/sharing-files-in-team-foundation-server.aspx展示了如何使用Visual Studio和TFS完成同样的工作。
答案 3 :(得分:0)
在StarTeam中,您可以跨项目共享文件。
答案 4 :(得分:0)
如果这不是真正解决原始问题,我很抱歉,但根据您对“使用哪个版本控制系统”改变思维方式的意愿,我强烈建议您转移到像Mercurial或Git这样的分布式问题。 Windows资源管理器和Visual Studio都有插件。
对于VSS样式文件共享等特定功能,我建议设置一个像TeamCity这样的Continous Integration环境并对其进行适当配置。
一旦您的员工和服务器知道该怎么做,这一开始就是一条陡峭的曲线,但非常棒且节省时间。