我使用 svn 有一段时间了,但最近有几个团队加入了这个项目。其中一个团队创建了一个新分支,并要求我检查他们的一些更改。我进入目录,右键单击,svn->switch并选择新分支。我进去并试图在我所在的页面上回应一些东西,看看我是否在新分支中工作,而我不是。这有点超出了我的工作范围,但是随着项目变得如此之大,我需要学习这一点。
基于此,我的问题..还有什么我没有做的吗?将工作副本切换到这个新分支后,我该如何处理它?
我使用 svn 有一段时间了,但最近有几个团队加入了这个项目。其中一个团队创建了一个新分支,并要求我检查他们的一些更改。我进入目录,右键单击,svn->switch并选择新分支。我进去并试图在我所在的页面上回应一些东西,看看我是否在新分支中工作,而我不是。这有点超出了我的工作范围,但是随着项目变得如此之大,我需要学习这一点。
基于此,我的问题..还有什么我没有做的吗?将工作副本切换到这个新分支后,我该如何处理它?
checkout 和 switch 之间的区别可能会增加混乱。我认为在您的情况下,将分支检出到不同的文件夹会更简单,因为您只是在进行审核,并且无论如何这可能是最直接的方法。
请参阅Tortoise 文档中的此部分:
结帐或切换...
...那是(不是真的)问题。当结帐从存储库中的所需分支下载所有内容到您的工作目录时,TortoiseSVN → Switch... 仅将更改的数据传输到您的工作副本。有利于网络负载,有利于您的耐心。:-)
为了能够使用新生成的分支或标签,您有几种方法来处理它。你可以:
TortoiseSVN → Checkout 在空文件夹中进行新的结帐。您可以签出到本地磁盘上的任何位置,并且可以从存储库中创建任意数量的工作副本。
将您当前的工作副本切换到存储库中新创建的副本。再次选择项目的顶级文件夹并使用 TortoiseSVN → Switch... 从上下文菜单中。
在下一个对话框中输入您刚刚创建的分支的 URL。选择 Head Revision 单选按钮并单击 OK。您的工作副本将切换到新的分支/标签。
Switch 的工作方式与 Update 类似,它从不丢弃您的本地更改。当您进行切换时,您对工作副本所做的任何尚未提交的更改都将被合并。如果您不希望这种情况发生,那么您必须在切换之前提交更改,或者将您的工作副本恢复为已提交的修订版(通常是 HEAD)。
如果你想在主干和分支上工作,但又不想花费新的结账,你可以使用 Windows 资源管理器在另一个文件夹中复制你的主干结账,然后 TortoiseSVN → 切换...那个副本到你的新的分支。
在常规的“属性”对话框(右键单击 Windows 资源管理器)中,您有一个“Subversion”选项卡,它将告诉您文件或目录指向的 URL。使用它来验证您是否确实切换到了正确的分支。
任何未提交的本地更改仍将在您的工作副本中,这也毫无价值。
可能存在以下误解svn switch
:
起初,我认为 switch 命令的存在意味着存在一个“当前”或“选定”的工作副本,用于 SVN 的正常运行。就像我目前正在处理主干一样,然后我正在处理分支 B,因此从工作副本“切换”到另一个。事实是:没有当前工作副本这样的东西!只有许多本地工作副本:一个用于主干,一个用于分支,另一个用于标签,依此类推。但是没有一个会被“隐式选择”。
正如 Paul Sasik 所引用的:switch
例如,将允许只有一个工作副本,比如主干,然后将该本地工作副本与远程存储库中的目标分支或标签合并。switch
仅同步本地和远程之间的差异,因此避免对解决方案进行全面检查。过去执行命令后,工作副本上的每一次进一步提交都将发生在已切换到的远程存储库文件夹中,该文件夹已成为目标。无论该本地文件夹的初始签出是什么。