哪些因素决定了在发布版本的主干中打包标记时调用svn copy
的速度?
我一直在使用git一两年,在最近的一个项目中我不得不回到使用subversion,并且在我提交之前调用svn copy需要2到25分钟才能在我的机器上完成,与每次改变的代码数量没有太大关联。
您通常采取哪些步骤来加快包装过程,或至少使其更具可预测性?
我知道聪明的事情就是使用git-svn,但是当我尝试时我无法推送到正确的分支,团队中的其他人都在使用svn,所以我对采用不熟悉的东西很谨慎工具中途的工具。
答案 0 :(得分:7)
这取决于您是在存储库还是在磁盘上执行svn copy
。该命令有两个参数, source 和 destination ,每个参数可以是工作副本中的文件夹,也可以是存储库中的URL。
当 target 是本地文件夹时,svn将在您的文件系统中执行复制操作,这可能需要很长时间。然后,必须先将该复制操作提交到存储库中。
但是,如果 target 是存储库中的URL,则会立即在存储库中进行复制(无需提交)。这是一个O(1)操作,应该很快 如果使用此语法,请不要忘记指定提交消息。此外,如果您想实际使用您创建的分支/标记,则必须检查它(这又需要很长时间)或将当前工作副本切换到它(这应该很快,因为不应该对分支机构做出任何改变)。