什么是工作副本以及"切换"在Tortoise SVN中为我做了什么?

Kin*_*tor 60 svn tortoisesvn working-copy svn-switch

我有一个软件应用程序,我已经达到了一个重要的里程碑,版本2.0.

我决定将此版本标记为"Version-2.0",因此我将此快照命名为.我还创建了一个"Version-2.0"分支,以防我需要修复任何东西并将其合并回我的主干.

阅读Tortoise SVN帮助文件后,它通知我可以将"工作副本"切换到新创建的分支.

这是什么意思?

目前,我有:

/ Project/Trunk/
/Project/Tags/
/Project/Branches /

全部签出.那么"转换"的意义何在?目前,我只是去我的/ trunk文件夹做我的工作.当我制作我的标签和分支时,它在我做了更新后在我的/ Tags /和/ Branches /文件夹中创建了文件夹.

为什么我不去参加/Branches/Experiemental-v3.0/并在那里做我的工作?

有人可以向我解释"工作副本"和"转换"的概念吗?我错过了什么?人们通常没有检查出整个存储库,是吗?

ng.*_*ng. 46

工作副本是您已签出到工作区域的副本.无论是分支还是主干都没关系.这就是你正在做的事情.

您可以使用svn开关在同一父级的分支(或更正确的副本)之间切换.这基本上会说,当前工作副本和我切换到的分支之间有什么不同.然后,它会将您当前工作副本的更新执行到您切换到的分支的修订版.

所以工作副本是你的结账,但它是获得的.

切换只是改变工作副本提交的分支.可以把它想象成更改提交将进入的存储库中的指针.借助从分支到您工作区域的任何差异.

  • 我建议不要害怕按照自己的方式工作,并在本地机器上检查所有分支机构.这就是我们工作了大约5年多的时间,它让生活更简单.使用交换机的东西有好处,只是在一个签出的分支上工作,但是我想贡献它完全没有,并且检查了整个批次,这对我们来说很好. (6认同)
  • 但这并没有回答这个问题,King问的是,人们通常不会检查所有文件夹吗?就像我进入/Branches/Experiemental-v3.0/文件夹并进行一些更改而不会在提交时将更改提交到此文件夹?谁关心工作副本和"切换到"目录.你所说的意味着用户一次只签出一份副本. (4认同)

Jim*_*m T 23

通常没有必要检出整个存储库.subversion中的分支和标签旨在便宜 - 即,它们不会创建相同文件的副本,只需引用它们即可.当您检查完整个存储库时,当任何人出于任何原因分支或标记时,它会突然增加本地硬盘驱动器上使用的空间.

您可以根据需要检出存储库的多个部分.所以你可以有一个名为'trunk'的文件夹,它只是trunk的工作副本,另一个'version2'是你分支的工作副本.这样,创建的任何其他标记都不会被检出.

或者你可以有一个名为'project'的结账,如果它最初指向trunk,你可以将它切换到其中一个分支或标签 - 这是一种重新使用原始结账的方式,这样你就不必得到一切都在重新开始.

执行此操作非常有用,您正在使用trunk并突然意识到您需要将更改提交到分支 - 可能是因为它们太过实验性.为此,从您的工作副本分支,切换到新分支然后提交,您的更改将转到分支而不是主干.

  • 恕我直言,这应该是公认的答案。它比目前接受的要好得多,因为这个实际上解决了这个问题。 (2认同)

var*_*tec 5

工作副本是您已签出的代码副本。通常,您只检查 /Project/trunk/,而不是存储库的整个结构。切换正在更改您的工作副本的根目录。您使用 SVN 的方式不是应该如何完成。