[Traduction] Comment faire une relecture d'un PR?

Bonjour,
je viens d’essayer de comprendre comment relire et commenter une PR… J’ai peut-être manqué un truc.

Pour relire et commenter une PR, je n’ai pas trouvé d’autre moyen que de consulter le fichier diff des .po, ce qui me semble assez pénible. Quel est donc l’autre moyen (l’idéal étant de relire les HTML générés par la version PR sur ma machine mais je vois pas comment).

Une suggestion?
Merci
Thierry

Logiquement tu dois pouvoir cloner la PR (donc le dépôt qui a servi à faire la PR) et générer la doc pour pouvoir lire la doc finale sur ton PC je dirais, mais je ne suis pas un expert :wink:

1 « J'aime »

Les PR sont des choses nouvelles pour moi, je comprends le concept mais j’ai encore un peu de mal.
Je vois ce que tu veux dire, mais cloner une PR vois même pas comment faire (je sais cloner un dépôt mais j’ai du mal à voir le rapport entre PR et dépôt)…
Si ça se trouve c’est tout bête…

Le dépôt a été modifié, et ensuite la PR c’est la différence entre dépôt et le dépôt à modifier. Donc si tu clones le dépôt “externe”, tu devrais avoir le code de la PR, tout simplement non ?

1 « J'aime »

si tu clones le dépôt “externe”, tu devrais avoir le code de la PR, tout simplement non ?

Alors oui, mais y a un moyen plus rapide.

Par exemple, la commande suivante crée une branche locale appelée pr-42 qui contient tous les commits de la PR associée:

git fetch origin pull/42/head:pr-42
1 « J'aime »

Sinon, en haut à droite de chaque PR, il y a un bouton « <> Code » qui donne une commande à copier-coller pour basculer sur la branche d’une PR (ou plutôt une branche locale avec suivi de branche distante, comme quand on fait soi-même une PR). La commande en question est gh pr checkout lenuméro. Pour cela, il faut, en plus de Git, l’outil gh, qui est spécifique à GitHub. Cliquer sur « Learn more » dans le bouton en question pour voir les instructions d’installation.

@dmerej Je crois qu’il manque un « l » dans ta commande : git fetch origin pull/42/head:branche-xxx. Sinon, jolie solution, je ne savais pas que c’était aussi simple.

Oups, exact. Content d’avoir pu aider quand même :slight_smile:

1 « J'aime »

Ben oui mais ce qui est simple aux connaisseur ne l’est pas pour un débutant (surtout avec la manie du net à faire des tutoriels qui évacuent les aspects théoriques).
En tout cas merci de ta réponse!

Par exemple, la commande suivante crée une branche locale appelée pr-42 qui contient tous les commits de la PR associée:

git fetch origin pull/42/head:pr-42

Super! Il me reste juste à comprendre la sémantique de ce qui suit «origin» (ce qui est avant je le comprends – la présence des deux 42 me gêne, de plus je ne vois pas ce qu’est head ou HEAD, pas eu le temps de m’y pencher jusqu’à présent … ).
Découvrir c’est apprendre et apprendre toujours :slight_smile:

Bonjour,
pour poursuivre la discussion précédente, imaginons que je récupère le code de la PR sur mon dépôt local pour faire les modifications demandées.
Supposons qu’au cours de ces modifs, je trouve d’autres ajustements à faire et que je les fassent. Puis je repousse mon dépôt local sur mon dépôt Github: est-ce que la PR intègre les ajustements faits (et qui ne figuraient pas dans la PR initiale)?

Le pull/42/head est une « référence » Git créée par GitHub de manière automatique. Grosso modo, une référence est un nom donné à une révision pour éviter d’avoir à se souvenir du numéro hexadécimal d’un commit (une « révision » est un état du code source, défini par le dernier commit). La commande git fetch origin distante:locale télécharge une révision depuis le dépôt distant (origin) et la met dans une branche locale. Tu pourrais tout aussi bien faire git fetch origin pull/42/head:toto, et cela créerait une branche nommée « toto » dans ton dépôt local.

Attention, le « head » ici est une convention de nommage de GitHub, et n’a rien à voir avec le « HEAD » de Git.

IANAL IANAGE (I am not a Git Expert)

1 « J'aime »

Attends, là, je suis perdu : quelle PR est-ce ? Quel est ton rôle dans l’affaire, auteur ou relecteur ? Le pull/numéro/head n’est qu’une référence symbolique, pas une branche sur laquelle tu pourrais pousser, ce qui est bien normal puisque n’importe qui ne peut pas pousser sur la PR de n’importe qui. Si c’est toi l’auteur de la PR, tu as une branche locale à partir de laquelle tu as créé la PR. C’est dans cette branche qu’il faut faire les mises à jour.

1 « J'aime »

Salut,
merci j’y vois plus clair!

Salut,

Attends, là, je suis perdu : quelle PR est-ce ?

Ce message ne porte pas sur une PR en particulier. C’est juste histoire de ((mieux)) comprendre les mécanismes fondamentaux de Git (je n’ai trouvé que des manuels orientés usages qui n’offrent pas une vision théorique des mécanismes sous-jacents, et mon côté matheux en a besoin… :-/ ).

Quel est ton rôle dans l’affaire, auteur ou relecteur ?

Pour l’instant aucun, mais je souhaiterai aider à la relecture.

Le pull/numéro/head n’est qu’une référence symbolique, pas une branche sur laquelle tu pourrais pousser, ce qui est bien normal puisque n’importe qui ne peut pas pousser sur la PR de n’importe qui.

Donc

git fetch upstream pull/42/head:pr-42

me permet de rapatrier localement la PR n°42 dans une branche locale nommée «pr-42», si j’ai bien compris.
Super merci!
PS: je comprends vite mais il faut m’expliquer longuement :slight_smile: