2011-09-29 70 views
1

SVN Book chapter on "Switching a Working Copy"似乎说都使得执行开关1)让你的工作拷贝等同于分支切换到(好像一个做了重新检出)和2)保留编辑你的工作副本(这样你就可以提交他们到分支切换到。)这听起来不一致,因为如果开关使它像一个新的结帐,那么您的编辑无法保存。任何人都可以解释吗?关于“切换工作副本”的SVN书籍不一致?

下面是相关报价:

“切换”到分支后,你的工作副本是没有比你会从做目录的重新检出得到什么不同。

...

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

TIA

回答

3

退房页面上的盒子被称为 “开关和更新”:

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

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

也就是说,如果你的工作副本是/ calc/trunk的一个镜像,然后SVN更新会自动对比/钙/树干/ calc/trunk的工作副本和HEAD修订版。如果您将工作副本切换到分支,则svn switch会将/ calc/trunk的工作副本与HEAD修订版中的其他分支目录进行比较。

换句话说,更新会随着时间移动您的工作副本。交换机在您的时间和空间中移动您的工作副本。

基本上,认为“开关”命令为SVN讲,“这个新的存储库URL哎,回来我的工作拷贝,然后更新我的工作拷贝到新网址的最新版本”。

所以,这“开关”,使你的工作副本看起来像新的URL的新检出的评论是正确的,如果你没有本地修改你的工作副本。如果您进行了本地修改,则不准确。在这种情况下,您的工作副本将看起来像新的URL的新签出,并将您的修改合并。

+0

谢谢,有道理。 –