2012-07-19 68 views
3

我当前的存储库是:/var/www/svn/project .all我的文件在项目folder.it中没有树干,分支,标签结构。现在我创建了一个新项目,名称为“/ var/www/svn/projectnew”带有主干,分支,标签。我把“/ var/www/svn/project”转储并加载到“/ var/www/svn/projectnew/trunck”,并在“/ var/www/svn/projectnew /分行/ site1“从主干。如何更改SVN存储库以使用trunk/branches/tags结构并将工作副本切换到它

当前我的工作副本指向“/ var/www/svn/project”。我试图从 “/无功/网络/ SVN /项目” 切换我的工作拷贝到“/无功/网络/ SVN/projectnew /分支机构/ site1的”,但它说,

库UUID“d3f06af7-C344 -2d45-b1bd-7799e0e99d7a'与预期的UID'f5f9f6ac-3f50-7e4d-a9d4-0bc9a9b443b8'不匹配。

帮我解释一下如何去做这件事?

+0

怎么做的,你的工具转储项目?如果您只是复制粘贴,那么您的存储库将指向旧项目。您需要先删除SVN绑定,然后执行该操作,您需要导出代码,如果您使用的是Tortoise SVN,那么这很容易。 – pramodtech 2012-07-19 05:52:32

+0

我使用下面的命令来执行此操作,$ svnadmin dump/var/www/svn/project> project.dump,$ svnadmin load/var/www/svn/projectnew/trunck --parent-dir trunk user1536854 2012-07-19 08:58:49

回答

6

原答复:

有两件事情可以做在这里 - 一个是把文件db/uuid从旧服务器复制到新的一个,如果你只是转移SVN仓库到新的机器和你计划关闭旧的。另一件事取决于你使用的SVN版本。如果您使用的是1.7,则使用svn relocate(请参阅docs),或者对于较早的客户端,请使用svn switch命令的--relocate选项,该命令适用于此场景。

编辑:

我误解了 - 要重新创建与主干/分支/标签结构的存储库。在这种情况下,转储和重新加载项目将无济于事,因为它不会奇迹般地创建新结构 - 它只会重新创建已有的结构。您可以轻松地在存储库浏览器(如果您使用的是TortoiseSVN)或直接从您的工作副本中创建新结构。如果你是从命令行执行的话,语法就会像这样,这取决于确切的目录结构。将http:.../替换为svn服务器的地址。噢,先备份仓库!

# check out top-level directory 
svn co http://.../ 
# make new trunk dir and move all contents to it -- note spelling of 'trunk' 
mkdir trunk 
svn add trunk 
svn mv * trunk 

# now create tags and branches 
mkdir tags 
mkdir branches 
svn add trunk tags branches 

svn commit -m "Created new repository layout" 

现在你应该需要做的,在切换现有的工作副本是:

svn switch http://.../project http://.../trunk/project 
+0

我没有使用新的服务器。 (旧的:/ var/www/svn/project,新的:/ var/www/svn/projectnew /)的旧版本库和新版本库。转让存储库的原因是我的旧回购没有树干,分支机构structure.so,只有创建新的存储库与树干,分支机构结构,并试图切换我的WC分支在新回购。 可以做到这一点吗? – user1536854 2012-07-20 06:34:03

+0

谢谢。以上步骤用于更改当前svn结构和子文件夹之间的切换。我已检查过它工作正常。 如果我想在新的存储库中执行此操作,有可能吗? – user1536854 2012-07-20 11:34:38

+0

您可以在新的存储库中执行此操作,但我不明白为什么您需要这样做,因为您可以在原始存储库中创建所需的结构。 – 2012-07-20 14:30:54

0

另一种方式是保持历史,因为它是和切换到新的结构,在新的起点修订。在这种情况下,您不需要使用存储库的转储/加载操作。

  1. “SVN删除”一切从库根
  2. 创建主干/分支/标签结构
  3. “SVN复制”信息库内容从版本删除之前干路
相关问题