Статьи

Как начать использовать Git в организации на базе SVN

Я использую Git около года, сразу после создания моей учетной записи на github . У меня действительно хорошее впечатление от использования этого инструмента, но все же — на моей основной работе в e-conomic мы используем SVN в качестве основного инструмента VCS.

Вы, наверное, знаете обо всем хорошем с Git. Если вы все еще не можете, вы можете проверить эти отличные ответы на Stackoverflow. Вкратце — Git добавляет преимущества, но добавляет и сложность.

После небольшой оценки я обнаружил, что эти преимущества стоит прекратить использовать SVN и переключиться на Git. Но, если вы спросите своих коллег «Готовы ли вы пойти с Git?» вы, вероятно, услышите «Нет!» Понятно, почему люди привыкли к текущим инструментам … вокруг них строится инфраструктура. И переход от одного VCS к другому казался разрушением основы здания для многих разработчиков.

К счастью, Git имеет функцию убийцы, которой нет у других DVCS! И эта функция поможет вам начать работу с Git, даже если ваша компания все еще использует SVN в качестве стандарта. Да, я говорю о git-svn .

Поверьте мне, это удивительно! У меня всегда есть небольшое недоверие к такому инструменту интеграции, но пока он работает как шарм. Итак, я дам вам небольшие инструкции, которые позволят вам завтра прийти в ваш офис и начать использовать Git в качестве собственной VCS.

Настройте свою среду

  • Скачать и установить msysgit
  • Настройка информации о локальном пользователе, пример
        git config --global user.name “alexander.beletsky”
        git config --global user.email “[email protected]
  • Если вы работаете в Windows и занимаетесь только разработкой Windows, рекомендуется отключить autocrlf
        git config core.autocrlf false
    

Извлечение кода из хранилища SVN

  • Запустите команду git clone (это может занять некоторое время, в зависимости от хранилища и размера журнала)
        git svn clone https://mysvnserver/repo 
    

Когда клон закончен, вы увидите, что новая папка репозитория создана с содержимым вашего SVN-репозитория. Теперь эта папка на самом деле является Git-репозиторием + вы копируете локальные источники. Попробуйте запустить git log внутри репозитория, и вы увидите, что вся ваша история там!

Давай поработаем

Теперь предположим, что вы начали работать над некоторым исправлением. По умолчанию репозиторий git содержит одну ветку с именем master. Хороший стиль — вообще не делать прямых коммитов в master, просто сохраняйте их как точку синхронизации между репозиторием SVN и вашим локальным репозиторием. Итак, чтобы сделать реальную работу, вы должны создать филиал.

    git checkout -b bugfix-id-1453

Эта команда создаст новую ветку с именем bugfix-id-1453 и сразу переключится на нее. Если вы не заметили, как это произошло — пожалуйста, добро пожаловать в мир высокой производительности git.

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

    git add .
    git commit -m "issue has been fixed"

Передать изменения обратно в SVN

Вы исправили ошибку, и теперь исправлено, помещено в bugfix-id-1453. Но вы должны вернуть его остальному миру.

Оформите вашу главную ветку:

    git checkout master

Получить последние изменения из SVN:

    git svn rebase

Теперь сервер SVN и локальная главная ветвь идентичны. Мы должны объединить наше исправление с мастером:

    git merge bugfix-id-1453

Теперь мастер содержит предыдущее состояние SVN + новое исправление. Мы должны синхронизировать локальный репозиторий и сервер SVN:

    git svn dcommit

Выводы

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

 

С http://www.beletsky.net/2011/06/how-to-start-using-git-in-svn-based.html