Pour les projets open-source (comme celui-ci), tout le monde a accès au dépôt en lecture et tout le monde peut contribuer au projet. Alors comment ces contributions sont-elles contrôlées ? Si tout le monde pouvait livrer des changements, le projet serait instable en permanence et probablement cassé en permanence. Dans cette situation, le changement est géré en soumettant un fichier patch à l'équipe de développement, qui a accès en écriture. Ils peuvent passer en revue le patch d'abord et ensuite le soumettre au dépôt ou le renvoyer à l'auteur.
Les fichiers patch sont simplement des fichiers de différences unifiées montrant les différences entre votre copie de travail et la révision de base.
D'abord vous devez faire et tester vos changements. Alors au lieu d'utiliser → sur le dossier parent, vous sélectionnez →
Vous pouvez maintenant choisir les fichiers que vous voulez inclure dans le patch, comme vous le feriez avec une livraison complète. Cela produira un unique fichier contenant un résumé de tous les changements que vous avez faits aux fichiers sélectionnés depuis la dernière mise à jour du dépôt.
Les colonnes dans cette boîte de dialogue peuvent être personnalisées de la même manière que les colonnes dans la boîte de dialogue Vérifier les modifications. Lisez la section intitulée « Statut local et distant » pour plus de détails.
En cliquant sur le bouton Options, vous pouvez spécifier comment le patch est créé. Par exemple, vous pouvez spécifier que les changements de caractères de fin de ligne ou d'espacement ne sont pas inclus dans le fichier de patch final.
Vous pouvez produire des patches séparés contenant des changements sur des jeux différents de fichiers. Bien sûr, si vous créez un fichier patch, faites d'autres changements dans les mêmes fichiers et créez ensuite un autre patch, le deuxième fichier patch inclura les deux jeux de changements.
Sauvegardez juste le fichier en utilisant un nom de fichier de votre choix. Les patches peuvent avoir l'extension de votre choix, mais selon la convention ils devraient utiliser les extensions .patch
ou .diff
. Vous êtes maintenant prêt à soumettre votre patch.
.txt
si vous avez l'intention de l'envoyer par e-mail à quelqu'un d'autre. Les fichiers texte sont souvent abîmés par les logiciels de messagerie et les caractères d'espacement et de fin de ligne sont souvent convertis et compressés automatiquement. Si cela se produit, il y aura des problèmes pour appliquer le patch. Donc utilisez .patch
ou .diff
comme extension quand vous sauvegardez le fichier de patch.Vous pouvez aussi sauvegarder le patch dans le presse-papier plutôt que dans un fichier. Cela permet, par exemple, de le coller dans un mail afin de le transmettre à d'autres personnes pour une revue. Ou alors, si vous avez deux copies de travail sur une machine et que vous vouliez reporter des changements de l'une à l'autre, copier le patch dans le presse-papier est un moyen commode pour le faire.
Si vous préférez, vous pouvez créer un fichier de patch depuis les boîtes de dialogue Livrer ou Vérifier les modifications. Sélectionnez les fichiers et utilisez l'élément du menu contextuel pour créer un patch à partir de ces fichiers. Si vous voulez voir la boîte de dialogue Options, vous devez garder la touche Maj appuyée en faisant un clic droit.
Les fichiers patch sont appliqués sur votre copie de travail. Cela doit être fait au même niveau de dossier qui a été utilisé pour créer le patch. Si vous n'êtes pas sûr duquel il s'agit, regardez simplement la première ligne du fichier de patch. Par exemple, si le premier fichier sur lequel vous avez travaillé était doc/source/francais/chapitre1.xml
et que la première ligne dans le fichier de patch est Index: francais/chapitre1.xml
alors vous devez appliquer le patch sur le dossier doc/source/
. Cependant, du moment que vous êtes dans la bonne copie de travail, si vous choisissez le mauvais niveau de dossier, TSVN le remarquera et suggérera le niveau correct.
Pour appliquer un patch à votre copie de travail, vous devez avoir au moins l'accès en lecture pour le dépôt. La raison à cela est que le programme de fusion doit faire référence aux changements de la révision avec laquelle ils ont été faits par le développeur distant.
Depuis le menu contextuel de ce dossier, cliquez sur .patch
ou .diff
sont affichés, mais vous pouvez opter pour "Tous les fichiers ". Si vous avez précédemment sauvegardé le patch dans le presse-papier, vous pouvez utiliser le bouton dans le dialogue d'ouverture de fichiers. Notez que cette option est visible dans le cas où vous avez sauvegardé votre patch dans le presse-papier via le menu → . La copie d'un patch du presse-papier vers une autre application ne fera pas appaître ce bouton.
Alternativement, si le fichier patch a une extension .patch
ou .diff
, vous pouvez faire un clic droit dessus directement et sélectionnez → . Dans ce cas, vous serez invité à entrer un emplacement de copie de travail.
Ces deux méthodes offrent juste des façons différentes de faire la même chose. Avec la première méthode, vous choisissez la CdT et naviguez jusqu'au patch. Avec la deuxième, vous choisissez le patch et naviguez jusqu'à la CdT.
Une fois que vous avez sélectionné le fichier patch et l'emplacement de la copie de travail, TortoiseMerge se lance pour fusionner les changements du fichier patch avec votre copie de travail. Une petite fenêtre liste les fichiers qui ont été changés. Double-cliquez sur chacun à son tour, passez en revue les changements et sauvegardez les fichiers fusionnés.
Le patch du développeur distant a maintenant été appliqué à votre copie de travail, donc vous devez livrer pour permettre à tous les autres d'avoir accès aux changements depuis le dépôt.