Перемещение папок svn в собственное хранилище

У меня есть репозиторий, который расширяется и расширяется. Сейчас я убираю это и хочу переместить каждый проект в отдельный репозиторий. Моя текущая настройка:

[ProjectRepo]
- Projects
  - Software1
    - trunk (VS2010 solution inside here)
      - .sln
      - vs project #1
      - vs project #2
      - vs project #3      
    - branches
    - tags
  - Software2
    - trunk (VS2010 solution inside here)
      - .sln
      - vs project #1
      - vs project #2
      - vs project #3      
    - branches
    - tags
  - Shared
    - shared component #1 (vs project)
      - trunk
      - branches
      - tags
    - shared component #2 (vs project)
      - trunk
      - branches
      - tags

Теперь я хочу переместить каждый проект и каждое решение в свой репозиторий в каталоге магистрали. Я пытался использовать svnadmin dump и svndumpfilter, но проблема в том, что Node-path остается как старая структура. Как попасть к следующей структуре?

[Software #1 Repo]
- trunk
- branches
- tags

[Software #2 Repo]
- trunk
- branches
- tags

[Shared Component #1 Repo]
- trunk
- branches
- tags

person ferdyh    schedule 07.05.2012    source источник
comment
Какие преимущества в переносе проектов в разные репозитории? Обычно удобнее иметь весь код в одном репо.   -  person Davide Gualano    schedule 07.05.2012
comment
У нас общие компоненты для нескольких частей программного обеспечения. На мой взгляд, проще привязать определенный тег к ревизии в отдельных репозиториях ... Или у вас другое мнение по этому поводу?   -  person ferdyh    schedule 08.05.2012
comment
Взгляните на свойство svn: external, чтобы узнать, как управлять зависимостями с общими компонентами: svnbook.red-bean.com/en/1.7/svn.advanced.externals.html   -  person Davide Gualano    schedule 08.05.2012
comment
В настоящее время мы используем svn: externals, но разве не проще / лучше пометить использование ревизий, связанных с компонентом, вместо общего номера ревизии всего репозитория?   -  person ferdyh    schedule 08.05.2012
comment
По моему опыту, это всего лишь вопрос привычек. Кроме того, поддержка нескольких репозиториев усложняет управление пользователями (больше файлов доступа и паролей для управления), стратегии резервного копирования и затрудняет повторное использование части программного обеспечения1 в программном обеспечении2 в случае возникновения такой ситуации.   -  person Davide Gualano    schedule 08.05.2012
comment
svn: внешние элементы сложно использовать в нескольких репозиториях? Что касается управления пользователями, мы используем VisualSVN Server с интеграцией ActiveDirectory, поэтому проблем быть не должно (мы всего лишь небольшая компания).   -  person ferdyh    schedule 08.05.2012
comment
Можно использовать внешние элементы, указывающие на другой репозиторий, но, на мой взгляд, это противоречит одной из целей и преимуществ использования системы контроля версий, такой как Subversion: хранение всего кода в централизованном, надежном и общем месте. Но, как я уже сказал, это только мое мнение, я надеюсь, что дал вам несколько моментов для размышления, пока вы решаете лучшую стратегию для вашего конкретного сценария :)   -  person Davide Gualano    schedule 08.05.2012


Ответы (1)


Если вы можете успешно отфильтровать проекты с помощью svndumpfilter (я не думаю, что это возможно, если между проектами было какое-либо «взаимодействие», например, копирование или слияние), тогда вы можете создать новые репозитории со старой структурой, а затем создайте новую структуру с помощью svn copy и svn delete (т.е. скопируйте Software1Repo / Projects / Software1 / trunk в Software1Repo / trunk, затем удалите svn и т. д.).

person malenkiy_scot    schedule 07.05.2012