什么是工作副本,什么是“切换”为我在龟龟SVN做?

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

我决定将这个版本标记为“Version-2.0”,所以我已经命名了这个快照。 我还创build了一个“Version-2.0”分支,以便我需要修复任何东西并将其合并到我的主干中。

读完Tortoise SVN帮助文件之后,它告诉我可以将我的“工作副本”切换到新创build的分支。

这是什么意思?

目前,我有:

/项目/中继线/
/项目标签/
/项目/分支机构/

全部检出。 那么“切换”的意义何在呢? 目前,我只是去我的/树干文件夹,并做我的工作。 当我做了我的标签和分支,它在我做了更新后,在我的/标签/和/分支/文件夹中创build文件夹。

为什么我不去/Branches/Experiemental-v3.0/,如果我想在那里做我的工作?

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

工作副本是您已签出到工作区域的副本。 不pipe它是一个分支还是从主干都没关系。 这是你正在做的。

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

所以工作副本是你的结帐,但它是获得的。

切换只是改变你的工作副本承诺的分支。 把它看作像改变你的提交所在的版本库中的指针。 借助于获取分支机构与工作区域之间的任何差异。

通常不需要检出整个存储库。 颠覆分支和标签的目的是便宜 – 即,他们不创build相同的文件的副本,只是引用它们。 当你把整个版本库检出来的时候,当有人因任何原因分支或者标签的时候,它突然增加了你本地硬盘上的空间。

您可以根据需要检出尽可能多的部分存储库。 所以你可以有一个名为“trunk”的文件夹,它是干线的工作副本,另一个“版本2”将是你的分支的工作副本。 这样,创build的任何附加标签都不会被检出。

或者你可以有一个名为“项目”的结账,如果它最初是指向主干,你可以切换到其中一个分支或标签 – 这是重新使用原始结帐的方式,所以你不必一切都重新结束。

这样做对你正在使用树干是非常有用的,并且突然意识到你需要将你的修改提交给一个分支 – 可能是因为它们太过实验了。 要做到这一点,从你的工作副本分支,切换到新的分支然后提交,你的变化将转到分支,而不是中继。

工作副本是您检出的代码副本。 通常情况下,您只需检出/ Project / trunk /,而不是存储库的整个结构。 切换正在改变你的工作副本的根。 你使用SVN的方式不是如何完成的。

你已经检查了整个项目树 – 这可能不是你想要的。 对于干线工作,检查一个根源于“trunk”的拷贝,而不是来自项目根目录。 同样,对于分支工作,只检查你想要的分支。

您的工作副本是您用来从subbversion检出项目的硬盘驱动器上的任何文件夹。 您可以“切换”到该工作副本的另一个项目,以便版本化的内容将类似于其他项目的内容。

这对于从主干切换到分支非常有用,而不必检出新副本。 例如,它可以节省一些编译时间,因为未版本化的文件(编译对象,库,可执行文件)不会被删除或更改。

戴夫