Репозитории Single или Multiple Git для библиотек, совместно используемых командами - PullRequest
8 голосов
/ 28 февраля 2010

Я смотрю, как / если мне следует перейти с SVN на GIT.

В настоящее время у меня есть многоуровневый набор проектов в svn, который состоит из слоев, так что D использует C, который использует B, который использует A. Фактические развернутые проекты, такие как X, Y, Z, используют любую из общих библиотек A-D. Цель состоит в том, чтобы будущие проекты и другие команды совместно использовали базовые библиотеки (A-D) и обеспечили лучший контроль ветвления.

В svn, если мы хотим разрешить другим командам использовать библиотеку C, не связываясь с X, Y, Z, тогда все просто, они просто проверяют бит C дерева svn, если это приводит к тому, что они хотят исправить B, то же самое. Они никогда не касаются X, Y, Z, даже если они находятся в том же самом репо. Не так очевидно, что происходит с git.

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

Особенности, которые я ищу:

  1. Простое тегирование (если возможно), позволяющее легко маркировать состояние всей кодовой базы (просто с общим корнем svn или одним репозиторием git)
  2. Легко для других интегрировать / повторно использовать общие библиотеки A-D
  3. Для них просто дать нам рекомендуемые исправления / исправления, которые мы можем выбрать, чтобы взять или проигнорировать (одна из главных вещей, которые я хочу от git).
  4. Команды, чтобы иметь эффективные функции частного владения для общих библиотек (чтобы они могли помечать их и исправлять самостоятельно на своих временных шкалах)

Git, кажется, предлагает то, что я хочу, я просто не уверен, как справиться с проблемой одиночного и множественного репо.

1 Ответ

2 голосов
/ 28 февраля 2010

Если я хочу что-то настроить, используя мерзавец, как бы вы предложили мне настроить его [...]

Просто используйте несколько git-репозиториев (они довольно дешевые, и они похожи на множество маленьких лодок вместо Титаника - другими словами, я нахожу их гибкими, и я люблю гибкость).

Время от времени я помогаю с проектом, который структурирован так

foo/server
foo/client
foo/docs
foo/tools/

'server', 'client', 'docs' и каждая папка в 'tools' - это отдельные репозитории git. Это позволяет членам специализированной команды клонировать и работать именно над тем, над чем они хотят работать.

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

Удивительно, что git позволяет вам делать это, так почему бы не воспользоваться этим?

[...] и каковы плюсы / минусы с вашим предложенным установка.

Возможно, мое предложение немного сложное для реализации.

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