在SVN中存储二进制文件的方法

在SVN中存储二进制文件的方法,svn,binary,methods,storage,Svn,Binary,Methods,Storage,在SVN中存储二进制文件有不同的方法吗?如果是,它们是什么,以及我如何修改存储选项 我了解到在SVN中存储二进制文件有4种方法: 压缩焦油-进口-出口 焦油-进口-出口 进出口 高效办理登机手续 以下哪项对时间效率最有用?如何设置SVN以使用这些方法中的任何一种 谢谢, 奥德 我有许多小型二进制文件和一些大型文件。所有这些都是经常变化的。我目前正在研究CVS,并很快切换到SVN,我想知道存储二进制文件的方法 我阅读了性能调优Subversion(如上所述),发现它很有用,但没有给出示例,因此我

在SVN中存储二进制文件有不同的方法吗?如果是,它们是什么,以及我如何修改存储选项

我了解到在SVN中存储二进制文件有4种方法:

  • 压缩焦油-进口-出口
  • 焦油-进口-出口
  • 进出口
  • 高效办理登机手续
  • 以下哪项对时间效率最有用?如何设置SVN以使用这些方法中的任何一种

    谢谢, 奥德


    我有许多小型二进制文件和一些大型文件。所有这些都是经常变化的。我目前正在研究CVS,并很快切换到SVN,我想知道存储二进制文件的方法

    我阅读了性能调优Subversion(如上所述),发现它很有用,但没有给出示例,因此我不完全理解他建议的4种方法中的每一种


    我的基本问题是,默认值是否良好(它们是什么?),我首先考虑的是时间效率,然后是空间。谢谢:)

    您没有将Subversion设置为使用这些方法中的任何一种,而是指定将文件放入存储库时要使用的方法。说到“方法”,我不是指你提到的4种方法中的任何一种,而是指“导入”或“提交”,每次你想将文件的新版本存储到存储库中时,你都必须不断地告诉Subversion所选择的方法

    从这里的描述可以看出,为了使用“方法1”,压缩到tar,然后使用import,他们必须自己将所有二进制文件压缩到一个.tar文件中,然后使用Subversion的import命令将文件添加到存储库中

    还要注意的是,这里的注意事项是,“导入”命令将文件存储为新文件,而不是以前版本的增量,因此,如果对大文件进行的更改很少,则可能会节省时间,但不会节省空间

    Subversion本身只进行提交和导入。提交是对现有文件的新修订,存储为一系列增量(或新文件的第一个修订,不是),导入只是一个新文件。还有什么事你得自己做

    如果二进制文件只是偶尔更改,这可能值得进一步研究,但是如果它们定期更改,我建议使用Subversion作为常规,并使用commit命令

    另外请注意,对于二进制文件,典型的建议是,如果可能的话,将源代码存储到生成这些二进制文件的任何位置,而不是二进制文件,然后重新运行工具以再现实际的二进制文件。如果复制二进制文件需要花费时间或空间,只有这样,您才能存储有问题的二进制文件

    二进制文件的问题是比较起来并不好,因此,如果开发人员a和b都检索最新版本,然后开发人员a在开发人员b尝试执行相同操作之前提交新版本,则会发生某种类型的冲突。开发人员B可能别无选择,只能自己尝试找出更改


    编辑:让我强调一下提交和导入的含义

    主要区别在于,如果存储库中已经有文件,提交将尝试将工作副本中的文件与以前的存储库版本区分开来,并仅存储更改。为了解决这些差异,这需要时间和内存,但通常会在存储库中产生一个小的修订更改集。换句话说,Subversion服务器上的磁盘空间受到的影响将比使用IMPORT命令时小

    另一方面,“导入”将导入新文件,就像您刚刚给它一个新文件并说“忘记上一个文件,只存储此文件”,因此不会花费时间或内存来计算差异,但存储库中的结果更改集将更大。换句话说,Subversion服务器上的磁盘空间将受到比COMMIT命令更大的影响,但导入通常会运行得更快

    您想要强制执行的任何其他工作流都必须在Subversion之外执行。这包括操作系统中可用的TAR命令和压缩选项。如果您想使用“方法1”,您自己必须手动压缩要导入到单个.tar文件中的文件,然后再将其交给Subversion。你不能要求Subversion为你做这些。当然,您可以制作脚本文件,使过程在某种程度上自动化,但这仍然不是一个Subversion问题


    我将对此进行一些认真的测试,以确定这些收益是否真的值得您在Subversion工作流程上进行额外的工作。

    您能更详细地描述一下您的情况吗

    你有几个小的二进制文件一起改变吗?几个独立更改的大型二进制文件?您的文件经常更改吗


    你真的发现默认值不够好吗?我总是以和平常一样的方式添加二进制文件,并且发现它可以正常工作。与任何性能问题一样,除非您有充分的理由,否则我不会将问题复杂化。在这种情况下,请与我们分享这个理由。

    您基本上是说只有导入和提交两个选项?该导入可以选择导入压缩的tar文件(手动压缩)或常规文件?三个选项中哪一个是省时的?谢谢:)导入将导入您提供给它的任何文件,无论是原始文件、tar文件、gzip文件、zip文件、rar文件等等。也要承诺。不同之处在于,提交将尝试将文件与其以前的存储库版本区分开来,而导入则不会,因此速度会更快,但如果实际上与以前的版本有更改,则会占用更多空间,而不是全新的文件内容。我想我现在明白了。在visualvn I中