Svn 什么时候可以从HEAD创建新的存储库?

Svn 什么时候可以从HEAD创建新的存储库?,svn,version-control,Svn,Version Control,我去年八月创建了一个存储库,我已经使用了一年了。我最多有大约900人。我开始怀疑是否应该重新创建一个新的存储库 这不是我每年都会做的事情 去年我对颠覆非常陌生,我犯了很多错误 这些错误大多与加载不应加载的文件有关。像视频文件之类的。使我的存储库非常非常大 此外,我对合并一无所知,而且由于未正确合并,我打破了许多跟踪 所以,我想我应该开始一个新的。。。。。 拿着我的头重新开始 下面是一些与此相关的随机头脑风暴想法 我仍然可以保留旧的回购协议,并将其设置为只读 我可以在新回购协议中维护历史记录,但

我去年八月创建了一个存储库,我已经使用了一年了。我最多有大约900人。我开始怀疑是否应该重新创建一个新的存储库

这不是我每年都会做的事情

去年我对颠覆非常陌生,我犯了很多错误

这些错误大多与加载不应加载的文件有关。像视频文件之类的。使我的存储库非常非常大

此外,我对合并一无所知,而且由于未正确合并,我打破了许多跟踪

所以,我想我应该开始一个新的。。。。。 拿着我的
重新开始

下面是一些与此相关的随机头脑风暴想法

  • 我仍然可以保留旧的回购协议,并将其设置为只读
  • 我可以在新回购协议中维护历史记录,但不能维护数据吗
  • 如果我重新开始,它像支票簿吗?我可以在某个号码订购新的回购协议吗

如果历史对你毫无用处,只是浪费空间,那么创建新的回购协议是个好主意。根据您对SVN的了解程度,有很多方法可以实现这一点,但一个简单的方法是签出一个您希望作为起点的旧版本,然后从该版本创建一个新的repo,签出下一个版本,提交并重复

当然,您需要编写一些工具来帮助实现这一点。当您签出旧版本时,有许多隐藏的.svn目录包含元数据。因此,不要执行
svn签出
,而是执行
svn导出
。它将导出除.svn元数据目录之外的文件。用它来创建新的回购协议

然后,将这些文件复制到已签出的新回购协议。然后简单地添加这些文件。然后,付诸行动,你就完成了

从列出所有修订号的文本文件(每行一个)中驱动该过程可能是一个好主意。这样,如果您想跳过与合并问题相关的一组问题,就很容易做到

您可能只需要使用bashshell脚本就可以完成整个任务,但是如果您对Python等脚本语言有一定的技能,那么您可能会发现这比bash更容易


不要忘记收集每个修订版的日志消息,并在提交到新的repo时添加这些消息。大多数svn命令都采用
-r
选项,因此您可以执行类似于
svn log-r 334
的操作来获取仅用于修订版334的日志消息。

Michael,为了获得没有
子文件夹的修订版,您只需执行导出并指定修订号,无需任何专用工具即可。除此之外,你的建议还可以:)如果你很高兴在实验结束后用修订版开始新的回购协议,那很好,但是你也可以跳过修订版以避免大的二进制文件。如果您在版本23中签入文件,并在178中删除它,那么您可以保留1-22,然后跳到24,这意味着新回购协议中不会有大的已删除二进制文件。你的选择。