我正在尝试将SVN工作副本从一台Linux机器移动/复制到另一台机器。通过研究类似的问题/答案,这似乎可以通过简单地移动整个文件夹(以及.svn子目录)来实现。我已经实现了一个使用tar执行此副本的解决方案。
在源计算机上:
tar -cpz -f checkout_directory.tar.gz checkout_directory
在目标计算机上(在tarball副本之后):
tar -xpz -f checkout_directory.tar.gz
这实现了将工作副本移动到目标机器的目标;然而,svn操作的性能变得非常慢。例如,原始计算机上的svn status
采用< 1分钟,但在目标机器上需要约1小时。整个文件夹大约50GB,但这些时间包括清除每台机器上的linux缓冲区/缓存和类似的硬件/负载。
我可以通过在目标计算机上执行svn cleanup
来降低性能,但此操作也需要约1小时。我怀疑这会更新SVN用来确定是否已进行本地更改的更改时间。
有更好的方法吗?
P.S。我想避免在目标计算机上执行svn checkout
,因为这必须在许多计算机上完成。