如何在SVN中重命名存储库?

时间:2013-03-15 14:43:45

标签: svn svnadmin svnserve svn-repository

我需要将现有的存储库根名称重命名为新名称。

我正在使用svnserve服务器。

URL: svn://somename.dev.loc.con.dept/export/svnrepo/**old_name/CL_abc/trunk
Repository Root: svn://somename.dev.loc.con.dept/export/svnrepo/**old_name
  1. 重命名svn://somename.dev.loc.con.dept/export/svnrepo/ old_name

    的svn://somename.dev.loc.con.dept/export/svnrepo/的 NEW_NAME

  2. 在命令行中应该是:

    /export/svnrepo/**old_name**  to /export/svnrepo/**new_name** 
    
  3. 还需要重命名回购名称

    CL_abc

    CL_newname

1 个答案:

答案 0 :(得分:1)

您需要在运行svnserve命令的Subversion服务器上执行此操作。 svnserve命令可以是使用svnadmin create命令创建的存储库的名称,也可以是包含使用svnadmin命令创建的多个存储库的目录。

一个存储库

$ hostname
$ mysvn
$ cd /opt/repos
$ svnadmin create foo
$ svnserve -r foo -d

访问该存储库

$ svn ls svn://mysvn
$ svn mkdir svn://mysvn/trunk svn://mysvn/tags svn://mysvn/branches
$ svn co svn://mysvn/trunk

在上面的示例中,我创建了一个名为foo的Subversion存储库,并以该存储库作为服务器的根目录运行svnserve

当我访问该存储库时,该URL中没有存储库名称。我的URL的 root 就是机器名。没有什么可以重命名的。

多个存储库

$ hostname
$ mysvn
$ cd /opt/repos
$ svnadmin create foo
$ svnadmin create bar
$ svnserve -r . -d

访问这些存储库

$ svn ls svn://mysvn
svn: E210005: Unable to connect to a repository at URL 'svn://localhost'
svn: E210005: No repository found in 'svn://localhost'
$ svn ls svn://mysvn/foo
$ svn ls svn://mysvn/bar
$ svn mkdir svn://mysvn/bar/trunk svn://mysvn/bar/tags svn://mysvn/bar/branches
$ svn co svn://mysvn/bar/trunk

在此示例中,我在foo目录下创建了两个名为bar/opt/repos的Subversion存储库目录。当我启动svnserve时,我给它包含我的Subversion存储库的目录的名称。我的存储库名称是我的目录的名称。我有目录foobar,那里有名字。如果我想更改存储库的名称,我需要在服务器上更改它们:

$ hostname
mysvn
$ pkill svnserve   #Stop the SVN server
$ cd /opt/repos
$ mv bar to fubar  #Change the repo name
$ svnserve -r /opt/repos -d

访问存储库

$ svn ls svn:// mysvn / fubar / trunk

当我重新启动SVN服务器时,我的存储库有一个新名称。

看起来您需要执行以下操作:

$ ssh somename.dev.loc.con.dept  #Get on the Subversion server
$ pkill svnserve                 #Shutdown the server
$ mv /export/svnrepo/oldname /export/svnrepo/newname
$ svnserve -r / -d

现在,您将能够从新名称访问您的存储库。但是,我建议您通过以svnserve为根发起/export/svnserve进程来简化您的Subversion网址:

$ svnserve -r /export/svnrepo -d

现在,用户可以使用稍短的名称访问他们的项目:

$ svn co svn://somename.dev.loc.con.dept/newname/CL_abc/trunk