如何更改SVN存储库以使用trunk/branches/tags结构并将工作副本切换到它

use*_*854 3 svn

我当前的存储库是:/ var/www/svn / project .all我的项目文件夹中的文件.目前没有trunk,branches,tags结构.现在我用trunk,branches,tags 创建了一个名为"/ var/www/svn/projectnew"的新项目.我注意到转储"/无功/网络/ SVN /项目",并加载到"/无功/网络/ SVN/projectnew/trunck"和创建一个分支"/无功/网络/ SVN/projectnew /分支机构/ site1的"从树干.

目前我的工作副本指向"/ var/www/svn/project".我试图将我的工作副本从"/ var/www/svn/project"切换到"/ var/www/svn/projectnew/branches/site1",但它说,

存储库UUID'd3f06af7-c344-2d45-b1bd-7799e0e99d7a'与预期的UID'f5f9f6ac-3f50-7e4d-a9d4-0bc9a9b443b8'不匹配.

帮助我如何使用它?

the*_*ill 7

原始回复:

这里有两件事你可以做 - 一个是将文件db/uuid从旧服务器复制到新服务器,如果你只是将svn存储库转移到新机器而你打算关闭旧机器.另一件事取决于您正在使用的SVN版本.如果您使用1.7然后使用svn relocate(请参阅文档),或者对于较旧的客户端,请使用针对此方案--relocatesvn switch命令选项.

编辑:

我误解了 - 你想用trunk/branches/tags结构重新创建你的存储库.在这种情况下,转储和重新加载项目将无济于事,因为它不会神奇地创建新结构 - 它只会重新创建您已有的结构.您可以轻松地在存储库浏览器中创建新结构(如果您正在使用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"
Run Code Online (Sandbox Code Playgroud)

现在,您需要做的就是切换现有的工作副本:

svn switch http://.../project  http://.../trunk/project
Run Code Online (Sandbox Code Playgroud)