3 февраля 2013 г.

Svn to Git

Краткая инструкция миграции с svn на git.

Руководство к действию

  • Найти всех авторов с помощью скрипта

    #!/usr/bin/env bash
    authors=$(svn log -q | grep -e '^r' | awk 'BEGIN { FS = "|" } ; { print $2 }' | sort | uniq)
    for author in ${authors}; do
        echo "${author} = NAME <EMAIL>";
    done
    

    Все записи NAME и EMAIL вручную заменяем на необходимые значения.

  • Склонировать svn репозиторий

    git svn clone [-s] --no-metadata --username=USER --authors-file=SVN-AUTHORS SVN_URL
    

    Пара слов про опции:

    • -s — необходима, если используются стандартные svn папки (trunk, tags, branches).
    • --no-metadata — удаление записей git-svn-id из логов.
    • --username — тут все понятно.
    • --author-file — список авторов в svn репозитории (см. пункт выше).
  • Импорт ignore файлов

    На каждой ветке необходимо сделать следующее:

    git checkout BRANCH
    git svn create-ignore
    git commit -a -m "Import svn:ignore."
    

Полезные ссылки

Весь этот небольшой материал основан на следующих статьях:

Комментариев нет: