我正在使用eclipse / subclipse进行开发。我还有TortoiseSVN客户端。
我正在尝试移动一个CVS存储库。旧的CVS存储库只有一个项目。我们希望重新划分,因为有几个项目有自己的开发流程,应该单独管理。
我使用cvs2svn运行了存储库的标准全移动,没有任何问题。
我想重组subversion存储库中的项目,所以在cvs2svn之后,我尝试进行svn迁移并进行了重组。我成功地做了这个动作,再一次没有问题。
我在eclipse中签出了这个项目,然后在其中一个移动的项目中选择一个文件。哪个项目似乎不重要。如果我在eclipse中执行更新版本,并在文件的历史记录中选择要更新的版本,该文件将从我的文件系统中删除,但旧版本不会下降。文件就这样消失了。
我使用TortoiseSVN也有同样的问题,所以我假设这不是一个启示问题。
有趣的是,如果我将一个项目的svn move返回到它最初被转换到的位置,并且遵循相同的步骤,我没有任何问题,更新版本可以像预期的那样工作。
因此,我的问题是:
发布于 2009-05-13 12:10:52
在我工作的地方,我们决定在从CVS导入之后将SVN中的文件移动。CVS的移动历史功能有限,而SVN存储库可以“回滚”查看它在任何时候的样子。同样,通过这样做,决定保留所有变化和行动的历史更为重要。
我们所做的就是将模块从CVS移到SVN中。然后,使用存储库浏览器,在签出之前,根据需要移动所有文件。
现在,当您将单个文件更新到可能消失的旧版本时,这并不能解决您的问题。我们决定接受这种情况,因为我们试图从以文件为中心的存储库(CVS)视图转移到基于快照的视图。因此,如果我们需要回到一个旧版本,我们更新整个项目。如果您只是查看不同的历史,当我们允许移动/重命名时,这在TortoiseSVN中运行得很好。
发布于 2009-05-12 21:29:23
造成这一症状的原因:
你总是需要检查一个文件夹。如果更新到以前的版本,此文件夹可能不存在(该文件夹已被移动),则Subversion将删除其内容。Subversion中的重命名始终实现为remove和add。因此,您在文件之间有一个很薄的连接,但它只是用于该文件的历史记录。如果您想查看新的布局,您需要签出一个同时包含目标文件夹和源文件夹的文件夹。您将无法“看到”该文件夹的移动,然而,如果您在签出中只有一个文件夹,该文件夹将消失,您需要签出一个不同的URL(目标或源)。
因此,在CVS中重构项目并进行迁移就更容易了。缺点:您将没有任何重组的历史记录,并且无法构建/编译以前的版本(在CVS中创建)。
发布于 2009-05-13 08:07:13
我同意Parker的观点,即在将CVS中的项目转换为Subversion之前,重新组织CVS中的项目是容易的和可取的,如果您要做的是在单个项目中重新组织文件夹和文件。
但是,如果您想重新组织项目本身的布局(即一个项目相对于另一个项目的布局),您可以轻松地作为cvs2svn转换的一部分来完成这一工作。当您执行多项目转换时,您可以指定cvs2svn应该将每个项目的主干、分支和标记目录放在哪里。只需根据您想要的新项目组织来放置它们,那么使用任何常用的工具在使用存储库时都应该没有问题。
https://stackoverflow.com/questions/852821
复制相似问题