Как создать удаленную ветку git для svn-репозитория - PullRequest
4 голосов
/ 21 сентября 2011

Я использую GIT поверх одного централизованного репозитория SVN. SVN-репозиторий содержит только транк, без тегов и веток. Ранее я использовал git svn для клонирования удаленного репозитория в локальное рабочее пространство git. Я единственный разработчик, который работает над этим, поэтому все работает хорошо.

Теперь пришло еще немного разработчиков, и мы должны поработать над этим svn-репозиторием, для чего я хочу создать удаленные ветки git для транка subversion, чтобы все разработчики могли работать вместе над этими ветками git. Я не хочу создавать ветки Subversion, потому что они слишком тяжелые. Но после некоторого поиска кажется, что git svn не поддерживает эту функцию или я что-то пропустил?

Я также думал о том, чтобы сделать мою локальную ветку git удаленной, чтобы делиться ею с другими разработчиками, но не уверен, что это тоже работает.

Ответы [ 2 ]

3 голосов
/ 21 февраля 2012

Я нашел отличное описание того, как этого добиться: часть 1 часть2

Я предпринимаю некоторые шаги, чтобы настроить это, но потом оно работает успешно. Вы можете свободно обмениваться коммитами между репозиториями git, а также синхронизировать каждый из них с репозиторием SVN (в обоих направлениях).

0 голосов
/ 21 февраля 2012

Проблема заключается в разнице между тем, как git и svn сохраняют свою историю. Subversion предполагает, что вся координация действий разработчиков происходит через центральный репозиторий, а git предполагает, что каждый репозиторий будет собирать наборы изменений независимо. Вы и ваши товарищи по команде сможете обмениваться ветками через git, но когда придет время синхронизировать конечный результат, вы столкнетесь с проблемами. Вот почему git-svn явно не поддерживает эту функцию.

Я отмечаю в ваших комментариях, что вы не хотите, чтобы ваши разработчики работали с SVN напрямую для совместной работы ... Я уверен, что у вас есть свои причины для этого, но вы понимаете, что это противоречит дизайну git-svn. git-svn лучше всего рассматривать как клиент Subversion, а не как мост между сетью репозитория git и центральным репозиторием SVN. Возможно, вы захотите разрешить вашей команде создавать общие рабочие ветви в Subversion.

...