Svn 使用源代码管理同步重介质文件夹的开销

Svn 使用源代码管理同步重介质文件夹的开销,svn,version-control,distribution,Svn,Version Control,Distribution,我正在考虑使用现有的远程连接的svn存储库基础设施作为同步媒体文件夹的方法 所谓媒体,我指的是大约1Tb的视频内容 使用SVN有什么缺点吗 传输协议对于传输大文件是否有效 仓库里有开销吗 谢谢我强烈建议您不要使用Subversion(或为源代码设计的任何版本控制系统)来执行此操作。Subversion可以处理二进制文件,但您无法获得合并、差异等功能,而这些功能正是使用Subversion之类的功能的主要原因。从技术上讲,这很可能奏效;然而,有更好的工具来完成这项工作 如果您所做的只是同步文件夹,

我正在考虑使用现有的远程连接的svn存储库基础设施作为同步媒体文件夹的方法

所谓媒体,我指的是大约1Tb的视频内容

使用SVN有什么缺点吗

传输协议对于传输大文件是否有效

仓库里有开销吗


谢谢

我强烈建议您不要使用Subversion(或为源代码设计的任何版本控制系统)来执行此操作。Subversion可以处理二进制文件,但您无法获得合并、差异等功能,而这些功能正是使用Subversion之类的功能的主要原因。从技术上讲,这很可能奏效;然而,有更好的工具来完成这项工作

如果您所做的只是同步文件夹,请尝试以下操作


如果需要的话,类似的东西可以为您提供版本控制功能。

正如我在评论中所说,SVN是关于源代码控制的。 它不是一个同步工具,即使你也可以使用它

也就是说,SVN可以很好地处理二进制文件(如媒体文件)。 当然,你不能得到一个二进制文件的差异,但它的存储相当不错

正如SVN手册所述:

请注意,文件是否为二进制文件并不影响数量 用于存储对该文件的更改的存储库空间的 影响客户端和服务器之间的通信量。储存 为了传输的目的,Subversion使用了一种有效的扩散方法 在二进制和文本文件上同样出色;这完全与我们无关 “svn diff”命令使用的扩散方法

但请记住,如果您只需要同步,您可能有比SVN更好的选择。 因此,在决定使用SVN之前,请尝试查看其他解决方案,例如,subversion客户端有大量开销。 对大型媒体文件使用subversion的主要问题是,标准客户端将文件的“原始”副本存储在本地工作区中,从而有效地将库的签出副本的大小增加了一倍。这是设计者的一个有意识的选择,对于源代码管理的标准subversion用例来说是好的,但对于大型二进制文件来说不是最佳的。有一次,有一些备用客户机没有这个问题——我最近没有看过

subversion服务器端通常存在开销/效率低下。 第二个问题是,如果存储压缩的二进制文件,文件内容中的一个小更改将产生完全不同的压缩结果,从而使subversions增量存储策略变得无用。请注意,MP3和许多视频格式都是压缩的,但压缩是在块上进行的。因此,当您看到这个问题在起作用时——一个小的更改将影响整个块——它不一定会影响整个文件

供应链管理工具中的假设 我不同意SCM工具对于您正在尝试做的事情来说一定是错误的选择,但是大多数工具的设计都没有考虑到这一点,因此存在问题。对于我的媒体需求,工作流更接近于SCM工具,而不是rsync、unison等同步工具。然而,SCM中的一些基本假设对于大型文件并不适用

如果您有一个对文件进行大量更改的工作流,您可能会非常积极地清除旧版本的数据。大多数SCM工具的设计理念是旧数据极其重要,而且旧数据的存储相对便宜(文件小且压缩良好)。因此,尽管我所熟悉的所有SCM工具(很多!)都有实现这一点的方法,但这通常(有意地)并不容易

结论 总之,你可以选择令人不快的选项。subversion等SCM工具对存储空间和保留期有一些假设,这些假设可以快速满足存储需求,但文件同步工具通常不支持大多数人在媒体库中真正想要的工作流

何时使用Subversion 如果您不介意将客户端设备上使用的磁盘空间增加一倍,并且服务器的磁盘空间增加了2倍(扩展空间),并且您希望很少更改您的文件(例如,只更改MP3标签或其他类似内容),那么subversion可能适合您


如果您正在限制存储空间(SSD?),那么“开箱即用”subversion可能不是您想要的,尽管您仍然可以将其作为解决方案的一部分使用。

SVN不是同步解决方案。这是一个源代码管理解决方案。如果您需要同步,请使用同步工具。其想法可能是将其用作同步工具,同时也可以获得一些不错的版本控制。整个问题是想知道这样的使用是否有一点意义。感谢您提供的信息和解释谢谢,这正好回答了我的问题。>但是对于存储来说,这还可以。你在开玩笑吗?svn存储二进制文件的每一个该死的版本。这意味着在两次提交之后,svn存储库将不可逆转地膨胀。不过,它将不需要提交。