Хорошая практика использовать GIT вместе с SVN - PullRequest
14 голосов
/ 14 марта 2011

Subversion была популярна несколько лет назад, сейчас git становится популярным, и все больше и больше людей хотят заменить Subversion на git.

Проблема в том, что многие проекты были основаны на Subversion.Так что вопрос в том, как использовать git вместе с Subversion.Не заменяйте svn полностью и используйте git.

Самый простой способ, который я могу выяснить, - это создать git на основе кода ветви Subversion, который вы уже извлекли.Затем используйте git для локального управления.После внесения изменений отправьте запрос на локальный сервер git, а затем отправьте его на удаленный сервер с Subversion.Subversion похожа на контейнер, содержащий git.

Кстати, я кодирую с помощью xcode 3.x, пробовал xcode 4 раньше, но разочаровался.(Xcode 4 вышел, но пока нет попыток)

Как вы думаете?Или лучший выбор?

Спасибо

Ответы [ 2 ]

6 голосов
/ 21 апреля 2011

Я создал коллекцию инструкций и скринкастов по использованию git-svn здесь:

http://www.tfnico.com/presentations/git-and-subversion

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

Обновление : простая и полезная практика - всегда инициализировать клоны git-svn с опцией --prefix. Я объяснил, почему здесь .

6 голосов
/ 14 марта 2011

Subversion похожа на контейнер, содержащий git

Обязательно прочитайте раздел CAVEATS, идущий с git-svn :

CAVEATS

Ради простоты и взаимодействия с менее способной системой (SVN) рекомендуется, чтобы все git svn пользователи clone, fetch и dcommit непосредственно с сервера SVN и избегайте всех операций git clone / pull / merge / push между git-репозиториями и ветвями.
Рекомендуемый метод обмена кодом между ветками git и пользователями - git format-patch и git am, илипросто 'dcommit'ing в репозиторий SVN.

Запуск git merge или git pull НЕ рекомендуется для ветви, которую вы планируете dcommit из .
Subversion не делаетпредставлять слияния любым разумным или полезным способом;таким образом, пользователи, использующие Subversion, не могут видеть сделанные вами слияния.Более того, если вы объединяете или извлекаете из ветки git, которая является зеркалом ветки SVN, dcommit может зафиксировать неправильную ветку.

Таким образом, вы можете принять любое слияние и публикацию рабочий процесс с Git, пока вы оставляете SVN-ветви, которые вы отражаете в одиночку (в терминах слияний или перебазировок).

...