Version control 为公司部署了版本控制系统,如何将其用于二进制文件

Version control 为公司部署了版本控制系统,如何将其用于二进制文件,version-control,Version Control,我的任务是为我们的小型开发团队(2-3人)设置Mercurial版本控制系统。以前没有版本控制系统,只有共享文件夹和多个副本。除了个人项目外,我在设置版本控制系统方面没有太多经验,只是碰巧是我们团队中版本控制系统方面最有经验的人。代码存储库位于centre server的共享文件夹中,顶层目录是客户端名称,下层目录是该客户端的项目名称 问题是我还没有弄清楚如何处理代码库中的二进制文件。据我所知,二进制文件不应该进行版本跟踪。但是,由于代码存储库集中在服务器上,二进制文件不也应该在这里吗?否则,对

我的任务是为我们的小型开发团队(2-3人)设置Mercurial版本控制系统。以前没有版本控制系统,只有共享文件夹和多个副本。除了个人项目外,我在设置版本控制系统方面没有太多经验,只是碰巧是我们团队中版本控制系统方面最有经验的人。代码存储库位于centre server的共享文件夹中,顶层目录是客户端名称,下层目录是该客户端的项目名称

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

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


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

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

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


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

如何从构建中输出二进制文件?我不想跟踪它们,但我确实想将它们保存在我的项目/存储库文件夹中,这样人们就可以访问存储库文件夹,可以简单地运行二进制文件来测试它,而不用自己构建它?我的意思是,它们是项目所必需的,但它们肯定会使我的存储库膨胀,而且我提交的次数越多,情况就会变得更糟。我不认为输出二进制文件应该在版本控制中,它们应该设置为tp“ignore”,以便版本控制系统使用。建议第三方DLL进行版本控制,因为它们是构建项目所必需的。嗯,我想我需要一个发布分支和一个开发分支?