2010-09-07 2 views
16

Gibt es ein Programm, das tut was git-svn tut, aber in einer Situation, in der das Repository auf dem Server git ist und der Entwickler svn verwendet?RW Zugriff auf das git-Repository mithilfe von svn (git-svnserver)?

Ich weiß, dass github.com Svn Zugriff auf die Git-Repositories, die sie hosten, aber es sieht nicht so aus, als hätten sie dieses Projekt Open Source (noch?) Veröffentlicht, und die Verwendung ihrer Server ist keine Option für mich (nicht einmal ihre privaten Repositorien).

EDIT: Ich denke, was ich suche eine parallel zu 'git-cvsserver' ist - git-svnserver. In ein bisschen Suche habe ich einige 2-3 Jahre alte Themen auf der Git Mailingliste gefunden, aber es sieht nicht so aus, als ob irgendjemand bedeutende Fortschritte gemacht hätte. Ich hoffe, dass mir jemand das korrigieren kann.

Gibt es momentan git-svnserver-Projekte? Ich würde es hassen, doppelte Anstrengung zu haben, aber es scheint, dass GitHub is the farthest along, aber niemand sonst kann es haben.

Antwort

0

Ich glaube, die git-svn Verbindung soll durch git gesteuert werden (zu überwachen - Rebase oder dcommit - ein SVN-Zweig).
Das heißt, Sie könnten erster Klon, was git Repo Sie auf Ihrem lokalen Server benötigen (wo Sie auch SVN), und verwenden, die für ‚git-svn‘ zwischen Ihrer lokalen Git-Repo und Ihrem SVN-Arbeitsbereich-Befehle.

Sobald Ihr lokaler Git-Repo Repo angemessen Ihre SVN widerspiegelt, können Sie auf den Remote-Git-Server zurückschieben.

+0

Ich bin mir nicht sicher, das macht was ich will. Dies ist nur für meine Mitarbeiter, die nicht auf git wechseln wollen, da sie in svn jetzt nur checkout/update/commit sind. Wenn sie jemals mehr tun mussten, konnte jemand ihre Hand durch die Verwendung von Git halten. –

+0

@drhorrible: es könnte immer noch eine Lösung sein: ein Skript wie [git2svn] (http://repo.or.cz/w/git2svn.git) (siehe auch http://stackoverflow.com/questions/572893/cloning) -a-non-standard-svn-repository-with-git-svn/572898 # 572898) könnte ihre SVN-Geschichte für sie einrichten, die git Repo dort sein dann ihre SVN-Arbeit in der lokalen Git-Repo vor bekommen für die anderen Git-Benutzer zurückgeschoben werden. – VonC

4

Dies ist Python-Code ein Git-Repository über SVN-Protokoll zu dienen:

http://git.q42.co.uk/git_svn_server.git

+0

Down :(Jeder hat einen Spiegel? Ich würde Interesse an diesem Projekt abholen. –

+0

Die Seite ist up, aber die letzte Commit war vor 20 Monaten. – iGEL

+1

Das sieht sehr nützlich aus, aber es gibt keine Dokumentation. Weiß jemand von einem B. ein Tutorial oder zumindest eine README? – nweiler

10

bei SubGit Werfen Sie einen Blick.

SubGit ist serverseitige Lösung, es ermöglicht Subversion Zugriff auf Git-Repository und umgekehrt. Sie können auf documenation für weitere Einzelheiten beziehen, aber im Allgemeinen ist es ziemlich einfach SubGit zu verwenden:

SubGit muss die lokalen Zugriff auf Git-Repository Sie schieben. Erstellen Sie Subversion-Repository auf der gleichen Maschine:

$ svnadmin create $SVN_REPOS 

dann

laufen
$ subgit configure $SVN_REPOS 

Dieser Befehl erstellt $SVN_REPOS/conf/subgit.conf Datei, stellen Sie ihre git.default.repository Option wie folgt:

[git "default"] 
    repository = /path/to/your/git/repository.git 

Sie können viele Git angeben Repositories mit einem einzelnen Subversion-Repository synchronisiert, fügen Sie einfach die notwendigen [git "identifier"] Sektionen hinzu.

Sie können auch ein beliebiges Repository-Layout angeben, z. die Standard sieht wie folgt aus:

trunk = trunk:refs/heads/master 
    branches = branches/*:refs/heads/* 
    shelves = shelves/*:refs/shelves/* 
    tags = tags/*:refs/tags/* 

Sie auch $SVN_REPOS/conf/authors.txt anpassen können svn Autorennamen abzubilden Identitäten git.

Nach diesem Lauf:

$ subgit install $SVN_REPOS 
    $ ... let initial translation complete ... 
    $ TRANSLATION SUCCESSFUL 

In diesem Moment Sie Subversion-Repository und seine Git Pendant haben, die kontinuierlich synchronisiert sind, dh SubGit übersetzt sofort SVN-Revision in git commit auf jedem svn commit und git commit in SVN Revision alle git push.

Sie können also Änderungen am erstellten Subversion-Repository festschreiben und alle Änderungen synchron mit dem Haupt-Repository von Git halten.

+0

Vielen Dank für das Teilen! Ich werde es im Auge behalten, und hoffentlich ist meine Firma bereit, es zu versuchen, wenn es soweit ist. –

2

SVNGit ist genau das, was Sie wollen. Es ist eine OpenSource-Servlet-Bibliothek für SVN-Clients, um auf Git-Repositories zuzugreifen.

Verwandte Themen