2012-06-29 2 views
1

Таким образом, проблема заключается в следующем:Лучший способ организовать репозиторий подрывной деятельности?

У нас есть один сервер репозитория SVN, который содержит несколько проектов:

http://server.com/svn/projectA/trunk 
http://server.com/svn/projectA/branches 
http://server.com/svn/projectA/tags 

http://server.com/svn/projectB/trunk 
http://server.com/svn/projectB/branches 
http://server.com/svn/projectB/tags 

ProjectA и ProjectB действительно только компоненты ProjectX. То, что каждый хочет сейчас:

http://server.com/svn/projectX/trunk/ProjectA 
http://server.com/svn/projectX/trunk/ProjectB 
http://server.com/svn/projectX/branches/OldVersion/ProjectA 
http://server.com/svn/projectX/branches/OldVersion/ProjectB 
http://server.com/svn/projectX/tags/PreMajorChange/ProjectA 
http://server.com/svn/projectX/tags/PreMajorChange/ProjectB 

Я думал svndump, но потом recheckin все такого рода данные означают, что наши номера ревизий превысит 100000. Не уверен, что это лучший способ сделать это (или, может быть, это единственный способ).

Или это будет так же просто, как svn move?

ответ

3

svn move. Он сохранит историю и минимально увеличит размер хранилища SVN. Сначала вы извлекаете хранилище на корневом уровне, а затем делать ходы:

mkdir -p projectX/{trunk,branches/OldVersion,tags/PreMajorChange} 

svn add projectX 

svn move projectA/trunk projectX/trunk/ProjectA 

svn move projectA/branches/* projectX/branches/OldVersion/ProjectA 

svn move projectA/tags/* projectX/tags/PreMajorChange/ProjectA 

svn move projectB/trunk projectX/trunk/ProjectB 

svn move projectB/branches/* projectX/branches/OldVersion/ProjectB 

svn move projectB/tags/* projectX/tags/PreMajorChange/ProjectB 

svn commit . -m "Restructuring" 

Попробуйте сначала на тестовом хранилище (например, скопировать существующий на svnadmin hotcopy).

1

Я думаю, вы хотите сохранить историю фиксации, даже явно не написанную?

Вы можете создать новое репо для ProjectX, а затем связать с ним проекты A и B, используя свойство svn: externals. Его как символические ссылки в простой FS. вы можете прочитать быстрый образец here.

Это более простой способ, поскольку вам не нужно выполнять какие-либо «опасные» операции.

+0

Вы можете создать новое репо для ProjectX, а затем связать проекты A и B с ним, используя свойство svn: externals. Его как символические ссылки в простой FS. – Arcadien

Смежные вопросы