我之前使用svn一段时间,但最近项目中添加了几个团队。其中一个团队创建了一个新分支,并要求我检查一些更改。我进入该目录后,右键单击,选择svn->切换,然后选择了新的分支。我尝试在当前页面输出一些内容,以查看是否正在新分支上工作,但实际上并没有。这对我来说有点超出了我的能力范围,但由于项目变得如此庞大,我需要学习这些知识。
基于此,我的问题是:除了我当前做的操作外,我需要做什么?在将工作副本切换到这个新分支后,我该如何在上面工作?
我之前使用svn一段时间,但最近项目中添加了几个团队。其中一个团队创建了一个新分支,并要求我检查一些更改。我进入该目录后,右键单击,选择svn->切换,然后选择了新的分支。我尝试在当前页面输出一些内容,以查看是否正在新分支上工作,但实际上并没有。这对我来说有点超出了我的能力范围,但由于项目变得如此庞大,我需要学习这些知识。
基于此,我的问题是:除了我当前做的操作外,我需要做什么?在将工作副本切换到这个新分支后,我该如何在上面工作?
检出和切换之间的区别可能会增加混淆。我认为在您的情况下,最简单的方法可能是将分支检出到不同的文件夹中,因为您只是进行审查,这可能是最直接的方法。
请参见 Tortoise 文档中的此部分:(链接):
检出或切换......
在另一个文件夹中检出主干,然后使用TortoiseSVN → 切换...到你的新分支。...... 这不是真正的问题。当检出从存储库中所需分支下载所有内容到您的工作目录时,TortoiseSVN → 切换... 仅将更改的数据传输到您的工作副本。对于网络负载和您的耐心都有好处。:-)
为了能够使用新生成的分支或标记进行工作,您有几种处理方式。您可以:
TortoiseSVN → 检出 在空文件夹中进行全新检出。您可以将其检出到本地磁盘上的任何位置,并且可以从存储库创建尽可能多的工作副本。
将当前工作副本切换到存储库中的新副本。再次选择项目的顶级文件夹,并使用上下文菜单中的 TortoiseSVN → 切换...。
在下一个对话框中,输入您刚创建的分支的 URL。选择 Head 修订版本单选按钮,然后单击“确定”。您的工作副本已切换到新的分支/标记。
切换的操作方式与更新类似,它不会丢弃您的本地更改。当进行切换时,您所做的任何尚未提交的工作副本更改都将被合并。如果您不希望这种情况发生,则必须在切换之前提交更改,或将工作副本还原为已提交的修订版本(通常为 HEAD)。
如果您想要同时使用主干和分支进行工作,但不想付出全新检出的代价,那么您可以使用 Windows Explorer 复制您的工作副本,然后将其重命名以表示它是分支的工作副本。
关于 svn switch
可能存在一些误解:
起初我认为存在一个切换命令就意味着 SVN 需要有一个“当前”的或“选定的”工作副本才能正常运行。比如我正在 trunk 上工作,然后我又在分支 B 上工作,因此需要从一个工作副本切换到另一个。但事实是:不存在所谓的当前工作副本!只有许多本地工作副本:一个用于 trunk,一个用于分支,另一个用于标签等等。但是没有一个被“隐式选择”。
正如 Paul Sasik 所引用的那样:switch
允许只有一个工作副本,比如 trunk,然后将该本地工作副本与远程仓库中的目标分支或标签进行合并。 switch
仅同步本地和远程之间的差异,因此避免了整个解决方案的检出。执行该命令后,进一步对工作副本进行的所有提交都将发生在已切换到的远程仓库文件夹上,即已定位的仓库。无论最初的检出是为了哪个本地文件夹。