一些年来,我等着颠复要素的"永久删除"(消灭)的功能。我毫不犹豫地使过渡的颠复(来自些章:p),因为我认为这是一个必不可少的要素,否则,我期望的储存库增长unstopably.然而,由于种种原因或其他特征被推迟了一遍又一遍。所以我开始想知道是否有其他一些功能或者解决方法,这使得消灭的功能可有可无的。

你是做什么的时候你想要收缩SVN的中央储存库的?

例1:我 检查一个大型的第三方图书馆, 和几个星期之后我意识到这不是适合我的需要。我不想要那个存储和备份,大量的数据,直到永远。

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

例3:我意外在检查的敏感信息的(作为建议通过 约翰).

例4:我不小心检查,在一些大的文件从来就不是放在储存库中。

有帮助吗?

解决方案

有相当数量的讨论 svn obliterate 关于该问题的票 Apache颠复站点, 大部分结束关于2008年。似乎有一般协议,这是一个很好的能力,尽管它的使用应当是罕见的。

主要有两个原因,想要它。

首先,检查在机密信息可能是一个问题。把它留在那里,删除,不一定是一个选项,根据级别的保密性和接触储存库。

第二,检查了大量的东西,不应该检查可以极大地增大存储库。磁盘空间的一般廉价的现在,但它并不是无限的,而且还有其他的方法文件的空间可以的问题。如果有必要发送一个储存库过一个网络连接,这是额外的时间,这可能或不可能是重要的。有可能是真正的优点能够燃烧的CD-ROM光盘或DVD-ROM,其中包含整个储存库中。

因此,这是一个有用的能力,这是目前所做的倾销、筛选和重新装载的储存库。这是容易出错根据报告我已经看到,可以是缓慢的,需要关闭的储存库。

显然,这不是一个高优先级的特征为的颠复团队,给予什么需要好几年是有人要做的工作来设计和实施。毕竟,这应该被做得很少,并且有是一个解决办法。然而,任何想要做很多的工作颠复可以提供一个补丁会(如果足够好质量)的可能被实施。

其他提示

它违反了义的源的控制。
源控制所有关于能够恢复以前的状态。如果你删除的文件永久你就不可以。

另一方面我不知道VSS所以我可能会被误解的"永久删除"

显而易见的原因反对它,是因为开发者认为它将平衡作SVN更糟糕-的幸福,你觉得能修剪联合国需要的东西将大大相形见绌你的愤怒当你意外地抹杀的东西和你的/干失踪。

FogBugz具有完全相同的行为,并在他们的情况下,它完全是通过设计,我认为,保护用户从自己。

消灭侵犯的版本控制的原则,你想拥有的。要么你就不会拯救任何空间或以前的标签将成为打破。你就不能够回到一个真正的先前版本,如果你曾经冲掉任何文件。

作为你的意见有关存储库不断增长...任何储存库将增长的大小线性随时间的变化。这是整点的一个源控制系统。如果你不需要能够追踪以前的版本,那么为什么不只是坚持一个共用文件夹的地方吗?

引述 颠复抹杀,被遗忘的特征, 有三个组成部分的问题, 的问题, , 的原因解决方案.因为你开始与该问题的解决方案,我将开始。

解决方案

如你所注意到的,没有很好的解决方案。特别是,如果你正在处理一个大企业存储库,因为方案变得更加困难更大的回购协议获得。有一个叫做 甩/过滤器 通过它可以清除你的回购的东西你不想的,但它不是那么容易使用,不能快速和不力更生。

已经有一个 小小的努力 (按照线)上svn队得到抹杀特征在有2008年以后,但这种努力死了一个沉默的死亡。

的问题

这篇文章中,我提到在启动实际上有一个好名单的使用情况将需要一个消灭的命令,并在 516问题线 开发实际承认它的价值。

