Comment envoyer des requests de révision de code avec git lorsque les développeurs n'ont pas de référentiel de travail public?

Normalement dans Git, chaque développeur clonera de l'origine dans un repo de suivi personnel, apportera des modifications, puis enverra une requête de récupération au gestionnaire référençant sa machine personnelle qui a un git-daemon, ou un server web, ou permet au manager de se connecter avec ssh.

Pour certains changements c'est bien pour le dev de vérifier les choses lui-même. Pour les plus grands, d'autres personnes aiment le regarder avant qu'il ne soit vérifié dans le maître. Donc le dev a le privilège de vérifier dans le repository.

Mais que faire si le gestionnaire ne pouvait pas se connecter à d'autres machines de travail de devs, et avait seulement access à l'origine git repo, ou par courriel? Quelle est la meilleure façon d'envoyer les diffs à lui pour examen?

Nous pourrions envoyer des patches dans un email ou le dev pourrait pousser sa twig à l'origine et dire au manager de git fetch origin; git diff master..case223 git fetch origin; git diff master..case223 . Ou y a-t-il un autre meilleur moyen?

Solutions Collecting From Web of "Comment envoyer des requests de révision de code avec git lorsque les développeurs n'ont pas de référentiel de travail public?"

j'utiliserais

 git format-patch <branch-to-compare-against> --cover-letter -o patches/ 

qui va essentiellement créer les correctifs appropriés pour vos commits, puis

 git send-email --to <receiver@example.com> --annotate patches/* 

Vérifiez les pages de manuel:

  • format-patch
  • send-email et la section d'exemple

Git bundle

 git bundle create myproposal.git origin/sharedbranch..HEAD 

Vous pouvez le recevoir comme s'il s'agissait d'un repo:

 cd myworktree git pull /tmp/myproposal.git 

Incidemment, git bundle est également le moyen le plus efficace de sauvegarder l'set de votre repo, par exemple

 git bundle create /tmp/backup.git --all --tags --remotes 

Autoriser les développeurs à pousser à certaines twigs sur le même repo. Utilisez gitolite pour administrer qui a quel type d'access à quelle twig. Pas besoin d'envoyer des emails par email.

MISE À JOUR: depuis lors, j'ai écrit cet article: http://dymitruk.com/blog/2012/02/05/branch-per-feature/

J'espère que cela t'aides.

Annonce sans vergogne: Je vous suggère également de considérer Gerrit .

Nous l'utilisons pour nos critiques de code, et c'est un outil incroyable (en particulier les possibilités de droits d'access). Avec cela, chaque développeur peut apporter ses changements dans les twigs de révision (et seulement là), et les autres développeurs peuvent examiner les changements (ils sont également construits et testés automatiquement par Jenkins et vérifiés si les tests ont réussi).

Dans votre cas, vous auriez le droit pour le gestionnaire de soumettre une modification dans le référentiel, nous l'avons également activé pour les développeurs et fait seulement une ressortingction de workflow, que deux développeurs doivent examiner une modification pour la soumettre.

Note: en plus de git send-email , vous pouvez utiliser le script consortingb de git contacts , pour listr les contacts potentiels intéressés par votre email.

Avec Git 2.14.x / 2.15, ce script détecte également la section " Reported-by ".

Voir comm . 09ac673 (21 juil. 2017) par Eric Blake ( BlakeEric ) .
(A fusionné avec Junio ​​C Hamano – gitstergitster . 6d2b8a3 , 11 août 2017)

" git contacts " (dans consortingb/ ) list maintenant l'adresse de la bande-annonce "Reported-by:" à sa sortie, en plus de celles sur Sob: et d'autres bandes-annonces, pour faciliter la notification (et la reconnaissance) du bogue original journalist.

git-contacts : reconnaissent aussi " Reported-by: "

Il est bon de mettre en copy quelqu'un qui a signalé un bogue, afin de lui faire savoir qu'un correctif est envisagé, et peut-être même get son aide pour réviser / tester le correctif.

Bien sûr…

  • Sob: signifie Signed-off-by:
  • les remorques, formalisées en 2014, sont l'autre partie du commit ( Signed-off-by|Reviewed-by|Acked-by|Cc )