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

将SVN工作目录的闪存驱动器副本转换为正确的工作目录?,svn,Svn,我有一个相当大的项目(13GB)和一个糟糕的互联网连接。我用闪光灯把我的工作目录带回家了 驱动器-但如果没有.svn目录,则会使 尺寸 我希望复制闪存驱动器的内容,然后将其转换为一个合适的工作目录。基本上是一个签出操作,但我的闪存驱动器提供了13GB的文件 这个想法是将闪存驱动器文件导入一个新的本地repo,签出该repo,然后sw——将签出重新定位到在线repo。请注意,这需要设置本地回购的UUID,否则SVN将停止 由于各种原因(E155017:校验和不匹配或“发现妨碍工作的副本”),这

我有一个相当大的项目(13GB)和一个糟糕的互联网连接。我用闪光灯把我的工作目录带回家了 驱动器-但如果没有.svn目录,则会使 尺寸

我希望复制闪存驱动器的内容,然后将其转换为一个合适的工作目录。基本上是一个签出操作,但我的闪存驱动器提供了13GB的文件

  • 这个想法是将闪存驱动器文件导入一个新的本地repo,签出该repo,然后sw——将签出重新定位到在线repo。请注意,这需要设置本地回购的UUID,否则SVN将停止
由于各种原因(E155017:校验和不匹配或“发现妨碍工作的副本”),这个聪明的想法不起作用

  • 我的下一个想法是创建一个空的签出树(在我的连接上做起来很便宜),然后将我的文件重新同步到其中。SVN对此不太感兴趣(将深度恢复到无穷大的各种问题)
有了许多这样的想法/实验,SVN试图通过我的连接再次下载整个内容(可能是因为它无法对本地和远程进行校验和比较?)

对不起,解释得太长了,但我认为这对整个情况来说是必要的


任何其他人试图将复制的本地文件与现有SVN repo同步?

没有
目录的工作副本。不幸的是,SVN
目录根本不是工作副本。您可能可以避免复制文本基(或在Subversion 1.7中称为“开始”的pristine),但不能完全忽略
.svn
目录

一些可能的补救办法:

您可能想尝试使用一些DVC作为一种机制来创建一个断开连接的工作副本,因为它们在某种程度上更易于复制<代码>git svn浮现在脑海中


您也可以将工作副本添加到闪存驱动器上的文件,然后将其卸载到家中的磁盘。

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


相反,工作文件可以很容易地从
.svn
中的干净副本重建。因此,另一种方法是只复制
.svn
目录,然后运行
svn revert-R.
以恢复工作文件,而无需进一步的网络通信。

重建丢失的.svn目录将非常困难。另一种方法要简单得多:如果只复制.svn目录,那么通过执行“svn revert-R”应该能够在没有网络流量的情况下恢复所有内容。这是一个非常有趣的转变。这周我会试试的。你想把这当作一个答案吗?给工作副本加皮重(并压缩)是一个非常好的主意-它应该可以为你解决“大小加倍的问题”,因为99%的.svn目录与“工作”目录中包含的数据完全相同文件。我不知道有哪种压缩算法可以通过在层次结构中的其他位置查找相同的文件副本来节省空间。至少在gzip压缩tar归档文件时,目录层次结构是不相关的,因为gzip对它一无所知。