2009-01-19 7 views
12

J'ai configuré un svn vide sur un serveur et j'ai travaillé sur des commit locaux en cours de route. Maintenant, je souhaite commettre mon repo à un serveur svn. Pour cela, j'ai essayé:Comment valider un repo Git sur un serveur SVN repo vide?

git-svn checkout http://remote.svn.server.com 
git-svn dcommit 

Git se plaint que:

Use of uninitialized value in concatenation (.) or string at /usr/bin/git-svn line 411. 
Committing to ... 
Unable to determine upstream SVN information from HEAD history 

Depuis que je sur mon premier ordinateur local, et la ligne de prise en pension est vide, je ne peux trouver aucune information sur la façon de faire ce travail.

+0

Etes-vous en train d'essayer de valider sur le serveur SVN * et de conserver les journaux de validation * ou simplement d'insérer les données dans SVN dans un grand "Initial Commit?" –

+0

Avez-vous déjà cloné le svn repo? – tcurdt

+0

@Steve Losh. Préserver les journaux était mon intention, mais à ce stade, être capable de faire un engagement initial sera également génial. Mes commits sont moins de 20 maintenant, donc je serais très heureux si je peux juste obtenir ceci pour fonctionner. @tcurdt. Je l'ai fait maintenant comme vous l'avez suggéré ci-dessous. Mais toujours obtenir la même erreur –

Répondre

6

Voici ce que je ferais:

git-svn clone http://remote.svn.server.com otherdir 

puis dans d'autres dir tirer les modifications localement à partir de votre précédente dir. Alors vous devriez avoir un repo git qui est "connecté" via git-svn et vous devriez pouvoir utiliser dcommit dessus.

This peut également être une lecture utile.

+1

Je reçois toujours la même erreur. Il semble même après avoir tiré localement le repo de GIR n'était pas connecté. –

+0

coller votre fichier .git/config ... un git-log serait également utile ... ce n'est vraiment pas une question pour SO ... vous devriez aller demander sur IRC – tcurdt

28

J'avais besoin de quelque chose comme ceci récemment et le processus est relativement simple.

Il ya un bon tutoriel par Brandon Dimcheff, "Commit a linear git history to subversion" (remplace old broken link), sur lequel ces étapes sont basées.

de la version Git 1.6.3 Voici les étapes:

$ svnadmin create svn_repository 
$ svn mkdir -m "Initial setup" file:///full/path/to/svn_repository/trunk 

$ mkdir gitrepo && cd gitrepo 
$ git init 
$ echo 'Hello from Git' > file.txt 
$ git add file.txt 
$ git commit -m "Hello from Git" 

$ git svn init --trunk=trunk file:///full/path/to/svn_repository/ 
$ git svn fetch 

$ git branch -a # Lists remotes/trunk 

$ git rebase --onto remotes/trunk --root master 
# => Applying: Hello from Git etc. 

$ git svn dcommit 
# => Committing to ... Committed r2 ... etc 

Vous pouvez faire un svn checkout de svn_repository maintenant et voyez votre git.

+0

Cela m'a aidé beaucoup, merci! – Sietse

+2

Ajoutez '--log-window-size' à' git svn fetch', sinon cela prendra beaucoup de temps sur les grands dépôts. = D – vmassuchetto

Questions connexes