Skip to main content

Importar dados de sistemas de controle de versão de terceiros

Usando o conjunto de ferramentas git-import, é possível fazer importações dos controles de versão do Subversion, do Mercurial e do Team Foundation para repositórios do Git no GitHub Enterprise Server.

Importar projetos do Mercurial

  1. Entre com o SSH no your GitHub Enterprise Server instance. Se sua instância for composta por vários nós, por exemplo, se a alta disponibilidade ou a replicação geográfica estiver configurada, efetue SSH no nó primário. Se você usar um cluster, poderá efetuar SSH em qualquer nó. Para obter mais informações sobre o acesso SSH, confira "Como acessar o shell administrativo (SSH)".

    $ ssh -p 122 admin@HOSTNAME
  2. Faça um clone bruto do projeto usando o comando abaixo. Especifique a URL do projeto de origem e um caminho para um repositório temporário:

    $ 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. Revise o arquivo CSV (separado por vírgula) em /PATH/REPO-NAME.git/git-import/raw-authors.csv. Deve conter estas colunas:

    • ID: o autor, conforme armazenado no repositório original, seguido de um identificador exclusivo
    • NAME: o autor, conforme armazenado no repositório original

    Para mapear autores do repositório original para um endereço de email e um nome, crie um arquivo CSV com as colunas ID,(ignored),GIT_EMAIL,GIT_NAME, que substitui as informações do autor sobre qualquer coisa com "ID" por "GIT_EMAIL" e "GIT_NAME".

    Exemplo:

    • ID do autor original: octocat@111111-2222-3333-4444-55555555555

    • Novo endereço de email: octocat@github.com

    • Novo nome: The Octocat

      Para mapear o autor original para o novo usuário Git, o arquivo CSV deve incluir a linha:

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

  4. Rescreva os autores e branches usando o arquivo CSV:

    $ git-import-rewrite --flavor hg --authors /PATH/AUTHORS-MAP-FILE.csv /PATH/REPO-NAME.git
  5. Se ainda não tiver feito isso, crie um repositório vazio no GitHub Enterprise Server.

  6. Mude o diretório de trabalho atual para o seu repositório local.

  7. Faça push do repositório para o GitHub Enterprise Server:

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

Importar projetos do Subversion

  1. Entre com o SSH no your GitHub Enterprise Server instance. Se sua instância for composta por vários nós, por exemplo, se a alta disponibilidade ou a replicação geográfica estiver configurada, efetue SSH no nó primário. Se você usar um cluster, poderá efetuar SSH em qualquer nó. Para obter mais informações sobre o acesso SSH, confira "Como acessar o shell administrativo (SSH)".

    $ ssh -p 122 admin@HOSTNAME
  2. Faça um clone bruto do projeto usando o comando abaixo. Especifique a URL do projeto de origem e um caminho para um repositório temporário:

    $ 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. Revise o arquivo CSV (separado por vírgula) em /PATH/REPO-NAME.git/git-import/raw-authors.csv. Deve conter estas colunas:

    • ID: o autor, conforme armazenado no repositório original, seguido de um identificador exclusivo
    • NAME: o autor, conforme armazenado no repositório original

    Para mapear autores do repositório original para um endereço de email e um nome, crie um arquivo CSV com as colunas ID,(ignored),GIT_EMAIL,GIT_NAME, que substitui as informações do autor sobre qualquer coisa com "ID" por "GIT_EMAIL" e "GIT_NAME".

    Exemplo:

    • ID do autor original: octocat@111111-2222-3333-4444-55555555555

    • Novo endereço de email: octocat@github.com

    • Novo nome: The Octocat

      Para mapear o autor original para o novo usuário Git, o arquivo CSV deve incluir a linha:

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

  4. Rescreva os autores e branches usando o arquivo CSV:

    $ git-import-rewrite --flavor svn --authors /PATH/AUTHORS-MAP-FILE.csv /PATH/REPO-NAME.git
  5. Se ainda não tiver feito isso, crie um repositório vazio no GitHub Enterprise Server.

  6. Mude o diretório de trabalho atual para o seu repositório local.

  7. Faça push do repositório para o GitHub Enterprise Server:

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

Importar projetos do Team Foundation

  1. Entre com o SSH no your GitHub Enterprise Server instance. Se sua instância for composta por vários nós, por exemplo, se a alta disponibilidade ou a replicação geográfica estiver configurada, efetue SSH no nó primário. Se você usar um cluster, poderá efetuar SSH em qualquer nó. Para obter mais informações sobre o acesso SSH, confira "Como acessar o shell administrativo (SSH)".

    $ ssh -p 122 admin@HOSTNAME
  2. Faça um clone bruto do projeto usando o comando abaixo. Especifique a URL do projeto de origem e um caminho para um repositório temporário:

    $ 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. Revise o arquivo CSV (separado por vírgula) em /PATH/REPO-NAME.git/git-import/raw-authors.csv. Deve conter estas colunas:

    • ID: o autor, conforme armazenado no repositório original, seguido de um identificador exclusivo
    • NAME: o autor, conforme armazenado no repositório original

    Para mapear autores do repositório original para um endereço de email e um nome, crie um arquivo CSV com as colunas ID,(ignored),GIT_EMAIL,GIT_NAME, que substitui as informações do autor sobre qualquer coisa com "ID" por "GIT_EMAIL" e "GIT_NAME".

    Exemplo:

    • ID do autor original: octocat@111111-2222-3333-4444-55555555555

    • Novo endereço de email: octocat@github.com

    • Novo nome: The Octocat

      Para mapear o autor original para o novo usuário Git, o arquivo CSV deve incluir a linha:

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

  4. Rescreva os autores e branches usando o arquivo CSV:

    $ git-import-rewrite --flavor tfs --authors /PATH/AUTHORS-MAP-FILE.csv /PATH/REPO-NAME.git
  5. Se ainda não tiver feito isso, crie um repositório vazio no GitHub Enterprise Server.

  6. Mude o diretório de trabalho atual para o seu repositório local.

  7. Faça push do repositório para o GitHub Enterprise Server:

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

Leitura adicional