如何检出SVN中的旧版本



我有两个版本的代码,我想在它们之间进行切换。如果我运行

svn checkout -r 5 file:///path.to.svn.repo

和当前版本在目标目录高于5,我不能返回。在我看来,这是有意为之,我应该使用归并。合并更新最新版本,我不希望那样。有没有简单的方法来交替?

我想我可以把代码分成两个项目,但我不确定这是正确的解决方案。

为什么不将旧代码检出到另一个文件夹中呢?

c:MySource
c:MyOlderSource

然而,如果你只想要一个文件夹,那么merge是正确的方法。我不知道你说的合并会"更新最新版本"是什么意思。它将更新您的工作副本(BASE版本),但不会更新存储库副本(HEAD版本),但这正是您想要的行为。

根据我的理解,我相信您至少需要创建一个分支(如果您想要一个开发分支和一个发布分支,可能需要两个)

所以svn cp -r5 file:///path.to.repo/trunk file:///path.to.repo/branches/development是一种典型的从旧版本的代码创建分支的方式。

这基本上复制了trunk目录在修订版5中的样子,并将其放入新位置"branches/development"

现在我假设你以标准的svn方式设置了你的存储库(包括主干、分支和标签),不管这种设置,仍然可以使用这个命令。

您可能还对svn switch命令感兴趣,它允许您将工作副本从存储库的一个区域切换到另一个区域。或者你可以只签出2个工作副本(取决于你需要多少磁盘空间,我猜)

请查看svn红皮书,了解svn: http://svnbook.red-bean.com/

中的命令等信息。

最新更新