【问题标题】:Does subversion save deleted files?颠覆会保存已删除的文件吗?
【发布时间】:2011-08-13 15:57:59
【问题描述】:

我正在使用一个由一个慷慨的网站免费提供给我的 subversion 存储库。这意味着我只有 200MB 可用于存储库。不过,我并没有抱怨,因为我确实认为这非常慷慨,并且足以满足我的源代码需求。

但是,当我想“回到过去”解决问题时,我偶尔会使用 subversion 来处理更多存储空间较大的文件类型,这仅仅是因为系统功能强大。我是一个相当杂乱无章的人,拥有一个专门的版本控制系统来帮助我整理东西真的很有帮助。

然后,我想知道的是,我在云上的存储库是否会“保留”一个我可能错误地添加到版本控制中的大文件。假设我将几个大文件(假设是大量 2MB jpeg)添加到 subversion 存储库。此外,我还可以在后续提交时稍微编辑它们,并为日志提供一些不必要的冗长提交消息 cmets。然后我意识到我不再想要这些 jpeg 中的任何一个,并删除它们。

因为我应该能够在任何以前的提交编号处签出存储库,当然包括我最初添加文件的那个,这是否意味着即使我稍后从存储库中删除它们,实际的存储库也会继续如果是为了确保结帐能力,要永远保留它们吗?

如果是这样的话,我想有删除这些数据的规定吗?如果我的 repo 因这种类型的“一次性”数据而变得臃肿(例如,我的 200MB 配额用完了,但仍想将我的 repo 多用于编程目的),那么一定存在 一些有什么办法可以减掉脂肪?

很抱歉没有提前研究这个话题。晚了。

【问题讨论】:

  • 从答案中你肯定会发现,源代码版本控制不是处理二进制文件的好选择。

标签: svn version-control delete-file purge


【解决方案1】:

这是否意味着即使我稍后从 repo 中删除它们,如果为了确保能够结帐,实际 repo 将继续永远保留它们?

是的

如果是这样,我想有删除这些数据的规定吗?

不,没有。但是,您可以将存储库转储到文件中,删除不需要的内容,重新计算修订并将其加载回新的存储库。但请注意...有一些filtering tooling 可用于帮助执行此任务。该命令称为svndumpfilter

【讨论】:

    【解决方案2】:

    是的,它“删除”的文件仍会在 SVN 存储库中。

    【讨论】:

      【解决方案3】:

      源代码控制系统投入了大量精力来确保您可以返回到任何时间点,并且所有数据都可供您使用,就像过去一样,在那个特定的修订号上。

      版本控制的重点是确保不会永久删除或覆盖任何内容。因此,“删除”文件只会将其从当前视图中删除,而不是从前一个视图中删除;对于之前的视图,它仍然存在。

      有一些方法可以手动删除不需要的项目,但它们往往对用户不友好。

      【讨论】:

        【解决方案4】:

        回购肯定会保留数据。正确的技术术语是抹杀。这是 link 说明为什么 Subversion 上不存在此功能的原因。

        它也不会出现在下一个版本 1.7 / 1.8 中。 Subversion 的路线图是here

        由于您使用的是托管 Subversion,请与主机确认是否允许在服务器上远程执行 svndumpfilter 命令。

        【讨论】:

        • +1 以获得良好的第一个答案。唯一需要注意的是,svndumpfilter 将允许您转储过滤后的列表,正如 Jacco 和 jdehaan 在他们的答案中所指出的那样。
        • 第一个链接现在好像坏了。
        猜你喜欢
        • 2012-02-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-14
        • 2014-11-11
        • 2012-09-04
        相关资源
        最近更新 更多