Импорт ветки svn в git - PullRequest
       9

Импорт ветки svn в git

3 голосов
/ 05 февраля 2009

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

Ответы [ 3 ]

5 голосов
/ 05 февраля 2009

Я знаю, что вы хотите импортировать только ветку master / trunk вашего svn-репозитория, но я хотел бы упомянуть svn2git , чтобы импортировать svn в git-репозиторий.

Это лучше, чем git svn clone, потому что если у вас есть этот код в SVN:

  trunk
    ...
  branches
    1.x
    2.x
  tags
    1.0.0
    1.0.1
    1.0.2
    1.1.0
    2.0.0

git-svn будет проходить историю коммитов для создания нового репозитория git.
Он будет импортировать все ветви и теги как удаленные ветви svn, тогда как вам действительно нужны локальные ветки git и объекты тегов git .
Поэтому после импорта этого проекта вы получите:

  $ git branch
  * master
  $ git branch -a
  * master
    1.x
    2.x
    tags/1.0.0
    tags/1.0.1
    tags/1.0.2
    tags/1.1.0
    tags/2.0.0
    trunk
  $ git tag -l
  [ empty ]

После того, как svn2git завершит работу с вашим проектом, вы получите вместо этого:

  $ git branch
  * master
    1.x
    2.x
  $ git tag -l
    1.0.0
    1.0.1
    1.0.2
    1.1.0
    2.0.0

Наконец, он удостоверяется, что заголовок мастера совпадает с текущей магистралью репозитория SVN.

3 голосов
/ 05 февраля 2009

Почему бы просто не работать в git на своей рабочей станции? Это было бы самым простым.

  • git svn clone захватит ваш SVN-репозиторий и импортирует ревизии в новое git-репо.
  • Если вам нужно отправить в удаленный репозиторий git для развертывания, git remote add добавит его для вас.
  • Если вам нужно вернуться в репозиторий SVN, тогда git svn dcommit
1 голос
/ 05 февраля 2009

в двух словах:

mkdir my_blog_tmp
cd my_blog_tmp
git-svn init http://code.yoursite.net/my_blog/trunk/ --no-metadata
git config svn.authorsfile ~/Desktop/users.txt
git-svn fetch

и поздравляю с нами! Здесь - отличная шпаргалка для (бывших) пользователей SVN.

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