Unterstützung für Subversion-Clients

Der Zugriff auf GitHub-Repositorys kann von Git- und Subversion (SVN)-Clients erfolgen. In diesem Artikel erhältst Du Informationen zur Ausführung eines Subversion-Clients auf GitHub sowie zu einigen häufigen Problemen, die in Verbindung mit Subversion auftreten können.

GitHub unterstützt Subversion-Clients über das HTTPS-Protokoll. Zur Übertragung von SVN-Befehlen an GitHub wird eine Subversion-Bridge verwendet.

Auf GitHub unterstützte Subversion-Funktionen

Auschecken

Dein erster Schritt in Verbindung mit Subversion ist der Checkout. Da das Arbeitsverzeichnis (wo Du Dateien bearbeitest) in Git-Klonen getrennt von den Repository-Daten geführt wird, enthält das Arbeitsverzeichnis jeweils nur einen Branch.

Subversion-Checkouts unterscheiden sich hier: In Subversion sind die Repository-Daten in den Arbeitsverzeichnissen enthalten, weswegen es für jeden Branch und jedes Tag, das Du ausgecheckt hast, ein eigenes Arbeitsverzeichnis gibt. Bei Repositorys mit vielen Branches und Tags kann das Auschecken zu einem Bandbreitenproblem werden. In diesem Fall empfiehlt sich zunächst ein teilweiser Checkout.

  1. Navigiere in GitHub Enterprise Server zur Hauptseite des Repository.

  2. Above the list of files, click Code. "Code" 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 . To clone a repository using GitHub CLI, click Use GitHub CLI, then click . The clipboard icon for copying the URL to clone a repository

    The clipboard icon for copying the URL to clone a repository with GitHub CLI

  4. Erstelle einen leeren Checkout des Repositorys:

    $ svn co --depth empty https://github.com/user/repo
    > Checked out revision 1.
    $ cd repo
  5. Rufe den trunk-Branch ab. The Subversion bridge maps trunk to the Git HEAD branch.

    $ svn up trunk
    > A    trunk
    > A    trunk/README.md
    > A    trunk/gizmo.rb
    > Updated to revision 1.
  6. Rufe einen leeren Checkout des Verzeichnisses branches ab. In diesem Verzeichnis befinden sich alle Nicht-HEAD-Branches, und hier erstellst Du auch die Funktions-Branches.

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

Branches erstellen

Zur Erstellung der Branches kannst Du auch die Subversion-Bridge für GitHub verwenden.

From your svn client, make sure the default branch is current by updating trunk:

$ svn up trunk
> At revision 1.

Nun kannst Du svn copy zur Erstellung eines neuen Branches verwenden:

$ 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.

Im Branch-Dropdownmenü des Repositorys kannst Du überprüfen, ob der neue Branch erstellt wurde:

Branch-Snapshot

Dies kannst Du auch über die Befehlszeile überprüfen:

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

Commits an Subversion

Nachdem Du einige Funktionen hinzugefügt und Bugs behoben hast, möchtest Du diese Änderungen auf GitHub freigeben. Dies funktioniert genauso, wie Du es von Subversion gewohnt bist. Verwende nach der Bearbeitung Deiner Dateien svn commit, um Deine Änderungen festzuschreiben:

$ 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.

Zwischen Branches wechseln

Um zwischen Branches zu wechseln, wirst Du vermutlich zunächst trunk auschecken wollen:

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

Danach kannst Du zu einem anderen Branch wechseln:

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

Git-Commit-SHA für einen Subversion-Commit finden

Der Subversion-Server von GitHub stellt die Git-Commit-SHA für jeden Subversion-Commit bereit.

Um diese Commit-SHA zu finden, solltest Du nach der nicht versionierten Remote-Eigenschaft git-commit fragen.

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

Mit dieser Commit-SHA kannst Du beispielsweise nach dem zugehörigen Git-Commit auf GitHub suchen.

Weiterführende Informationen

Did this doc help you?Privacy policy

Help us make these docs great!

All GitHub docs are open source. See something that's wrong or unclear? Submit a pull request.

Make a contribution

Oder, learn how to contribute.