TortoiseSVN切换分支

26

我之前使用svn一段时间,但最近项目中添加了几个团队。其中一个团队创建了一个新分支,并要求我检查一些更改。我进入该目录后,右键单击,选择svn->切换,然后选择了新的分支。我尝试在当前页面输出一些内容,以查看是否正在新分支上工作,但实际上并没有。这对我来说有点超出了我的能力范围,但由于项目变得如此庞大,我需要学习这些知识。

基于此,我的问题是:除了我当前做的操作外,我需要做什么?在将工作副本切换到这个新分支后,我该如何在上面工作?

3个回答

32

检出和切换之间的区别可能会增加混淆。我认为在您的情况下,最简单的方法可能是将分支检出到不同的文件夹中,因为您只是进行审查,这可能是最直接的方法。

请参见 Tortoise 文档中的此部分:(链接)

检出或切换......

...... 这不是真正的问题。当检出从存储库中所需分支下载所有内容到您的工作目录时,TortoiseSVN → 切换... 仅将更改的数据传输到您的工作副本。对于网络负载和您的耐心都有好处。:-)

为了能够使用新生成的分支或标记进行工作,您有几种处理方式。您可以:

TortoiseSVN → 检出 在空文件夹中进行全新检出。您可以将其检出到本地磁盘上的任何位置,并且可以从存储库创建尽可能多的工作副本。

将当前工作副本切换到存储库中的新副本。再次选择项目的顶级文件夹,并使用上下文菜单中的 TortoiseSVN → 切换...。

在下一个对话框中,输入您刚创建的分支的 URL。选择 Head 修订版本单选按钮,然后单击“确定”。您的工作副本已切换到新的分支/标记。

切换的操作方式与更新类似,它不会丢弃您的本地更改。当进行切换时,您所做的任何尚未提交的工作副本更改都将被合并。如果您不希望这种情况发生,则必须在切换之前提交更改,或将工作副本还原为已提交的修订版本(通常为 HEAD)。

如果您想要同时使用主干和分支进行工作,但不想付出全新检出的代价,那么您可以使用 Windows Explorer 复制您的工作副本,然后将其重命名以表示它是分支的工作副本。

在另一个文件夹中检出主干,然后使用TortoiseSVN → 切换...到你的新分支。


1
感谢您的快速回复。这就是我所读到的内容。基本上,我一直在为(在这次对话中称其为dir_a)工作,而另一个团队则将当前网站的完整工作副本放入了一个新目录,我们称之为dir_b。在他们进行更改后,我进入了顶级文件夹,并将我的工作副本从dir_a切换到dir_b。现在,基于此,这是否意味着我的当前工作副本实际上具有此新分支的所有新功能? - Webtect
1
据我所知,只有在您拉取更改之前才能进行操作。无论如何,除非您有严重的带宽问题,否则我建议您避免切换步骤,直接检出分支即可。 - Paul Sasik
@PaulSasik,你知道我在哪里可以找到更新的链接吗? - estebro

5
在常规的“属性”对话框中(右键单击Windows资源管理器),您有一个“Subversion”选项卡,可以告诉您文件或目录指向哪个URL。使用它来验证您是否实际上已经切换到了正确的分支。
另外值得注意的是,任何未提交的本地更改仍将存在于您的工作副本中。

4

关于 svn switch 可能存在一些误解:

起初我认为存在一个切换命令就意味着 SVN 需要有一个“当前”的或“选定的”工作副本才能正常运行。比如我正在 trunk 上工作,然后我又在分支 B 上工作,因此需要从一个工作副本切换到另一个。但事实是:不存在所谓的当前工作副本!只有许多本地工作副本:一个用于 trunk,一个用于分支,另一个用于标签等等。但是没有一个被“隐式选择”。

正如 Paul Sasik 所引用的那样:switch 允许只有一个工作副本,比如 trunk,然后将该本地工作副本与远程仓库中的目标分支或标签进行合并。 switch 仅同步本地和远程之间的差异,因此避免了整个解决方案的检出。执行该命令后,进一步对工作副本进行的所有提交都将发生在已切换到的远程仓库文件夹上,即已定位的仓库。无论最初的检出是为了哪个本地文件夹。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接