Migration de git-svn fatale: pas une SHA1 valide-ref refs / chefs / maître refs / remotes / trunk: commande retournée erreur: 128
Essayer de migrer un grand mais linéaire dépôt svn à git. Le référentiel svn n'est pas la mise en page standard (tronc, branches, tags)...juste un répertoire avec le tronc.
Ubuntu 12.4 LTS,git 1.7.9.5.
$ git svn clone https://coawstmodel.sourcerepo.com/coawstmodel/COAWST --authors-file=../users.txt COAWST
...
D WPS/metgrid/storage_module.F
D WPS/metgrid/process_domain_module.F
W: -empty_dir: WPS/metgrid/gridinfo_module.F
W: -empty_dir: WPS/metgrid/input_module.F
W: -empty_dir: WPS/metgrid/interp_option_module.F
W: -empty_dir: WPS/metgrid/module_date_pack.F
W: -empty_dir: WPS/metgrid/process_domain_module.F
W: -empty_dir: WPS/metgrid/storage_module.F
r635 = c19181c9718e701788b540ed0cc559e4fbddf413 (refs/remotes/git-svn)
M Tools/Docs/COAWST_User_Manual.doc
r636 = 1b7849c3e5a20856c9ddb909a5f53ddf8501ad33 (refs/remotes/git-svn)
Auto packing the repository for optimum performance. You may also
run "git gc" manually. See "git help gc" for more information.
Counting objects: 14143, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (14039/14039), done.
Writing objects: 100% (14143/14143), done.
Total 14143 (delta 8350), reused 0 (delta 0)
fatal: refs/remotes/trunk: not a valid SHA1
update-ref refs/heads/master refs/remotes/trunk: command returned error: 128
J'ai essayé des variantes avec des combinaisons de-s, -t Tronc, -t COAWST, --preserve-vide-dirs (que j'aimerais faire), --no-méta-données (par Pro Git)...toujours le même message d'erreur final.
Merci pour toutes les suggestions!
source d'informationauteur Chris Sherwood
Vous devez vous connecter pour publier un commentaire.
Je pense que vous exécutez la commande correcte. Vous pouvez également exécuter
git-svn presque terminé son travail dans chaque cas. La seule chose qu'il essaie de faire, c'est "maître" pour pointer vers votre tronc. En raison de certains bug il essaie de le mettre à la mauvaise valeur, mais vous pouvez l'exécuter manuellement avec
Si vous avez toujours des problèmes, vous pouvez essayer de convertir le référentiel avec SubGit en 3 étapes:
La conversion d'un dépôt sera au chemin/vers/svn/repository/conf/.git
À chaque fois ce qui m'est arrivé Git ne pouvait tout simplement pas aller chercher un commit de
trunk
dans Subversion:Raisons:
/trunk
.-r
option).J'ai eu le même problème aujourd'hui.
Le problème est probablement que le dépôt SVN n'est pas muni d'un coffre de répertoire. Le standard de tronc, les étiquettes et les branches des répertoires semble être facultatif dans le SVN. Mais git-svn besoin de savoir à ce sujet lors de la migration.
Il est également possible que certains répertoires sont là, mais nommés différemment. (par exemple tronc pourrait être nommé "projet" au lieu de "tronc", les branches qui pourrait être appelée "branches" comme d'habitude et les tags peuvent être manquantes. Ou "tronc" qui pourrait être appelée "Tronc".)
Si il y a aucun de ces répertoires standards dans le repo SVN, et le tout est placé dans la racine de l'opération, la
la solution est tout simplement de ne pas essayer de cloner le standard svn-répertoires.
Juste clone de la racine.
Si elles existent (ou certains d'entre eux), mais sous des noms différents,
git-svn doit être dit à propos de ces noms.
J'ai utilisé Tortoise Git à migrer à partir de SVN à GIT.
Dans TortoiseGit, il est fait par clonage à partir du svn (yep!) et la vérification de la "Depuis le Dépôt SVN" case à cocher.
Si il n'y a pas de tronc, des balises ou des branches des répertoires dans le repo SVN,
il suffit de décocher le "tronc", "tags" et les "branches" des cases à cocher dans la
"Depuis le Dépôt SVN" du clone de dialogue.
Si les répertoires standards sont là, mais sont nommés différemment
normal, les garder cochée, mais écrire les noms utilisés dans la zone de texte
à côté d'eux.
(À partir de la ligne de commande, ce qui peut être fait avec l'option-T, -t
et -b commutateurs. Voir
http://www.sailmaker.co.uk/blog/2013/05/05/migrating-from-svn-to-git-preserving-branches-and-tags-3/
sous le titre "non-standard SVN mise en page").
(Ceux qui étaient les deux cas que j'ai rencontrés - les cas plus complexes peuvent exister. J'ai eu plusieurs dépôts SVN avec ni tronc, des balises ou des branches de répertoires et de la désactivation de ces 3 cases à cocher de le faire fonctionner. J'ai aussi eu un cas où le tronc dir a été appelé le "projet" au lieu de "tronc", mais les branches dir a été nommé normalement et il n'y avait pas de balises dir. En décochant les balises case à cocher et entrez le nom du tronc répertoire fait que l'étude des cas.)
Également eu le problème.
Compris que la commande git est sensible à la casse, et que j'en précisant
--trunk=trunk/MyLib
au lieu de--trunk=trunk.Mylib
J'ai réussi à le résoudre de cette façon.
Espère que cela aide quelqu'un...