致力于svn的第三方库:最好签入多个文件或zip?
在将第三方库提交到源代码管理时,我通常将解压作为一个构建步骤作为归档来完成。我想这样的想法是,可能会涉及数千个文件,而且它们不需要更改,因此单独存储它们似乎会带来很大的开销 不幸的是,这种方法有时会带来麻烦,包括在进行完整构建时,开发人员必须等待解压的发生。有时依赖性检查(查看是否需要解压缩)由于任何原因都无法可靠地工作致力于svn的第三方库:最好签入多个文件或zip?,svn,Svn,在将第三方库提交到源代码管理时,我通常将解压作为一个构建步骤作为归档来完成。我想这样的想法是,可能会涉及数千个文件,而且它们不需要更改,因此单独存储它们似乎会带来很大的开销 不幸的是,这种方法有时会带来麻烦,包括在进行完整构建时,开发人员必须等待解压的发生。有时依赖性检查(查看是否需要解压缩)由于任何原因都无法可靠地工作 我在网上找不到任何关于向Subversion存储库添加大量文件(在我目前正在升级的一个库中,有上万个)是否有缺点的提及。除了占用更多的空间(超过1GB,而不足250MB),还有
我在网上找不到任何关于向Subversion存储库添加大量文件(在我目前正在升级的一个库中,有上万个)是否有缺点的提及。除了占用更多的空间(超过1GB,而不足250MB),还有什么原因让人们知道我不愿意将整个库作为单独的文件提交吗?这是Java还是C,还是什么类型的开发 无论哪种方式,您都可以使用来存储第三方库,而不是源代码管理。如果是Java,请将Maven或Ant与Ivy一起使用。如果是C或C++,使用WGET或CURL获取MaxFrm文件中的第三方库。要存储它们,可以使用Maven的deploy:deploy文件将它们放入存储库。或者,如果您使用Jenkins,您可以使用Jenkin的内置功能与Maven存储库对话,为您完成契约 这有几个优点:
- 您可以更好地跟踪版本编号。当第三方库签入存储库时,人们会忘记它是什么版本。例如,您将
1.2版签入存储库。一年后,你不记得是哪个版本了。其他人决定签入新版本的foo.so
。再一次,你开始失去你所拥有的一切。因为这是一个编译依赖项,所以您需要知道foo.so
- 即使这些是自生成的第三方依赖项(您有一个构建其他项目中使用的
)的项目),也最好将它们存储在像Artifactory这样的发布存储库中。同样,您可以跟踪版本控制foo.so
- 删除过时的第三方依赖项很容易。在Subversion中,即使对文件执行
,依赖项仍保留在存储库中。节省大量磁盘空间svn rm
- 您不必担心在构建中保存过时的第三方文件的依赖关系膨胀,因为您不知道是否需要它们。由于必须指定每个依赖项,因此开发人员更容易跟踪