1

我正在寻找能够成功替代 Microsoft Visual SourceSafe 的版本控制软件。我花了很多时间研究这个主题,但最终没有找到合适的解决方案。为什么?因为 VSS 的共享文件似乎是一个独特的功能。

具体来说,共享文件是指映射到多个位置的单个文件。例如,当您想在不同项目中使用一个源代码文件时,只需将其拖放到您需要的任何项目目录中即可。然后有一个文件链接到几个目录。当 sombody 在这些项目中的任何一个中修改该文件时,所有其他人都会将其更新为其主要版本。

SVN 中的一个等效功能是 svn:externals,它可以通过两种方式共享文件:使用它们的头版本或使用明确选择的版本。但是,无论我选择哪一个,结果都与 VSS 不同。因此,当我将外部文件附加到项目的头部修订中时,它几乎就像在 VSS 中一样。但是,当我想获得项目的历史修订时,我总是获得外部文件的主要修订,而不是适当的历史修订。它看起来像一个错误,但也许 SVN 以这种方式工作是有原因的。第二个选项是在选定的修订中使用外部文件。但是当有人在任何地方修改它们时,必须在每个项目中手动更新这些文件。我们真的不想手动执行此操作。

塑料单片机是我检查的第二种解决方案。恕我直言,这个系统太棒了!直观而清晰的 GUI 和精彩的修订图,让您非常轻松地处理分支和合并。与 VSS 相比,这确实引起了我的注意。但是,让我们进入主题。Plastic 支持 Xlinks(符号链接),但只能使用它们链接目录,而不是文件。更重要的是,没有共享头部修订的选项(您必须明确选择特定的)。

让我问你那该怎么办。选择什么软件可以让我们的工作更有效率,同时又不会失去共享功能?为什么这么不受欢迎?在项目之间共享代码是否有不同的方法?

4

1 回答 1

1

恕我直言,每个文件到共享位置的链接令人困惑,我认为这解释了为什么大多数 SCM 选择采用允许在目录级别共享的范例(如果有的话)。除了您带来的 PlasticSCM 示例之外,我还拥有git将这种功能作为子模块提供的经验,再次要求您将共享文件放在单独的目录中,并强制共享部分(子模块)之间的层次关系不那么混乱以及使用它的项目。

不幸的是,您似乎爱上了一个很少需要或使用的功能。可能是您的需求如此独特。但是你应该仔细考虑你的需求是否确实是独一无二的,并且也许为了更主流的开发约定(在这种情况下,将共享文件放在单独的目录中)放弃它,这将允许你使用 state-最先进的工具。

于 2012-12-16T14:22:52.920 回答