将 SVN 工作目录的闪存驱动器副本转换为正确的工作目录?

Gre*_*reg 2 svn

我有一个相当大的项目(13 GB)和一个糟糕的互联网连接。我在闪存驱动器上带了一份我的工作目录的副本 - 但没有 .svn 目录,这会使大小增加一倍。

我希望复制闪存驱动器的内容,然后将其转换为正确的工作目录。 本质上是结帐,但使用我的闪存驱动器提供的 13 GB 文件。

  • 这个想法/sf/answers/60271431/是将闪存驱动器文件导入一个新的本地存储库,检查该存储库,然后 sw --relocate 将该检查表重新定位到在线存储库。请注意,这需要设置本地存储库的 UUID,否则 SVN 会拒绝。

由于各种原因,这个聪明的想法不起作用(E155017:校验和不匹配或“找到了阻碍工作的副本”)。

  • 我的下一个想法是创建一个空的结账树(通过我的连接来做很便宜),然后将我的文件 rsync 到其中。SVN 对此并不十分感兴趣(将深度恢复到无穷大的各种问题)。

有了许多这些想法/实验,SVN 尝试再次通过我的连接下载整个内容(可能是因为它无法校验和来比较本地与远程?)

对不起,解释太长了,但我认为这对整个画面是必要的。

还有其他人尝试将复制的本地文件与现有的 SVN 存储库同步吗?

slo*_*dog 5

.svn目录包含每个版本化源文件的“干净”副本,这就是它如此庞大的原因。但它也包含元数据,这将非常难以重建。

相比之下,工作文件可以很容易地从.svn. 因此,另一种方法是复制唯一.svn目录,然后运行svn revert -R .到没有进一步的网络通信恢复工作的文件。