Как переименовать репозиторий в SVN?
Мне нужно переименовать существующее корневое имя репозитория в новое.
Я использую сервер 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
Переименуйте svn: //somename.dev.loc.con.dept/export/svnrepo/old_name
в
svn: //somename.dev.loc.con.dept/export/svnrepo/new_nameВ командной строке это должно быть:
/export/svnrepo/**old_name** to /export/svnrepo/**new_name**
Нужно переименовать имя репо тоже
CL_abc
в
CL_newname
1 ответ
Вы должны сделать это на сервере Subversion, на котором выполняется svnserve
команда. 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
В приведенном выше примере я создал хранилище Subversion под названием foo
и я побежал svnserve
с этим хранилищем в качестве корня сервера.
Когда я получаю доступ к этому хранилищу, URL-адрес не содержит имя хранилища. Корнем моего URL является просто имя машины. Там нет ничего, чтобы переименовать.
Несколько хранилищ
$ 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
В этом примере я создал две директории хранилища Subversion под названием foo
а также bar
под /opt/repos
каталог. Когда я запускаю 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
Теперь вы сможете получить доступ к своему хранилищу под новым именем. Однако я бы порекомендовал вам упростить URL-адрес Subversion, запустив svnserve
процесс с /export/svnserve
как корень:
$ svnserve -r /export/svnrepo -d
Теперь пользователи могут получить доступ к своим проектам с немного более коротким названием:
$ svn co svn://somename.dev.loc.con.dept/newname/CL_abc/trunk