保持非活动的本地SVN工作副本,占用空间最小

时间:2017-06-29 15:18:06

标签: svn

这是我的场景:我有一个根文件夹,其中包含许多与项目相关的文件和文件夹。根文件夹受版本控制,但实际上只包含其中包含的一些文件/子文件夹。这样做是因为只需要安全地跟踪这些文件并与更大的工作组共享

现在,我不再处理该项目了,我希望尽可能少地保留本地副本。如果这有意义,我还希望副本仍然保留重新连接到repo的所有信息。在实践中,我想:

  1. 保留所有不受版本控制的文件(显然)
  2. 使用"元数据"保留.snv文件夹关于repo状态,但没有实际数据(目前.svn文件夹与版本化文件的大小差不多,我认为因为它保留了repo版本的本地副本?)
  3. [可选]能够删除版本化文件,但如果我需要再次使用它们,我们可以毫不费力地从回购中重新下载它们
  4. (1)是微不足道的

    (3)我认为我可以手动删除它们(不使用SVN这样做),以便在下一次"更新"它会发现它们缺失并再次下载,对吧?

    (2)怎么样?我找到了一些人询问你是否可以阻止SVN存储pristines,答案是否定的。但是,在积极开展项目工作时,这更倾向于作为永久性设置。在这里,我问我是否可以以某种方式删除该数据并让SVN再次下载,如果说,在一年内我需要再次开始处理回购。我可以进入SVN并下载一些"数据子文件夹"没有破坏什么?还有其他想法吗?

    由于

1 个答案:

答案 0 :(得分:1)

你想要一个sparse checkout,你希望它是如此稀疏,以至于其中没有任何内容。在结帐根目录中,运行以下命令:

svn update --set-depth empty

这将删除SVN工作副本中的所有版本化项目(它会在版本化目录中保留未版本控制的项目以及未版本控制的文件)。此命令不一定会删除pristine商店中的所有文件,但您可以在根目录中强制使用cleanup(假设您的客户端是1.8或更高版本):

svn cleanup

来自the changelog

Version 1.8.0
(18 Jun 2013, from /branches/1.8.x)
http://svn.apache.org/repos/asf/subversion/tags/1.8.0

 User-visible changes:
  - Minor new features and improvements (client-side):
    ...
    * 'svn cleanup' now runs SQLite "vacuum" to reclaim space (r1418459)