3

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

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

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

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

如果是这种情况,我想有删除这些数据的规定吗?如果我的 repo 因这种类型的“一次性”数据而变得臃肿(例如,我的 200MB 配额用完了,但仍想多一点地使用我的 repo 来进行编程),那么我必须有某种方法来修剪胖的?

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

4

4 回答 4

3

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

于 2011-04-27T08:35:22.150 回答
3

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

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

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

于 2011-04-27T12:34:39.347 回答
2

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

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

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

于 2011-04-27T08:53:29.413 回答
2

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

是的

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

不,那里没有。但是,您可以将存储库转储到文件中,切断您不想要的内容,重新计算修订并将其加载回新的存储库。但请注意...有一些过滤工具可用于帮助执行此任务。该命令称为svndumpfilter.

于 2011-04-27T08:34:59.093 回答