为公司部署了版本控制系统,如何将其与二进制文件一起使用

时间:2011-07-21 00:11:42

标签: version-control

我的任务是为我们的小型开发团队(2-3人)设置Mercurial版本控制系统。之前没有版本控制系统,只有共享文件夹和多份副本。除了个人项目之外,我没有太多设置版本控制系统的经验,恰好是我们团队中版本控制系统最有经验的人。代码存储库位于中心服务器的共享文件夹中,顶级目录是客户端名称,下一级是该客户端的项目名称。

问题是我还没弄清楚如何在我们的代码库中处理二进制文件。根据我的阅读,二进制文件不应该被版本跟踪。但由于代码存储库集中在服务器上,这里的二进制文件不应该也是如此吗?否则,对于像图像文件和第三方dll文件这样的东西,从中心服务器克隆时,项目将无法正常构建或运行。此外,Mercurial Web界面还有一个很好的功能,您可以将整个源包下载为ZIP或BZ2压缩文件,无需必要的二进制文件,下载项目将无法运行或编译。

我认为除了临时文件和用于调试目的的文件之外,版本控制系统的解决方案包括 ,但除此之外那个,应该包含大多数二进制文件?由于版本控制系统的限制,我认为他们没有办法只跟踪二进制文件的更改集,所以我想我们必须为版本控制系统处理它。

编辑:在对如何设置版本控制存储库进行更多研究之后,更推荐的使用版本控制的方法是“存储手动创建的所有内容,而不包含其他内容”,引用自Eric Sink。

2 个答案:

答案 0 :(得分:1)

项目相关或要求的二进制文件必须包含在版本控制中,可以跟踪它们。版本控制唯一不能对二进制文件做的就是比较和合并。

答案 1 :(得分:1)

您希望版本控制您无法从版本控制中的其他内容生成的任何内容。这将是您的源文件,以及您的程序包所依赖的第三方库,工具等实例。

从您的项目构建的二进制文件完全不同,应该被视为不同类型的工件。如果您想要一个易于测试的易于下载的存档,请调整您的构建过程以提供它作为目标:它应该构建代码,然后将源和构建的二进制文件压缩到所需的单个文件中。