Publicamos atualizações frequentes em nossa documentação, e a tradução desta página ainda pode estar em andamento. Para obter as informações mais recentes, acesse a documentação em inglês. Se houver problemas com a tradução desta página, entre em contato conosco.

Suporte para clientes do Subversion

Os repositórios GitHub podem ser acessados por meio do Git e de clientes do Subversion (SVN). Este artigo aborda o uso de um cliente do Subversion no GitHub e alguns problemas comuns que podem ocorrer.

O GitHub oferece suporte a clientes do Subversion por meio do protocolo HTTPS. Usamos uma ponte do Subversion para comunicar comandos svn ao GitHub.

Recursos do Subversion com suporte no GitHub

Fazer checkout

A primeira ação a ser executada é um checkout do Subversion. Como os clones do Git mantêm o diretório de trabalho (onde você edita os arquivos) separado dos dados do repositório, há apenas um branch no diretório de trabalho de cada vez.

Os checkouts do Subversion são diferentes: eles combinam os dados do repositório nos diretórios de trabalho, por isso há um diretório de trabalho para cada branch e tag de que tenha sido feito checkout. Em repositórios com muitos branches e tags, fazer checkout de tudo pode sobrecarregar a largura de banda, por isso é recomendável começar com um checkout parcial.

  1. On GitHub, navigate to the main page of the repository.

  2. Under the repository name, click Clone or download.

    Clone or download button

  3. To clone the repository using HTTPS, under "Clone with HTTPS", click . To clone the repository using an SSH key, including a certificate issued by your organization's SSH certificate authority, click Use SSH, then click .

    Clone URL button

  4. Faça um checkout vazio do repositório:

    $ svn co --depth empty https://github.com/user/repo> Checkout da revisão 1 concluído.
    $ cd repo
  5. Obtenha o branch trunk. A ponte do Subversion mapeia trunk para o branch HEAD do Git (que normalmente é master).

    $ svn up trunk
    > A    trunk
    > A    trunk/README.md
    > A    trunk/gizmo.rb
    > Updated to revision 1.
  6. Obtenha um checkout vazio do diretório branches. É aqui que ficam todos os branches diferentes de HEAD e onde você fará branches de recurso.

    $ svn up --depth empty branches
    Updated to revision 1.

Criar branches

É possível criar branches usando a ponte do Subversion para o GitHub.

A partir de seu cliente svn, certifique-se de que o "master" é atual atualizando o trunk:

$ svn up trunk
> At revision 1.

Em seguida, use svn copy para criar um novo branch:

$ svn copy trunk branches/more_awesome
> A    branches/more_awesome
$ svn commit -m 'Branch de tópico more_awesome adicionado'
> Adicionando    branches/more_awesome

> Commit da revisão 2 concluído.

É possível confirmar a existência do novo branch na lista suspensa de branches do repositório:

branch-snapshot

Você também pode confirmar o novo branch por meio da linha de comando:

$ git fetch
> Em https://github.com/user/repo/
> * [novo branch]    more_awesome -> origin/more_awesome

Fazer commits no Subversion

Depois que você tiver adicionado alguns recursos e corrigido alguns erros, vai querer fazer commit dessas alterações no GitHub. O procedimento é exatamente igual ao do Subversion, com o qual você já está acostumado. Edite os arquivos e use svn commit para registrar as alterações:

$ svn status
> M    gizmo.rb
$ svn commit -m 'Proteção contra problemas conhecidos'
> Enviando    more_awesome/gizmo.rb
> Transmitindo dados do arquivo.
> Commit da revisão 3 concluído.
$ svn status
> ?    test
$ svn add test
> A    test
> A    test/gizmo_test.rb
$ svn commit -m 'Alcance do teste para problemas'
> Adicionando    more_awesome/test
> Adicionando    more_awesome/test/gizmo_test.rb
> Transmitindo dados do arquivo.
> Commit da revisão 4 concluído.

Alternar entre branches

Para alternar entre branches, você provavelmente vai querer começar com um checkout de trunk:

$ svn co --depth empty https://github.com/user/repo/trunk

E depois alternar para outro branch:

$ svn switch https://github.com/user/repo/branches/more_awesome

Localizar o SHA do commit do Git para um commit do Subversion

O servidor do Subversion do GitHub expõe o SHA do commit do Git referente a cada commit do Subversion.

Para ver o SHA do commit, você deve solicitar a propriedade remota sem controle de versão git-commit.

$ svn propget git-commit --revprop -r HEAD https://github.com/user/repo05fcc584ed53d7b0c92e116cb7e64d198b13c4e3

Com esse SHA do commit, é possível, por exemplo, procurar o commit do Git no GitHub.

Leia mais

Pergunte a uma pessoa

Não consegue encontrar o que procura?

Entrar em contato