J'ai récemment installé GitLab avec Docker sur un serveur au sein d'un réseau local. J'essaie de migrer un référentiel que j'ai conservé localement sur mon PC. Je l'ai exposé via un serveur HTTP local au sein de mon réseau local comme solution de contournement, juste pour pouvoir l'importer dans GitLab , car presque toutes les options disponibles dans le panneau d'administration de GitLab sont comme "Importer depuis GitHub", et aucune de ces options n'aidera dans mon cas (je veux dire: est-ce que je ne pourrais pas simplement télécharger le dossier .git de mon dépôt pour l'importer? -retoriquement parlant) Au fait, celui que j'ai choisi était " Repo par URL ":
Il y a un paramètre de sécurité que j'ai dû désactiver, car GitLab n'autorise pas l'importation à partir d'URL qui pointent vers un serveur de votre réseau local. J'ai donc activé l'option intitulée "Autoriser les demandes au réseau local à partir des hooks et des services" dans la section Outbound Services.
Ensuite, j'ai essayé de créer un nouveau projet à partir de GitLab, en utilisant l'onglet appelé "import project "et en remplissant le formulaire. Ensuite, il continue à fonctionner pendant un long moment avec le message "Importation ...", on dirait qu'il continue à réessayer encore et encore, jusqu'à ce que ce message s'affiche:
Chaque tentative d'importation a échoué: erreur lors de l'importation du référentiel http: / /111.222.33.44/path/to/my/repository/root/folder/.git dans myuser / my_project - 13: CreateRepositoryFromURL: clone cmd wait: exit status 128. Veuillez réessayer.
J'ai lu le manuel Gitlab mis en ligne, différents articles sur GitLab, cherché sur Google cette erreur et trouvé des dizaines de tickets avec des problèmes similaires (mais très différents!) ... Mais je ne comprends toujours pas : pourquoi ne puis-je pas simplement télécharger mon dépôt tout de suite?
L'URL fournie n'est pas le problème en soi : si je la saisis dans un navigateur Web, je peux voir clairement le système de fichiers entier de mon projet dans le navigateur Web, et, si j'y ajoute /.git , je peux même voir le contenu du dossier caché .git dans mon navigateur. .. mais, pour une raison quelconque, cela ne suffit pas pour GitLab ...
Je suis très confus à ce sujet. L'un des liens que j'ai trouvés est Exporter un référentiel d'un serveur Gitlab vers un autre serveur Gitlab a> (Veuillez noter que je suis en train d'importer depuis un autre Gitlab, mais un simple dépôt git créé dans un PC avec un simple git init . Trouver du matériel de lecture sur quelque chose de similaire à distance à mon cas n'est pas un morceau de gâteau: j'ai cherché à ce sujet toute la journée, sans succès ...). Dans ce lien, il y a une partie qui dit:
Vous recevrez des avertissements indiquant que vous avez cloné un référentiel vide. C'est normal. Accédez au répertoire de travail de votre dépôt extrait et faites un git pull
... j'ai donc trouvé le dossier dans lequel mon installation GitLab a créé le "référentiel vide", et j'ai essayé d'exécuter la commande git pull à partir de là, en lui donnant la route vers mon autre machine serveur locale. Quelque chose de similaire à ceci:
git pull http://111.222.33.44/path/to/my/repository/root/folder/my_project.bundle
... juste après avoir réussi à créer un fichier .bundle de l'autre côté, en suivant les instructions que j'ai trouvées dans le ci-dessus lien. Mais, pour une raison quelconque, la CLI de mon serveur GitLab ne trouve pas la commande git ! (Peut-être est-il enveloppé dans une sorte de virtualenv ? Ou plutôt il n'a pas été inclus dans PATH en premier lieu? Qui sait ...). Dans tous les cas, tirez vers où ? Il n'y a pas de répertoire de travail à extraire!
Est-ce que je pourrais faire autre chose à ce sujet? Mes connaissances sur Git sont limitées: je l'ai presque toujours utilisé pour conserver les dépôts tout seul, tout seul, sans avoir besoin de les pousser n'importe où, ni de les tirer de n'importe où (à la rare exception d'un de mes projets GitHub).
Je pourrais ajouter que le manuel officiel de Gitlab sur la façon d'importer des projets comprend des instructions pour migrer de partout, à l'exception du logiciel de ligne de commande git normal, non emballé, non compatible!
3 Réponses :
En fin de compte, le vrai problème était un malentendu sur le fonctionnement du menu Web de GitLab.
Lorsque vous cliquez sur "Nouveau projet" dans l'interface Web de GitLab, vous avez le choix entre 3 onglets:
Je ne pensais pas que "Projet vierge" serait la voie à suivre ... Je veux dire ... "J'essaye d'importer mon projet dans GitLab" était mon idée, alors j'ESSAI À PARTIR de l'onglet "Importer un projet" (et c'est pourquoi j'ai fini par publier cette question) ... mais essayer de "Projet vide" a résolu mon problème.
J'abandonnais simplement mon historique de validation et essayais de créer un nouveau référentiel à partir de zéro, à partir de l'état actuel de mes fichiers de projet. Mais, de manière inattendue, après avoir créé le "projet vierge", GitLab m'a donné des instructions pour importer mon référentiel dans ce "projet vierge". Je cite:
CMD Instructions - Existing Git repository cd existing_repo git remote rename origin old-origin git remote add origin http://gitlab.somedomain.net/myuser/someblank-domain.git git push -u origin --all git push -u origin --tags
Et ainsi, un "projet vierge" est devenu un "projet importé". Problème résolu!
p >
Dans mon cas, la cause première de ce problème était que mon mot de passe (un mot de passe HTTP temporaire créé par Gerrit) contenait des caractères spéciaux. J'ai dû continuer à générer des mots de passe jusqu'à ce qu'on m'en donne un sans caractères spéciaux.
J'ai eu la même erreur Erreur lors de l'importation du référentiel http://111.222.33.44/path/to/my/repository/root/folder/.git dans myuser / my_project - 13: CreateRepositoryFromURL: clone cmd wait: exit état 128. Veuillez réessayer. .
Dans mon cas, j'ai dû fournir un nom d'utilisateur et un mot de passe, car le référentiel à partir duquel j'ai importé était sécurisé avec cela (gitblit). J'ai également essayé de nombreuses façons, mais à la fin, cela semble être un problème GitLab. Pour moi, l'utilisation des champs Nom d'utilisateur (facultatif) et Mot de passe (facultatif) n'a pas fonctionné! J'ai dû fournir les informations d'identification directement Champ URL du référentiel Git ( comme l'ancienne capture d'écran dans les documents suggèrent également ):
Avec cela, l'importation a fonctionné comme un charme - et à grande vitesse.
Double possible de Comment changer l'URI (URL ) pour un dépôt Git distant?
Je pense que vous adoptez peut-être la mauvaise approche ici. J'ai récemment migré un référentiel git d'un système de fichiers local vers Bitbucket. BB n'a pas non plus d'option intégrée pour importer un dépôt à partir d'un fichier. J'ai fini par avoir besoin de changer l'URL distante en un repo "frais" dans BB et ensuite faire une fusion. A travaillé comme un charme :)
Dans mon cas, presque tous les guides étape par étape que je trouve sont hors contexte pour une raison quelconque (je peux à peine l'expliquer, mais c'est comme chacun d'entre eux, quand je les regarde attentivement, je peux juste crier: ce n'est pas mon Cas!). De plus,
gitn'est pas présent sur lePATHenvvar du système ... donc je fais unfind -name gità partir du dossier racine de l'unité et J'en trouve plusieurs dispersés ... sur lesquels puis-je compter? Tout est trop déroutant ...J'ai réussi à trouver le dossier où
GitLaba créé le "dépôt vide" (probablement déclenché par le formulaire d'importation de GitLab). C'est comme s'il mettait un dossier commemyproject.gitpour chaque projet que j'essaie d'importer. Le contenu de ces dossiers est étrangement similaire à n'importe quel dossier.gitprésent dans tout référentiel créé à l'aide degitdans une CLI ... mais il n'y a pas d'arborescence de travail du tout!@Brian Je ne pense pas que ma question soit une copie de celle que vous avez postée pour au moins deux raisons: 1- J'utilise GitLab, le PO de l'autre question ne l'est pas. 2- GitLab n'ajoute pas
gitdans l'envvarPATH. Je n'ai pas d'autre option pour le faire selon la structure du GitLab.@Brian En effet, mon problème est plus similaire à celui de cette question que à celui que vous avez référencé comme étant en double.
Je pensais que la deuxième réponse du lien s'appliquerait - j'ai utilisé une procédure similaire pour l'importation Bitbucket que j'ai mentionnée hier. Heureux d'avoir trouvé une solution.