Планирование макета хранилища для git-миграции - PullRequest
1 голос
/ 22 февраля 2012

В настоящее время у меня есть большой (30K коммитов) репозиторий SVN, который я нахожусь в процессе преобразования в git.Наша кодовая база в настоящее время имеет общий (базовый) набор кода, а также две отдельные базы (Java и .NET).Это позволяет нам совместно использовать общий код, а также использовать разные языки, когда мы отправляем сборку клиенту, который будет поддерживать только один из двух языков.

В настоящее время в репозитории SVN интенсивно используется svn: externals дляпри оформлении заказа создайте конкретный макет, который использует общий код, а также код для конкретного языка.

Развернутая версия макета хранилища выглядит следующим образом:

Core
 +
 +-->classes
 +-->public_html
     +>admin
     +>web
       +>images
       +>javascript
       +>styles

 Java
 +
 +-->public_html
     +>web
       +>includes
       +>code


 .NET
 +
 +-->public_html
     +>web
       +>includes
       +>code

В настоящее время, когда я извлекаю данные из транка в SVN, я получу вышеуказанный макет на диске, однако, если я извлекаюподпапка (Java или .NET), svn: externals даст мне следующий макет:

Java/.NET
+>classes
+>public_html
  +>admin
  +>web
    +>code
    +>javascript
    +>images
    +>includes
    +>styles

Это также позволит мне отредактировать код в этой папке, и проверка будет зафиксировать правильные места врепозиторий.

Мой вопрос заключается в том, будет ли это достижимо в git, с использованием субмодулей или каким-либо другим методом, или нам нужно переосмыслить весь наш макет и как достичь того, чего мы хотим, когдаречь идет о проверке ветки для создания сборки.Если мы можем сделать это с помощью подмодулей, должен ли я следовать стандартным учебникам по подмодулям или есть что-то более глубокое, на что я должен обратить внимание?

Спасибо!

1 Ответ

1 голос
/ 22 февраля 2012

Вы не получите такую ​​точную структуру каталогов с подмодулями, потому что каждый из них будет находиться в своем собственном каталоге в родительском репо.
Т.е. вы бы получили

Java
 +
 +-->public_html
 *-->Core
       +
       +-->public_html

(вместо одного смешанного 'public_html')

Я бы по-прежнему рекомендовал субмодули (и вы можете вносить изменения непосредственно в них, как описано в « Истинная природа подмодулей »).
Однако учтите, что подмодули git сильно отличаются от svn:externals.

Как только вы извлечете репозиторий Java (со ссылкой на него в репозитории Core), я воссоздаю правильную структуру каталогов с помощью символических ссылок (доступно в Unix или Windows).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...