2010-08-20 7 views
2

J'ai essayé la commande suivante sur mon référentiel SVN pour cloner une seule branche via git.Problème de clonage d'une branche SVN unique via git svn

git svn clone http://svn.supose.org/supose/branches/B_0.7.1 

mais a obtenu le message d'erreur suivant:

Initialized empty Git repository in /Users/km/workspace-supose/git/B_0.7.1/.git/ 
W: Ignoring error from SVN, path probably does not exist: (160013): Filesystem has no item: '/supose/!svn/bc/100/branches/B_0.7.1' path not found 
W: Do not be alarmed at the above message git-svn is just searching aggressively for old history. 
This may take a while on large repositories 
error: git-svn died of signal 10 
mac:git km$ 


mac:git km$ git --version 
git version 1.7.1 

Est-ce que quelqu'un a une idée de ce qui va mal?

Mise à jour: J'ai activé la trace via une variable d'environnement. J'ai essayé et ça a échoué aussi. Mise à jour vers git 1.7.2 avec le même résultat.

mac:git km$ git svn clone http://svn.supose.org/supose/branches/B_0.7.1 
trace: exec: 'git-svn' 'clone' 'http://svn.supose.org/supose/branches/B_0.7.1' 
trace: run_command: 'git-svn' 'clone' 'http://svn.supose.org/supose/branches/B_0.7.1' 
trace: built-in: git 'config' '--bool' '--get' 'svn.noauthcache' 
trace: built-in: git 'config' '--bool' '--get' 'svn.nometadata' 
trace: built-in: git 'config' '--get' 'svn.revision' 
trace: built-in: git 'config' '--get' 'svn.rewriteuuid' 
trace: built-in: git 'config' '--bool' '--get' 'svn.usesvmprops' 
trace: built-in: git 'config' '--bool' '--get' 'svn.nocheckout' 
trace: built-in: git 'config' '--get' 'svn.authorsprog' 
trace: built-in: git 'config' '--bool' '--get-all' 'svn.branches' 
trace: built-in: git 'config' '--bool' '--get' 'svn.usesvnsyncprops' 
trace: built-in: git 'config' '--bool' '--get' 'svn.followparent' 
trace: built-in: git 'config' '--get' 'svn.prefix' 
trace: built-in: git 'config' '--bool' '--get' 'svn.useSvmProps' 
trace: built-in: git 'config' '--get' 'svn.authorsfile' 
trace: built-in: git 'config' '--get' 'svn.username' 
trace: built-in: git 'config' '--bool' '--get' 'svn.stdlayout' 
trace: built-in: git 'config' '--get' 'svn.repackflags' 
trace: built-in: git 'config' '--bool' '--get' 'svn.localtime' 
trace: built-in: git 'config' '--int' '--get' 'svn.repack' 
trace: built-in: git 'config' '--get' 'svn.template' 
trace: built-in: git 'config' '--get' 'svn.ignorepaths' 
trace: built-in: git 'config' '--bool' '--get' 'svn.minimizeurl' 
trace: built-in: git 'config' '--get' 'svn.rewriteroot' 
trace: built-in: git 'config' '--bool' '--get' 'svn.quiet' 
trace: built-in: git 'config' '--int' '--get' 'svn.logwindowsize' 
trace: built-in: git 'config' '--get' 'svn.shared' 
trace: built-in: git 'config' '--get' 'svn.configdir' 
trace: built-in: git 'config' '--bool' '--get' 'svn.addauthorfrom' 
trace: built-in: git 'config' '--bool' '--get' 'svn.noMetadata' 
trace: built-in: git 'config' '--bool' '--get' 'svn.useSvnsyncProps' 
trace: built-in: git 'config' '--bool' '--get-all' 'svn.tags' 
trace: built-in: git 'config' '--get' 'svn.trunk' 
trace: built-in: git 'config' '--bool' '--get' 'svn.uselogauthor' 
trace: built-in: git 'init' 
Initialized empty Git repository in /Users/km/workspace-supose/git/B_0.7.1/.git/ 
trace: built-in: git 'config' '--bool' 'svn.useSvmProps' 
trace: built-in: git 'config' '-l' 
trace: built-in: git 'config' '--get' 'svn-remote.svn.url' 
trace: built-in: git 'config' '-l' 
trace: built-in: git 'config' 'svn-remote.svn.url' 'http://svn.supose.org/supose/branches/B_0.7.1' 
trace: built-in: git 'config' '--add' 'svn-remote.svn.fetch' ':refs/remotes/git-svn' 
trace: built-in: git 'config' '--bool' 'svn.useSvmProps' 
trace: built-in: git 'config' '-l' 
trace: built-in: git 'config' '--get' 'svn-remote.svn.fetch' ':refs/remotes/git-svn$' 
trace: built-in: git 'config' '--get' 'svn-remote.svn.url' 
trace: built-in: git 'config' '--get' 'svn-remote.svn.uuid' 
trace: built-in: git 'config' 'svn-remote.svn.reposRoot' 'http://svn.supose.org/supose' 
trace: built-in: git 'config' '--get' 'svn-remote.svn.usesvmprops' 
trace: built-in: git 'config' '--add' 'svn-remote.svn.uuid' 'd38d36a4-06d2-11df-b1fb-6b773c2c1a53' 
W: Ignoring error from SVN, path probably does not exist: (160013): Filesystem has no item: '/supose/!svn/bc/100/branches/B_0.7.1' path not found 
W: Do not be alarmed at the above message git-svn is just searching aggressively for old history. 
This may take a while on large repositories 
trace: built-in: git 'config' '--get' 'svn-remote.svn.nometadata' 
trace: built-in: git 'config' '--get' 'svn-remote.svn.followparent' 
trace: built-in: git 'config' '--bool' '--get' 'svn.brokenSymlinkWorkaround' 
trace: built-in: git 'config' '--get' 'svn-remote.svn.ignore-paths' 
trace: built-in: git 'update-index' '-z' '--index-info' 
trace: built-in: git 'config' 'svn-remote.svn.reposRoot' 'http://svn.supose.org/supose' 
error: git-svn died of signal 10 
+1

