SVN Book是否与“切换工作副本”不一致?

时间:2011-09-29 17:19:59

标签: svn

SVN Book chapter on "Switching a Working Copy"似乎都表示执行交换机1)会使您的工作副本与切换到的分支相同(就像有人进行了新的结账)和2)保留对您的工作副本的编辑(所以您可以将它们提交到切换到的分支。)这听起来与我不一致,因为如果切换使它像一个新的结帐,那么您的编辑将无法保留。有人可以解释一下吗?

以下是相关引用:

  

在“切换”到分支后,您的工作副本与您对目录进行全新结帐时所获得的副本没有什么不同。

     

...

     

例如,假设您有/ calc / trunk的工作副本并对其进行了一些更改。然后你突然意识到你打算改变分支。没问题!当您将工作副本切换到分支时,本地更改将保留。然后,您可以测试它们并将它们提交给分支。

TIA

1 个答案:

答案 0 :(得分:3)

选中该页面上名为“切换和更新”的框:

  

您是否注意到svn switch和svn update的输出看起来一样? switch命令实际上是更新命令的超集。

     

当你运行svn update时,你要求存储库比较两棵树。存储库会这样做,然后将差异的描述发送回客户端。 svn switch和svn update之间的唯一区别是update命令总是比较两个相同的路径。

     

也就是说,如果您的工作副本是/ calc / trunk的镜像,那么svn update会自动将您的/ calc / trunk的工作副本与HEAD修订版中的/ calc / trunk进行比较。如果您正在将工作副本切换到分支,那么svn switch会将/ calc / trunk的工作副本与HEAD修订版中的其他分支目录进行比较。

     

换句话说,更新会随着时间的推移移动您的工作副本。开关可以在时间和空间上移动您的工作副本。

基本上,将“switch”命令视为告诉SVN,“嘿,通过这个新的存储库URL备份我的工作副本,然后将我的工作副本更新到该新URL的最新版本”。

因此,如果您没有对工作副本进行本地修改,则“切换”使您的工作副本看起来像新网址的新签名是正确的。如果您有本地修改,则不准确。在这种情况下,您的工作副本看起来像是新网址的新结帐,并且您的修改已合并。