首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cvs2svn后的颠覆问题

cvs2svn后的颠覆问题
EN

Stack Overflow用户
提问于 2009-05-12 13:33:06
回答 3查看 462关注 0票数 0

我正在使用eclipse / subclipse进行开发。我还有TortoiseSVN客户端。

我正在尝试移动一个CVS存储库。旧的CVS存储库只有一个项目。我们希望重新划分,因为有几个项目有自己的开发流程,应该单独管理。

我使用cvs2svn运行了存储库的标准全移动,没有任何问题。

我想重组subversion存储库中的项目,所以在cvs2svn之后,我尝试进行svn迁移并进行了重组。我成功地做了这个动作,再一次没有问题。

我在eclipse中签出了这个项目,然后在其中一个移动的项目中选择一个文件。哪个项目似乎不重要。如果我在eclipse中执行更新版本,并在文件的历史记录中选择要更新的版本,该文件将从我的文件系统中删除,但旧版本不会下降。文件就这样消失了。

我使用TortoiseSVN也有同样的问题,所以我假设这不是一个启示问题。

有趣的是,如果我将一个项目的svn move返回到它最初被转换到的位置,并且遵循相同的步骤,我没有任何问题,更新版本可以像预期的那样工作。

因此,我的问题是:

  1. 在cvs2svn迁移过程中,我是否做错了什么,从而阻止了我成功地重新组织我的subversion存储库?
  2. 有没有更好的方法来做我想做的事?
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-05-13 12:10:52

在我工作的地方,我们决定在从CVS导入之后将SVN中的文件移动。CVS的移动历史功能有限,而SVN存储库可以“回滚”查看它在任何时候的样子。同样,通过这样做,决定保留所有变化和行动的历史更为重要。

我们所做的就是将模块从CVS移到SVN中。然后,使用存储库浏览器,在签出之前,根据需要移动所有文件。

现在,当您将单个文件更新到可能消失的旧版本时,这并不能解决您的问题。我们决定接受这种情况,因为我们试图从以文件为中心的存储库(CVS)视图转移到基于快照的视图。因此,如果我们需要回到一个旧版本,我们更新整个项目。如果您只是查看不同的历史,当我们允许移动/重命名时,这在TortoiseSVN中运行得很好。

票数 0
EN

Stack Overflow用户

发布于 2009-05-12 21:29:23

  1. 不,你没做错什么
  2. 是。您应该在通过导入CVS之前重新组织CVS存储库

造成这一症状的原因:

你总是需要检查一个文件夹。如果更新到以前的版本,此文件夹可能不存在(该文件夹已被移动),则Subversion将删除其内容。Subversion中的重命名始终实现为remove和add。因此,您在文件之间有一个很薄的连接,但它只是用于该文件的历史记录。如果您想查看新的布局,您需要签出一个同时包含目标文件夹和源文件夹的文件夹。您将无法“看到”该文件夹的移动,然而,如果您在签出中只有一个文件夹,该文件夹将消失,您需要签出一个不同的URL(目标或源)。

因此,在CVS中重构项目并进行迁移就更容易了。缺点:您将没有任何重组的历史记录,并且无法构建/编译以前的版本(在CVS中创建)。

票数 1
EN

Stack Overflow用户

发布于 2009-05-13 08:07:13

我同意Parker的观点,即在将CVS中的项目转换为Subversion之前,重新组织CVS中的项目是容易的和可取的,如果您要做的是在单个项目中重新组织文件夹和文件。

但是,如果您想重新组织项目本身的布局(即一个项目相对于另一个项目的布局),您可以轻松地作为cvs2svn转换的一部分来完成这一工作。当您执行多项目转换时,您可以指定cvs2svn应该将每个项目的主干、分支和标记目录放在哪里。只需根据您想要的新项目组织来放置它们,那么使用任何常用的工具在使用存储库时都应该没有问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/852821

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档