情况 - 拥有庞大的代码仓库,连接缓慢且不可靠(即VPN会不时断开)。
我们经常需要分支、移动代码,因此每隔一段时间就需要从代码库中获取整个新分支(checkout)。
是否有一种方式可以“恢复”已经中断的checkout操作?使用相同参数执行svn checkout
是否安全,期望它跳过已下载的内容并下载未下载的内容?
情况 - 拥有庞大的代码仓库,连接缓慢且不可靠(即VPN会不时断开)。
我们经常需要分支、移动代码,因此每隔一段时间就需要从代码库中获取整个新分支(checkout)。
是否有一种方式可以“恢复”已经中断的checkout操作?使用相同参数执行svn checkout
是否安全,期望它跳过已下载的内容并下载未下载的内容?
遇到了同样的问题。我不得不中断一个结账流程,因为它花费了极长的时间。当我去“恢复”结账时,不清楚是重新启动结账还是只需执行 svn update
。
尝试使用 svn update
恢复结账时,出现了一个错误信息,指出该目录被“锁定”。我尝试从Tortoise SVN发出“释放锁定”,但这并没有帮助。
最终,我不得不发出一个 svn cleanup
来解除Subversion所占用的任何束缚。之后,我能够通过再次执行更新(svn update
或从Tortoise SVN上下文菜单中选择“SVN Update”)来继续我之前启动的结账。
如果您中断了检出过程(或者其他因素中断了您的检出,例如失去连接等),则可以通过再次发出相同的检出命令或更新不完整的工作副本来重新开始。
svn cleanup
可能是必要的,但你提供的文档参考更有价值! - Kalle Richtersvn update
这个可以为你完成工作。
svn checkout
命令已经完成了项目目录和其 .svn
隐藏仓库信息的创建,否则您将不得不重新发出 svn checkout
命令。 - Jesse Chisholm移动到复制目录中
svn update
svn cleanup
cd..
svn checkout download_path
我必须在一个不可靠的连接上checkout一个大型代码库,所以 co
失败了很多次。基于这里的回答,我最终得到了一个小的循环,不断尝试checkout(适用于bash
和其他Unix shell):
while ! svn co http://myserver/svn/myrepo/
do
(cd myrepo; svn cleanup)
done
i=0
while ! svn co http://myserver/svn/myrepo/
do
i=$[i+1]
(cd myrepo; svn cleanup)
done
echo $i
在我看来,有三种可能性:
它可以正确完整地检出,让你无需头疼。问题解决了。
它会检查上次未被检出的所有内容。你只需要执行 'svn update' 就行了。
它会发现一些已经被检出但是被修改过的文件,会报错并中止操作。你需要手动删除冲突的文件。
无论如何,任何成功从代码库检出的文件都会在本地树中关联元数据,这将确保 'svn update' 可以获取到最新版本。