您没有设置颠覆使用任何的这些方法,您可以指定将文件复制到存储库时使用的方法。通过“方法”,我不是指你提到的4中的任何一个,而只是“导入”或“提交”,并且你必须告诉Subversion每次你想要存储新的方法时选择的方法将该文件修改为存储库。
参见Performance tuning Subversion。
正如你可以从描述中看到的那样,为了使用“方法1”,压缩到tar然后使用导入,他们必须自己将所有的二进制文件压缩成.tar文件,然后使用导入命令Subversion将文件添加到存储库中。
另外需要注意的是,导入命令将文件存储为新文件,而不是作为之前版本的增量,因此,如果对大文件进行少量更改,它可能会比较省时,但不会节省空间承诺。
Subversion本身只提交和导入。提交是对现有文件的新修订,作为一系列增量(或新文件的第一个修订版本)存储,而导入只是一个新文件。除此之外,你必须自己做。
如果二进制文件现在才再变,这可能是值得期待更进,但如果是定期更换,我只是使用Subversion为正常,commit命令提示。
另请注意,关于二进制文件的典型建议是,如果可能的话,您代替二进制文件将源代码存储到生成这些二进制文件的任何内容,然后重新运行这些工具以重新生成实际的二进制文件。如果二进制文件需要时间或空间来重现,那么只有在这之后您才会保存有问题的二进制文件。
二进制文件的问题并不是真的很好比较,因此如果开发人员a和b都检索最新版本,然后开发人员a在开发人员b尝试做同样的事情之前提交新的修订,某种类型的冲突将发生。开发商B可能没有选择,只能尝试自己找出变化。
编辑:我想强调,我的意思COMMIT和导入。
的主要区别是,提交会,假设你已经在仓库中的文件已经,尝试diff的文件中对以前的版本库工作拷贝,只存储改变。这需要时间和内存,以便找出这些差异,但通常会导致版本库中的修订版本更改。换句话说,Subversion服务器上的磁盘空间比IMPORT命令的影响要小。
另一方面,IMPORT将导入新文件,就好像您刚给它一个新文件并且说“忘记前一个,只是存储此文件”,因此不会花费时间或内存找出差异,但是由此产生的变更集会更大。换句话说,Subversion服务器上的磁盘空间将比COMMIT命令受到的影响更大,但IMPORT的运行速度通常要快得多。
要施加任何其他的工作流程有颠覆之外的工作要做。这包括操作系统中可用的TAR命令和压缩选项。如果你想使用“方法1”,你自己必须手动压缩你想要导入的文件到一个单一的.tar文件,然后再提交给Subversion。你不能要求Subversion为你做这些。你当然可以创建脚本文件来使这个过程自动化一些,但是,这仍然不是一个Subversion问题。
我会做这个一些严重的测试,以找出是否收益实际上是值得额外的工作,你会强加给你的Subversion工作流程。
你基本上说只有2个选项是IMPORT和COMMIT? 并且导入可以选择导入压缩的tar文件(压缩manualy)还是常规文件? 哪一个是时间效率? 谢谢:) – Oded 2009-07-20 07:32:46