您需要在运行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
在本例中,我在/opt/repos 目录下创建了两个名为foo 和bar 的Subversion 存储库目录。当我启动svnserve 时,我给它一个包含我的Subversion 存储库的目录的名称。我的存储库名称是我的目录的名称。我有目录foo 和bar,这就是名字。如果我想更改存储库的名称,我需要在服务器上更改它们:
$ 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
现在,您将能够使用新名称访问您的存储库。但是,我建议您通过以 /export/svnserve 为 root 启动 svnserve 进程来简化您的 Subversion URL:
$ svnserve -r /export/svnrepo -d
现在,用户可以使用略短的名称访问他们的项目:
$ svn co svn://somename.dev.loc.con.dept/newname/CL_abc/trunk