C# 将文件夹压缩到SVN?

C# 将文件夹压缩到SVN?,c#,svn,zip,C#,Svn,Zip,这听起来可能是个愚蠢的问题,但我只是想澄清一下。我已经压缩了一个文件夹并将其添加到我的SVN存储库中。这样做行吗?或者我应该上传解压后的文件夹吗 我只需要确定一下 如果要更改目录的内容,则应将其解压缩存储。将其保存在zip文件中会更快地耗尽服务器上的存储空间,就好像您将zip的每个版本存储为服务器上的一个单独文件一样 有一个很酷:归档文件中的每个文件都会占用一些字节段,并独立于所有其他文件进行压缩/解压缩。因此,如果您有一个100 MB的zip,并在其中修改两个文件,每个文件的大小为1 MB,

这听起来可能是个愚蠢的问题,但我只是想澄清一下。我已经压缩了一个文件夹并将其添加到我的SVN存储库中。这样做行吗?或者我应该上传解压后的文件夹吗


我只需要确定一下

如果要更改目录的内容,则应将其解压缩存储。将其保存在zip文件中会更快地耗尽服务器上的存储空间,就好像您将zip的每个版本存储为服务器上的一个单独文件一样


有一个很酷:归档文件中的每个文件都会占用一些字节段,并独立于所有其他文件进行压缩/解压缩。因此,如果您有一个100 MB的zip,并在其中修改两个文件,每个文件的大小为1 MB,那么新zip最多将有2 MB的新数据,其余98 MB很可能是旧zip某些部分的字节精确副本。因此,从理论上讲,可以将zip中的小更改表示为小增量。但在实践中存在许多问题

首先,您必须确保不重新压缩未更改的文件。如果您使用不同的程序、程序版本、压缩设置等从头开始制作第一个zip和第二个zip,则可以对未更改的文件进行稍微不同的压缩。结果,zip文件中的实际字节将有很大的差异,任何小增量的希望都将失去。更好的方法是使用第一个zip,并在其中添加/删除文件


然而,主要问题是SVN如何存储增量,SVN用于计算增量。如果给定无限内存,该算法完全能够检测zip文件中的相等块。问题是SVN使用内存有限的版本,窗口为。即使只是从文件中删除长度超过100KB的段,SVN的增量计算也会中断,文件的其余部分将简单地复制到增量中。最有可能的是,增量将占用整个文件所占用的空间。

如果要更改目录的内容,则应将其解压缩存储。将其保存在zip文件中会更快地耗尽服务器上的存储空间,就好像您将zip的每个版本存储为服务器上的一个单独文件一样


有一个很酷:归档文件中的每个文件都会占用一些字节段,并独立于所有其他文件进行压缩/解压缩。因此,如果您有一个100 MB的zip,并在其中修改两个文件,每个文件的大小为1 MB,那么新zip最多将有2 MB的新数据,其余98 MB很可能是旧zip某些部分的字节精确副本。因此,从理论上讲,可以将zip中的小更改表示为小增量。但在实践中存在许多问题

首先,您必须确保不重新压缩未更改的文件。如果您使用不同的程序、程序版本、压缩设置等从头开始制作第一个zip和第二个zip,则可以对未更改的文件进行稍微不同的压缩。结果,zip文件中的实际字节将有很大的差异,任何小增量的希望都将失去。更好的方法是使用第一个zip,并在其中添加/删除文件


然而,主要问题是SVN如何存储增量,SVN用于计算增量。如果给定无限内存,该算法完全能够检测zip文件中的相等块。问题是SVN使用内存有限的版本,窗口为。即使只是从文件中删除长度超过100KB的段,SVN的增量计算也会中断,文件的其余部分将简单地复制到增量中。最有可能的是,增量占用的空间与整个文件占用的空间一样大。

在源代码管理中存储zip文件本身并没有什么问题。zip文件是源文件的一部分吗?有什么原因不应该在源代码管理中吗?它是什么,为什么会在那里?我只是想把它压缩在一起,只是想确保另一端的人打开文件并提取它不会有任何问题。当然,你可以提交一个压缩文件夹。这是一种常见的文件格式,为什么会有人对它有问题呢?也就是说,您并没有试图像使用服务器上的存储一样使用SVN,对吗?您将其用于希望文件具有历史记录的某个项目,并且可以选择查看文件所做的更改?(只是为了确保作为一个故障保护,而不是暗示您这样做。)在源代码管理中存储zip文件并没有本质上的错误。zip文件是源文件的一部分吗?有什么原因不应该在源代码管理中吗?它是什么,为什么会在那里?我只是想把它压缩在一起,只是想确保另一端的人打开文件并提取它不会有任何问题。当然,你可以提交一个压缩文件夹。这是一种常见的文件格式,为什么会有人对它有问题呢?也就是说,您并没有试图像使用服务器上的存储一样使用SVN,对吗?您将其用于希望文件具有历史记录的某个项目,并且可以选择查看文件所做的更改?(只是为了确保作为故障保护,并不意味着你会这样做。)