为什么不抹杀Subversion的一个重要特性?

几年来,我在等待Subversion发布“永久删除”(删除)功能。 我不愿意过渡到Subversion(来自Visual SourceSafe:p),因为我认为这是一个必不可少的特性,否则我会期望存储库的增长势不可挡。 但是,由于某种原因,该功能会一再重复推迟。 所以我开始想知道是否有一些其他功能或解决方法使得删除功能可有可无。

当你想缩小SVN中央存储库时,你会做什么?

示例1:我检查了一个大型第三方库,几周后我意识到它不适合我的需求。 我不希望它永久存储和备份大量数据。

示例2:存储库中有10个大型第三方库的10个版本,但我只使用最新版本。

示例3:我意外地检查了敏感信息(正如John所建议的那样)。

示例4:我意外地检查了一些永远不会放入存储库的大文件。


关于svn obliterate在Apache Subversion站点的问题票据上的讨论有相当多的讨论,其中大部分结束于2008年左右。似乎普遍认为这是一个很好的能力,虽然它的使用应该是罕见的。

有两个主要原因需要它。

首先,检查机密信息可能是一个问题。 根据存储库的机密性和暴露级别,将它留在那里,删除不一定是一种选择。

其次,检入大量不应检入的内容会大大增加存储库的大小。 现在磁盘空间一般都很便宜,但它并不是无限的,而且文件空间还有其他方面的问题。 如果需要通过网络连接发送存储库,那么这可能是或可能不重要的额外时间。 能够刻录包含整个存储库的CD-ROM或DVD-ROM可能具有真正的优势。

因此,这是一个有用的功能,目前通过转储,过滤和重新加载存储库完成。 根据我见过的报告,这很容易出错,速度可能很慢,并且需要关闭存储库。

显然,对于Subversion团队来说,这不是一个高优先级的功能,因为几年以来需要做的工作就是设计并实现它。 毕竟,它应该很少完成,并且有一个解决方法。 然而,任何想要在Subversion上做很多工作的人都可以提供一个补丁(如果质量足够好)可能会被实现。


它违反了源代码控制的含义。
源代码控制全部关于能够恢复以前的状态。 如果你永久删除一个文件,你将无法完成。

OTOH我不知道VSS,所以我可能误解了“永久删除”


反对它的明显原因是因为开发人员认为它会平衡使得SVN变得更糟 - 当你意外地剔除某些东西或你的/主干失踪时,你能够清理不需要的东西的快乐将被你的愤怒大大地压缩。

FogBugz具有完全相同的行为,在他们的情况下,我完全按照设计进行设计,从而保护用户不受他们自身的伤害。

链接地址: http://www.djcxy.com/p/37527.html

上一篇: Why isn't obliterate an essential feature of Subversion?

下一篇: Best practices for developing and using common libraries in version control?