Skip to main content
We publish frequent updates to our documentation, and translation of this page may still be in progress. For the most current information, please visit the English documentation.

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

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

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

  1. Переход по протоколу SSH в your GitHub Enterprise Server instance. Если экземпляр состоит из нескольких узлов, например, если настроен высокий уровень доступности или георепликация, передача осуществляется по 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 в your GitHub Enterprise Server instance. Если экземпляр состоит из нескольких узлов, например, если настроен высокий уровень доступности или георепликация, передача осуществляется по 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 в your GitHub Enterprise Server instance. Если экземпляр состоит из нескольких узлов, например, если настроен высокий уровень доступности или георепликация, передача осуществляется по 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

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