web-dev-qa-db-fra.com

Importer le référentiel de git vers gerrit

J'ai deux questions sur Gerrit:

  1. Comment convertir ou importer un référentiel Git déjà existant au format Gerrit? Il y avait beaucoup de validations sans contrôle Gerrit, je veux simplement pousser ces validations dans un projet Gerrit.

    Je vois deux façons de le faire:

    1. Copiez le répertoire Git nu existant dans Gerrit, puis ajoutez-le à la base de données. Est-ce une méthode sûre?

    2. Poussez toutes les validations de mon référentiel local vers le référentiel gerrit.

  2. Comment rétablir le référentiel de Gerrit au format Git d'origine? Est-il nécessaire de supprimer les branches spéciales */for/* De Gerrit pour ce faire?

28
DEgITx

Tout d'abord: il n'y a pas de "format Gerrit" spécial. Gerrit fonctionne avec les référentiels git standard.

  1. Créez un nouveau projet dans Gerrit (sans commit initial). Ajoutez le référentiel créé en tant que télécommande à votre référentiel existant et appuyez simplement sur Push. Vous pouvez configurer Gerrit pour autoriser une poussée directe dans le référentiel (contourner la révision), vous permettant d'importer l'intégralité du référentiel.

    Alternativement, si vous avez un accès direct à l'emplacement du référentiel de Gerrit (par exemple via SSH ou sur le système de fichiers local), vous pouvez simplement pousser directement dans le référentiel (là où Gerrit l'a créé), en contournant complètement Gerrit. Vous devrez cependant vider les caches Gerrit par la suite, pour que Gerrit remarque que les HEADs du référentiel ont été mis à jour.

  2. Comme nous l'avons dit, il n'y a pas de "format Gerrit". Clonez simplement votre référentiel depuis gerrit, et tout va bien. Vous n'avez pas à vous soucier des branches spéciales.

29
helmbert

J'ai importé de nombreux projets GIT dans gerrit, le moyen le plus simple que j'ai trouvé était de copier le répertoire xy.git du référentiel git dans le répertoire où gerrit dépose le référentiel git. Après le redémarrage du processus gerrit, le nouveau projet figure dans la liste des nouveaux projets et vous pouvez modifier la description et les droits d'accès.

8
beka
  1. Créez simplement le nouveau projet dans Gerrit, puis appuyez sur le référentiel git là-bas. Si vous souhaitez contourner la révision, appuyez directement sur master au lieu de refs/for/master. Vous devrez ajouter l'autorisation de le faire pour vous-même.

    Je pense que le message d'erreur peut être dû au fait que vous n'avez pas encore importé votre clé ssh dans Gerrit.

  2. Il vous suffit de cloner le référentiel de Gerrit. Il n'inclura aucune branche supplémentaire.

6
Kalle Pokki

Information additionnelle...

Vous pouvez donc copier le référentiel git directement dans l'emplacement de données gerrit et il s'affichera après un redémarrage (ou vidage du cache (réindexation)).

MAIS il vous manquera la configuration importante de votre référentiel, ce qui peut empêcher la capacité de pousser, de créer des branches, de réviser etc.

Si vous affichez le dépôt, vous verrez qu'il manque la branche "refs/meta/config". Donc, dans un système normal sans modifications, cela héritera de All-Projects, mais cela pourrait être n'importe quel projet de votre configuration.

Étapes pour corriger la configuration:

  1. Élément de liste
  2. Copier le dépôt git
  3. Actualiser le cache/redémarrer gerrit/réindexer
  4. Ouvrir le référentiel à partir de la liste des projets
  5. Cliquez sur les succursales
  6. Tapez le nouveau nom de branche "refs/meta/config" à la révision "HEAD"
  7. Cliquez sur "modifier la configuration" dans la vue générale du projet.
  8. Cela crée un fichier (project.config) dans cette branche pour la configuration. Ajoutez une configuration par défaut, extraite d'un référentiel fonctionnel ou comme suit:

par exemple.

[access]
   inheritFrom = All-Projects
  1. Cliquez sur Enregistrer, puis sur FERMER.
  2. Cliquez sur Review (pour lui donner +2)
  3. Cliquez sur Publier Modifier pour enregistrer cette modification dans gerrit.

Vous pouvez maintenant utiliser le référentiel avec une configuration héritée sensible identique à vos autres projets.

0
Trevor Getty