如何让Subversion只保留文件的最新版本?

13
我在存储库中有一个大文件,不能进行文本合并,我不需要多版本控制(例如PPT)。 我想将其保留在存储库中以备份和与多个人共享,但我不希望存储库的大小因为每次更改都保留一份重复副本而变得庞大。 在Subversion存储库中,是否有一种指定此行为的方法?
谢谢!

1
我想说的是,我认为这个问题比许多评论者所表明的更值得探讨。当然,Subversion 的目的不仅仅是感受文件的最新版本 - 但一致性也是有价值的... - philsquared
1
提交者表示他们希望将这些文件与其他版本的文件放在一起。我也可以想象一种混合情况,您不介意拥有有限的历史记录,但在多次修订或存储阈值后具有自动清除选项。这可能会很有用。 - philsquared
我想知道是否有一种替代方法,可以使用一些 SVN 钩子来自动检出/更新时从另一个位置检索文件? - Zoredache
感谢大家的帮助。这确实是要和其他版本控制文件一起保存在仓库中的,但有些文件太大了,备份每个版本并不经济。但对于许多文件类型来说,二进制差异应该可以节省大部分开销。 - bsofman
6个回答

8
这在Subversion中是不可能的。然而:Subversion会将对此文件的更改以二进制差异的形式保存在仓库中,因此根据您所做的更改类型,它不会消耗太多额外空间。

换句话说,当对文件进行版本控制时,只会添加更改内容,而不是文件的完整副本。 - Trevor Bramble

2
你做不到。Subversion 旨在保留文件的不同版本。毕竟它是一个版本控制系统。
也许只需不要将其放入 Subversion,而是使用 rsync 进行备份或共享。

0

你不能这样做 - 这是正确的。

如果一个文件没有改变,那么只会存储一个版本。如果一个文件发生了改变,那么使用任何形式的版本控制的目的肯定是为了能够检索早期版本。现在可能看起来你永远不想这样做,但未来某个时候你可能会想要检索它。

如果空间是问题,那就买一个更大的硬盘或升级你的计划。从长远来看,这将是值得的。


我不完全同意。在家里,我有一个不同但有些可比的安排,我用Time Machine备份iMovie文件。每当我对一个iMovie文件进行编辑时,整个文件都会被复制 - 每个文件大约5-10 GB!我的备份磁盘很快就会填满。 - philsquared
这并不是完全相同的情况,因为在使用版本控制时,你会在完成修改后提交更改。对于大型(媒体)文件的版本控制几乎是一门独立的学科,我不确定是否应该使用Subversion来处理它。 - Richard Harrison

0

另一种选择可能是存储符号链接,然后将文件托管在网络共享上。


0

你可能在使用错误的工具来完成这项工作。


0

我简直不敢相信我会这么说,但是MS Visual Source Safe确实有这个功能。然而,由于太多原因,我不建议使用MS-VSS。主要的两个原因是不稳定问题和几乎不可能使用分支(虽然官方存在此选项,但实际上并不好用)。


最初的问题是关于Subversion的。 - Starkey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接