我有一个软件应用程序,我已经达到了一个重要的里程碑,版本2.0.
我决定将此版本标记为"Version-2.0",因此我将此快照命名为.我还创建了一个"Version-2.0"分支,以防我需要修复任何东西并将其合并回我的主干.
阅读Tortoise SVN帮助文件后,它通知我可以将"工作副本"切换到新创建的分支.
这是什么意思?
目前,我有:
/ Project/Trunk/
/Project/Tags/
/Project/Branches /
全部签出.那么"转换"的意义何在?目前,我只是去我的/ trunk文件夹做我的工作.当我制作我的标签和分支时,它在我做了更新后在我的/ Tags /和/ Branches /文件夹中创建了文件夹.
为什么我不去参加/Branches/Experiemental-v3.0/并在那里做我的工作?
有人可以向我解释"工作副本"和"转换"的概念吗?我错过了什么?人们通常没有检查出整个存储库,是吗?
工作副本是您已签出到工作区域的副本.无论是分支还是主干都没关系.这就是你正在做的事情.
您可以使用svn开关在同一父级的分支(或更正确的副本)之间切换.这基本上会说,当前工作副本和我切换到的分支之间有什么不同.然后,它会将您当前工作副本的更新执行到您切换到的分支的修订版.
所以工作副本是你的结账,但它是获得的.
切换只是改变工作副本提交的分支.可以把它想象成更改提交将进入的存储库中的指针.借助从分支到您工作区域的任何差异.
通常没有必要检出整个存储库.subversion中的分支和标签旨在便宜 - 即,它们不会创建相同文件的副本,只需引用它们即可.当您检查完整个存储库时,当任何人出于任何原因分支或标记时,它会突然增加本地硬盘驱动器上使用的空间.
您可以根据需要检出存储库的多个部分.所以你可以有一个名为'trunk'的文件夹,它只是trunk的工作副本,另一个'version2'是你分支的工作副本.这样,创建的任何其他标记都不会被检出.
或者你可以有一个名为'project'的结账,如果它最初指向trunk,你可以将它切换到其中一个分支或标签 - 这是一种重新使用原始结账的方式,这样你就不必得到一切都在重新开始.
执行此操作非常有用,您正在使用trunk并突然意识到您需要将更改提交到分支 - 可能是因为它们太过实验性.为此,从您的工作副本分支,切换到新分支然后提交,您的更改将转到分支而不是主干.