Après la mise à jour GIT et les liaisons SVN maintenant cela fonctionne. Merci. – khmarbaise

Répondre

2

git-svn est en fait un script Perl. L'exécutable git lui-même est vraiment juste un programme qui lance d'autres programmes. Le message "died of signal" provient du lanceur git. Le signal 10 est habituellement SIGBUS.Cela pourrait signifier un certain nombre de choses:

  • Il y a un problème avec Perl
  • Il y a un problème avec les liaisons Subversion Perl
  • Il y a un problème avec le client Subversion

Il peut également signifier qu'il ya un bogue dans git-svn que vous avez rencontré, mais cela semble hautement peu probable (un bogue dans un script Perl devrait jamais causer des erreurs de bus Perl).

Je voudrais vérifier les versions de tout ce qui précède et vérifier qu'ils sont tous compatibles les uns avec les autres.

1

Un bon endroit pour commencer serait le réglage de la variable d'environnement GIT_TRACE à 1. Je suis un utilisateur git, pas un utilisateur SVN, donc je ne suis pas sûr de ce que votre problème exact est, mais il » Je vais vous donner plus de verbosité.

Mise à jour: J'ai lu plus dans les docs et il me semble que vous ne pouvez pas seulement cloner une seule branche en soi; vous pourriez seulement être en mesure de cloner au moins le tronc et la branche d'intérêt. En regardant les docs, on dirait que les branches sont des citoyens de deuxième classe dans SVN par rapport au tronc, par opposition à git dans lequel les branches sont plus modulaires. Honnêtement, la chose la plus facile à faire est probablement de cloner le repo entier.

Mais si vous ne voulez vraiment pas que vous pourriez être en mesure de pirater une solution ensemble:

git svn init --stdlayout http://svn.supose.org/supose 

ensuite modifier .git/config dans la prise en pension comme ceci:

[svn-remote "supose"] 
     url = http://svn.supose.org/supose 
     fetch = trunk:refs/remotes/trunk 
     branches = branches/B_0.7.1:refs/remotes/branches/* 

Ensuite, git svn fetch.

C'est une photo dans le noir, mais ça pourrait marcher.

Mise à jour 2: Ok, tant pour cela (voir le commentaire ci-dessous). La suggestion de Dan semble la meilleure; mais si vous voulez extraire plus d'informations du script, lancez git --exec-path pour trouver vos exécutables de commande git. Ensuite, ajoutez l'option -d à la première ligne de git-svn (c'est-à-dire que #!/usr/bin/perl devient #!/usr/bin/perl -d). Cela pourrait faire la lumière sur l'endroit exact de la panne. N'oubliez pas de l'enlever quand vous en avez fini!

+0

Il n'y a rien de mal à essayer de cloner une seule branche Subversion (ou n'importe quel sous-répertoire arbitraire, d'ailleurs). Cela devrait fonctionner très bien. –

+0

Merci; Je n'étais pas sûr. Bravo pour m'avoir éloigné d'une chasse à l'oie sauvage :) Je suis plutôt confus pourquoi la trace est supposément morte pendant une config git cependant. Peut-être devrions-nous voir jusqu'où ça va dans le perl. –