Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 3daad4d

Browse files
authored
Documenting back porting and forward porting. (#1339)
1 parent 375c31f commit 3daad4d

File tree

1 file changed

+55
-0
lines changed

1 file changed

+55
-0
lines changed

CONTRIBUTING.rst

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -719,6 +719,61 @@ Fusion des fichiers *pot* de CPython
719719
make merge
720720
721721
722+
Copier des traductions d'une branche à l'autre
723+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
724+
725+
Dans certains cas on a besoin de bouger des traductions d'une branche
726+
à l'autre :
727+
728+
- d'une ancienne branche vers une nouvelle branche : lors du passage
729+
d'une version à l'autre de cpython, quelqu'un a une PR sur une
730+
ancienne release (*forward porting*) ;
731+
- d'une nouvelle branche vers des anciennes branches : pour propager
732+
de temps en temps le travail sur d'anciennes releases (*back porting*).
733+
734+
On utilise ``pomerge``\  : on le fait lire sur une branche, puis écrire
735+
sur une autre, par exemple pour copier de la 3.7 à la 3.8 ::
736+
737+
git fetch
738+
git checkout 3.7
739+
git reset --hard upstream/3.7
740+
pomerge --from-files *.po */*.po
741+
git checkout -b forward-porting upstream/3.8
742+
pomerge --no-overwrite --to-files *.po */*.po
743+
powrap -m
744+
git add --patch
745+
git commit --message="Forward porting from 3.7"
746+
git push --set-upstream origin HEAD
747+
748+
Notes :
749+
750+
- j'utilise ``git fetch`` au début pour avoir upstream/3.7 et
751+
upstream/3.8 à jour localement, ainsi je peux travailler sans
752+
toucher au réseau jusqu'au ``git push``, mais chacun fait comme il
753+
veut ;
754+
- j'utilise ``*.po */*.po`` et pas ``**/*.po``, car si vous avez un
755+
venv dans l'arborescence il va vous trouver des traductions de Sphinx et peut-être
756+
d'autres paquets dans ``.venv/lib/python*/`` (et mettre beaucoup
757+
plus longtemps) ;
758+
- j'utilise ``pomerge --no-overwrite``, ça indique à ``pomerge`` de
759+
n'écrire que si le ``msgstr`` est vide, donc de ne pas modifier
760+
l'existant, ainsi il est impossible de casser quelque chose, c'est
761+
important lors du *forward-porting* pour ne pas défaire une
762+
correction. Mais on pourrait le tenter sans ``--no-overwrite`` sur
763+
du rétroportage, attention, ça fait des bêtises, ça nécessite une
764+
relecture attentive : certaines traductions, comme *example:* sont en
765+
francais parfois traduite avec une majuscule, et parfois non, en
766+
fonction du contexte, ``pomerge`` uniformiserait ça, ce n'est pas bien ;
767+
- attention, si vous testez sans ``--no-overwrite``, il est peut être
768+
bon de vider la mémoire de ``pomerge`` avant la lecture, pour éviter
769+
de lui faire écrire des choses lues lors des sessions précédentes,
770+
via un ``rm -f ~/.pomerge.json``\  ;
771+
- j'utilise ``git add --patch`` (ou ``-p``) car j'aime bien relire quand même,
772+
typiquement je n'ajoute pas les différences d'ordre dans les entêtes,
773+
mais un ``git add --update`` irait très bien ;
774+
- attention au fichier *dict* à qui il peut manquer des lignes.
775+
776+
722777
Synchronisation de la traduction avec Transifex
723778
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
724779

0 commit comments

Comments
 (0)