Skip to main content
Мы публикуем частые обновления нашей документации, и перевод этой страницы, возможно, еще выполняется. Актуальные сведения см. в документации на английском языке.

Импорт данных из сторонних систем управления версиями

С помощью набора средств git-import можно импортировать данные из Subversion, Mercurial и системы управления версиями Team Foundation в репозитории Git на GitHub Enterprise Server.

Импорт проектов из Mercurial

  1. Подключение по протоколу SSH к экземпляр GitHub Enterprise Server. Если экземпляр состоит из нескольких узлов, например, если настроен высокий уровень доступности или георепликация, передача осуществляется по SSH в основной узел. При использовании кластера можно использовать для передачи по SSH в любой узел. Дополнительные сведения о доступе к SSH см. в разделе Доступ к административной оболочке (SSH).

    $ ssh -p 122 admin@HOSTNAME
  2. Создайте необработанный клон проекта с помощью приведенной ниже команды, указав URL-адрес исходного проекта и путь к временному репозиторию:

    $ git-import-hg-raw HG-CLONE-URL/PATH/REPO-NAME.git
    # Creates a new repository with one or more Git refs in "refs/import/" in the specified path.
  3. Просмотрите файл с разделителями-запятыми (CSV) в /PATH/REPO-NAME.git/git-import/raw-authors.csv. Он должен содержать следующие столбцы:

    • ID — автор, сохраненный в исходном репозитории, и уникальный идентификатор;
    • NAME — автор, сохраненный в исходном репозитории.

    Чтобы сопоставить авторов из исходного репозитория с адресом электронной почты и именем, создайте новый CSV-файл со столбцами ID,(ignored),GIT_EMAIL,GIT_NAME, в которых сведения об авторах заменены по ID на GIT_EMAIL и GIT_NAME.

    Пример.

    • Исходный идентификатор автора: octocat@111111-2222-3333-4444-55555555555

    • Новый адрес электронной почты: octocat@github.com

    • Новое имя: The Octocat

      Для сопоставления исходного автора с новым пользователем GIT CSV-файл должен содержать следующую строку:

      octocat@111111-2222-3333-4444-55555555555, ,octocat@github.com,The Octocat

  4. Перезапись авторов и ветвей с помощью CSV-файла:

    $ git-import-rewrite --flavor hg --authors /PATH/AUTHORS-MAP-FILE.csv /PATH/REPO-NAME.git
  5. Создайте пустой репозиторий для GitHub Enterprise Server, если он еще не создан.

  6. Измените текущий рабочий репозиторий на локальный проект.

  7. Передайте импортированный репозиторий в GitHub Enterprise Server:

    $ git push --mirror PUSH-URL-ON-GITHUB-ENTERPRISE

Импорт проектов из Subversion

  1. Подключение по протоколу SSH к экземпляр GitHub Enterprise Server. Если экземпляр состоит из нескольких узлов, например, если настроен высокий уровень доступности или георепликация, передача осуществляется по SSH в основной узел. При использовании кластера можно использовать для передачи по SSH в любой узел. Дополнительные сведения о доступе к SSH см. в разделе Доступ к административной оболочке (SSH).

    $ ssh -p 122 admin@HOSTNAME
  2. Создайте необработанный клон проекта с помощью приведенной ниже команды, указав URL-адрес исходного проекта и путь к временному репозиторию:

    $ git-import-svn-raw SVN-CLONE-URL /PATH/REPO-NAME.git
    # Creates a new repository with one or more Git refs in "refs/import/" in the specified path.
  3. Просмотрите файл с разделителями-запятыми (CSV) в /PATH/REPO-NAME.git/git-import/raw-authors.csv. Он должен содержать следующие столбцы:

    • ID — автор, сохраненный в исходном репозитории, и уникальный идентификатор;
    • NAME — автор, сохраненный в исходном репозитории.

    Чтобы сопоставить авторов из исходного репозитория с адресом электронной почты и именем, создайте новый CSV-файл со столбцами ID,(ignored),GIT_EMAIL,GIT_NAME, в которых сведения об авторах заменены по ID на GIT_EMAIL и GIT_NAME.

    Пример.

    • Исходный идентификатор автора: octocat@111111-2222-3333-4444-55555555555

    • Новый адрес электронной почты: octocat@github.com

    • Новое имя: The Octocat

      Для сопоставления исходного автора с новым пользователем GIT CSV-файл должен содержать следующую строку:

      octocat@111111-2222-3333-4444-55555555555, ,octocat@github.com,The Octocat

  4. Перезапись авторов и ветвей с помощью CSV-файла:

    $ git-import-rewrite --flavor svn --authors /PATH/AUTHORS-MAP-FILE.csv /PATH/REPO-NAME.git
  5. Создайте пустой репозиторий для GitHub Enterprise Server, если он еще не создан.

  6. Измените текущий рабочий репозиторий на локальный проект.

  7. Передайте импортированный репозиторий в GitHub Enterprise Server:

    $ git push --mirror PUSH-URL-ON-GITHUB-ENTERPRISE

Импорт проектов из системы управления версиями Team Foundation

  1. Подключение по протоколу SSH к экземпляр GitHub Enterprise Server. Если экземпляр состоит из нескольких узлов, например, если настроен высокий уровень доступности или георепликация, передача осуществляется по SSH в основной узел. При использовании кластера можно использовать для передачи по SSH в любой узел. Дополнительные сведения о доступе к SSH см. в разделе Доступ к административной оболочке (SSH).

    $ ssh -p 122 admin@HOSTNAME
  2. Создайте необработанный клон проекта с помощью приведенной ниже команды, указав URL-адрес исходного проекта и путь к временному репозиторию:

    $ git-import-tfs-raw TEAM-FOUNDATION-CLONE-URL /PATH/REPO-NAME.git
    # Creates a new repository with one or more Git refs in "refs/import/" in the specified path.
  3. Просмотрите файл с разделителями-запятыми (CSV) в /PATH/REPO-NAME.git/git-import/raw-authors.csv. Он должен содержать следующие столбцы:

    • ID — автор, сохраненный в исходном репозитории, и уникальный идентификатор;
    • NAME — автор, сохраненный в исходном репозитории.

    Чтобы сопоставить авторов из исходного репозитория с адресом электронной почты и именем, создайте новый CSV-файл со столбцами ID,(ignored),GIT_EMAIL,GIT_NAME, в которых сведения об авторах заменены по ID на GIT_EMAIL и GIT_NAME.

    Пример.

    • Исходный идентификатор автора: octocat@111111-2222-3333-4444-55555555555

    • Новый адрес электронной почты: octocat@github.com

    • Новое имя: The Octocat

      Для сопоставления исходного автора с новым пользователем GIT CSV-файл должен содержать следующую строку:

      octocat@111111-2222-3333-4444-55555555555, ,octocat@github.com,The Octocat

  4. Перезапись авторов и ветвей с помощью CSV-файла:

    $ git-import-rewrite --flavor tfs --authors /PATH/AUTHORS-MAP-FILE.csv /PATH/REPO_NAME.git
  5. Создайте пустой репозиторий для GitHub Enterprise Server, если он еще не создан.

  6. Измените текущий рабочий репозиторий на локальный проект.

  7. Передайте импортированный репозиторий в GitHub Enterprise Server:

    $ git push --mirror PUSH-URL-ON-GITHUB-ENTERPRISE

Дополнительные материалы