【问题标题】:Is it safe to delete the contents of .svn/pristine?删除 .svn/pristine 的内容是否安全?
【发布时间】:2014-03-28 13:33:20
【问题描述】:

我正在使用从我的存储库中签出的大型应用程序,该应用程序的大部分位于 .svn/pristine 文件夹中。据我了解,原始文件夹包含我的 workingCopy 目录中的文件副本

话虽如此,

  • 可以删除这些文件吗?
  • 我真的需要它们吗?

我已经备份了我的文件,并且不打算恢复。获得的额外空间也会大大缩短我的编译时间。

编辑

我现在明白在.svn 中手动更改任何内容都可能会破坏我的工作副本。

我需要找到一种方法来减小工作副本的大小。在 TortoiseSVN 中,有一个 Cleanup - Delete unversioned files and folders,它“删除工作副本中所有生成的文件”。也许这会在不破坏我的应用程序的情况下摆脱这些文件?

干杯

【问题讨论】:

  • 对 .svn 文件夹或其内容的任何更改都可能会破坏您的工作副本。
  • 如果我理解正确,您的问题是项目的编译时间过长,并且您认为通过删除 .svn 文件夹可以减少编译时间。我不认为那是真的。怎么可能是真的?
  • 我不想删除 .svn 文件夹,.svn 文件夹包含一个名为 pristine 的文件夹,其中包含您当前项目的副本。我对这些占用大量空间的副本没有用处,并且减小我的项目的大小也会减少编译所需的时间。
  • 除非你的构建系统盲目地编译你项目所有子目录下的所有文件,否则构建时间应该不会受到影响。如果您的构建系统这样做,请修复您的构建系统。这是一种糟糕的构建方式。
  • 这是一个关于释放磁盘空间的合理问题。我发现我的 .svn/pristine 文件夹占用了超过 1 GB 的空间——超过 90% 的整个 WC 都是其中的一部分。通过 TortoiseSVN 运行“清理”命令释放了大部分空间。尽管如此,我还是想知道,是什么原因导致这些占用了所有磁盘空间的文件又回来了?

标签: svn working-copy


【解决方案1】:

您可以尝试启动svn cleanup。它将从.svn/pristine 中删除不必要的文件。

【讨论】:

  • 在我看来,这是对 OPs 问题的正确答案。删除 .svn/pristine 是不安全的。但是如果你想保护磁盘空间,运行 svn cleanup 来减少它。
【解决方案2】:
  • 您不得手动触摸工作副本中的目录.svn。客户端操作需要该目录。

  • .svn 目录存储工作副本元数据和 WC 文件的原始副本仅用于客户端操作,它必须存在于每个 SVN 工作副本中,但不能存在于 SVN 存储库中。将其存储在 Subversion 存储库中可能会导致客户端出错。

    换句话说,您不能将目录.svn 存储在存储库中。如果您在存储库中有这个目录,那么有人错误地提交了它;将其从最新版本中删除或通过filtering it out using svndumpfilter tool 将其完全删除。

    SVNBook | Subversion Working Copies:

    工作副本还包含一些额外的文件,创建和维护 通过 Subversion,帮助它执行这些命令。尤其, 每个工作副本都包含一个名为 .svn 的子目录,也称为 工作副本的管理目录。中的文件 管理目录帮助 Subversion 识别你的哪个 版本化文件包含未发布的更改,以及哪些文件已出 与他人的工作相关的日期。

  • "Cleanup - Delete unversioned files and folders" in TortoiseSVN 选项将删除工作副本中的未版本控制文件。例如,那些通过svn:ignore 属性忽略的文件,运行构建或调试后生成的文件。

    我猜您将大型二进制文件存储在您的存储库/工作副本中。我认为如果不重新组织 SVN 存储库,您将无法解决工作副本大小问题。

【讨论】:

  • 我的存储库中没有.svn 目录,只有我的工作副本。
  • @ClayBanks 我已经更新了答案:不要碰.svn目录
  • 感谢您的意见。我也编辑了我的问题。 Deleting unversioned files and folders 会完成手头的任务吗?
  • @ClayBanks 我不这么认为。此选项将仅删除 WC 中未版本化的项目。它不会触及.svn 文件夹的内容。查看更新后的答案(列表中的最后一项)。
  • 谢谢@bahrep,我会寻找替代方法来减小项目的大小*
【解决方案3】:

事实证明,我进行长期构建的真正原因是 Eclipse 的验证器!我关闭了 JavaScript 的所有验证器,构建几乎立即发生。难以置信。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-02
    • 1970-01-01
    • 2010-10-07
    • 1970-01-01
    • 1970-01-01
    • 2010-10-30
    • 1970-01-01
    相关资源
    最近更新 更多