Как переименовать репозиторий в 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
  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 ответ

Решение

Вы должны сделать это на сервере 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
Другие вопросы по тегам