可惜的是,它似乎太晚了现在;真正的原因,它从来没有加入之后,是现在就几乎不可能实施它,因为它挂钩到码在最基本级别(也见 小小的努力 链接受解决方案)。

常见问题的条目:

订正案是不可改变的树木,建立在另一个。除了修订,从历史将会造成多米诺骨牌效应,创造混乱的所有随后的修订并可能使无效的所有工作的副本。

的原因

问题是,最初的抹杀特征被驳回,因为它不符合该原则的真正的版本控制。

再次从 常见问题的条目:

我怎么完全删除文件的储存库的历史?有特殊情况下,你可能想要消灭所有证据的文件或提交。(也许有人不小心承诺的一个机密文件。) 这不是那么容易的, 因为颠复是特意设计的永远不要丢失信息.

然而

我已经与SVN为一个很大的客户现在有更大的团队和更大的项目,基本上从来没有一个真正的问题。是的使用情况所提到的保证抹杀特征,但到目前为止我不认为这是一个问题,你得一遍又一遍你到处走。当然,这个特定的问题是,你只犯了一个错误一次和它不能被撤销正确。

因为删除的数据储存库中断的基本前提源的控制,那就是,它可能再现的所有先前国和变化来源的树。如果你想要消灭的东西从版本控制,你可能"这样做是错误的",因为他们说。

我使用各种各样的版本控制系统为大约15年了,从来不需要一个功能像这样。

我不知道原因是什么,你想要那个功能:

  • 盘空间?难以置信,考虑到价格的光盘空间
  • 致力于一个密码版本控制?那会教你的。去改变密码
  • 速度的仓库?听起来不那么,但是如果我认为一个完全不同的系统与所谓更好的业绩。

它是可能减小SVN库做一个垃圾场以及负荷。基本上如果你说你从不想要恢复到的东西超过两岁,很可能要转储存库、过滤器基础上的时间,然后重新装载的垃圾场。想要摆脱的一个单一的文件,由于尺寸可能是一个迹象,文件并没有真正属于的一个来源控制系统在第一位。

有一些脚本,它可以帮助你摧毁的数据。跟随 这个邮件列表螺纹 更多的信息。

这是一个困难的方式做到这一作为本质上的版本控制不会丢失数据,而不是删除永久的。但如果你修剪一年一次或者类似的东西它 可以 要做。

整个点源的控制是有一个完整历史的什么你的存储库。的 obliterate 命令违背此目的源的控制,这是一个misfeature在所有的版本控制系统。

SVN有的廉价复制和廉价的分支,不需要一个完整的复制的文件--仅仅是改变位。它的中央储存库通常是非常易于管理的规模,从而使这misfeature不必要的。

抹杀不是一个基本特征的颠复,因为它实际上打破的基本原则的版本控制(其是:记录所有历史)。

它不是一个基本特征,因为有解决方法来完成这件事无论如何(使用版本和滤波)。

此外,本特征是当前大量的工作。看看 这个职位 对于细节。

最后我检查了它的目的是作为一个管理功能,以及管理已经可以转储/过滤/broken_workaround和清除历史。在考虑到审计线索,这不会改变目前的引用。这将使它不那么可怕,如果有什么绝对必须去除。

更抹杀是一个最需要的特点,所开发的最后承认这一点应该存在的(终于来了!8年后!!!).和宣传的这不是现有的,是追用户远离SVN.

不幸的是,我不得不了解这个"缺失的要素"的硬的方式。由于当基本的功能有功能吗?新用户开始听到关于这一点,并避免SVN.至于我,我现在使用的饭桶。

不喜欢我的意见吗?莱纳斯提到的SVN开发商为低能儿,整个集中的系统缺陷。我相信莱纳斯作为一个真正的专家,并具体地说,他知道的来源。

我做什么-不用颠复活动。对不起。

他们(开发商)obvoiously不同意你的评估,作为一个关键要素。并没有阻止我工作的公司在目前的使用;),我本人来说规则出颠复这个确切原因。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top