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.

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

Check-out

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 check-outs do Subversion são diferentes: eles combinam os dados do repositório nos diretórios de trabalho, ou seja, há um diretório de trabalho para cada branch e tag com check-out. Para repositórios com muitos branches e muitas tags, o check-out de tudo pode ser uma carga de largura de banda. Portanto, você deve começar com um check-out parcial.

  1. No your GitHub Enterprise Server instance, navegue até a página principal do repositório. 1. Acima da lista de arquivos, clique em Código. Botão "Código"

  2. Copie a URL do repositório.

    • Para clonar o repositório usando HTTPS, em "HTTPS", clique em .
    • Para clonar o repositório usando uma chave SSH, incluindo um certificado emitido pela autoridade de certificação SSH da sua organização, clique em SSH e em .
    • Para clonar um repositório usando GitHub CLI, clique em GitHub CLI e selecione . O ícone da área de transferência para copiar a URL para clonar um repositório com o CLI do GitHub
  3. Faça um checkout vazio do repositório:

    $ svn co --depth empty https://github.com/user/repo
    > Checked out revision 1.
    $ cd repo
  4. Obtenha o branch trunk. A ponte do Subversion mapeia o trunk com o branch HEAD do Git.

    $ svn up trunk
    > A    trunk
    > A    trunk/README.md
    > A    trunk/gizmo.rb
    > Updated to revision 1.
  5. Obtenha um check-out vazio do diretório branches. É nele que se encontram todos os branches que não são HEAD e em que você criará branches de recursos.

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

Criar branches

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

No cliente do SVN, verifique se o branch padrão é atual atualizando trunk:

$ svn up trunk
> At revision 1.

Em seguida, use svn copy para criar um branch:

$ svn copy trunk branches/more_awesome
> A    branches/more_awesome
$ svn commit -m 'Added more_awesome topic branch'
> Adding    branches/more_awesome

> Committed revision 2.

É 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
> From https://github.com/user/repo/
> * [new branch]    more_awesome -> origin/more_awesome

Fazer commits no Subversion

Depois que você adicionar alguns recursos e corrigir alguns erros, o ideal será 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 'Guard against known problems'
> Sending    more_awesome/gizmo.rb
> Transmitting file data .
> Committed revision 3.
$ svn status
> ?    test
$ svn add test
> A    test
> A    test/gizmo_test.rb
$ svn commit -m 'Test coverage for problems'
> Adding    more_awesome/test
> Adding    more_awesome/test/gizmo_test.rb
> Transmitting file data .
> Committed revision 4.

Alternar entre branches

Para alternar entre branches, provavelmente, o ideal é começar com um check-out 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 de 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/repo
05fcc584ed53d7b0c92e116cb7e64d198b13c4e3

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

Leitura adicional