Section courante

A propos

Section administrative du site

Processus de développement

Cette page est destiné aux programmeurs souhaitant apporter des modifications à ELMAH.

Contrôle de version

Présentation

ELMAH utilise Mercurial, un système de contrôle de version distribué. Cela signifie que, même si cette page héberge un dépôt central, de nombreux dépôts clones peuvent contenir leurs propres modifications, dont certains peuvent être fusionnés dans le dépôt principal.

Le modèle de développement pour ELMAH est le suivant :

Installation de Mercurial

Tout d'abord, assurez-vous que Mercurial est installé en exécutant la commande :

$ hg version
Mercurial Distributed SCM (version 2.0.1)
(see http://mercurial.selenic.com for more information)

Copyright (C) 2005-2011 Matt Mackall and others
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Si vous ne souhaitez pas que votre nom d'hôte et votre nom d'utilisateur soient rendus publics, vous pouvez modifier la façon dont vous êtes identifié dans les commits que vous effectuez en modifiant votre fichier ~/.hgrc :

[ui]
username = John Doe

Créer un clone du dépôt

Nous allons devoir créer deux clones du dépôt principal ELMAH : un en ligne, puis un clone local.

Pour créer le clone en ligne, cliquez sur le lien Fork. Donnez un nom et une description à votre clone, puis cliquez sur Fork Le clone en ligne est alors prêt.

Pour créer le clone local, cliquez sur l'onglet «Source» de votre page de clone, puis utilisez la commande d'extraction s'y trouvant :

hg clone https://johndoe@bitbucket.org/johndoe/main johndoe-elmah

En option, vous pouvez y ajouter votre nom d'utilisateur et votre mot de passe (afin de ne pas avoir à les saisir à chaque fois) :

hg clone https://johndoe@bitbucket.org/johndoe/main johndoe-elmah

Et voilà ! Vous disposez d'une copie locale de votre clone (dans cet exemple, dans le sous-répertoire johndoe-elmah) sur laquelle vous pouvez ensuite apporter des modifications.

Importer les modifications depuis le dépôt principal

La méthode recommandée pour importer les modifications depuis le dépôt principal est d'utiliser hg fetch :

$ hg fetch https://bitbucket.org/project-elmah/main

Veuillez noter que la commande fetch est une extension Mercurial équivalente à hg pull -u plus hg merge plus hg commit. Cela signifie que la commande essaiera de fusionner les modifications entrantes avec vos modifications locales.

Pour visualiser le contenu de la commande ci-dessus avant de l'exécuter, utilisez :

$ hg incoming

Valider les modifications localement

La validation des modifications localement est simple : exécutez hg status pour voir l'état de votre clone local :

$ hg status ?  MyNewFile M  MyChangedFile !  MyDeletedFile

Dans l'exemple ci-dessus, un fichier inconnu (MonNouveauFichier), un fichier connu mais manquant (MyDeletedFile) et un fichier modifié sont affichés.

Pour ajouter tous les fichiers précédemment inconnus et supprimer les fichiers manquants, utilisez la commande addremove :

$ hg addremove
Adding MyNewFile
Deleting MyDeletedFile

hg status affiche alors le nouvel état :

$ hg status
A  MyNewFile
M  MyChangedFile
D  MyDeletedFile

Pour voir les modifications, utilisez la commande hg diff. Enfin, validez les modifications avec :

$ hg commit

Cela ouvrira un éditeur pour vous permettre de saisir une description de ces modifications. Vous pouvez également spécifier des noms de fichiers à hg commit afin de ne valider qu'une partie de vos modifications actuelles.

IMPORTANT : Lorsque votre modification est intégrée à la source principale d'ELMAH, la description que vous avez saisie ici apparaîtra comme telle dans la source principale d'ELMAH. Veuillez donc utiliser une description pertinente : « Correction d'un bug », « modifications », etc. ne sont pas acceptables. Utilisez plutôt une description comme « Correction d'un bug d'importation GPX provoquant un pointeur bnull », « ajout d'une traduction russe », etc., afin que cela soit cohérent avec ELMAH dans son ensemble, et pas seulement avec votre clone.

Transfert des modifications vers votre clone en ligne

Transfert des modifications vers votre clone en ligne est incroyablement simple :

$ hg push
pushing to https://johndoe:***@bitbucket.org/johndoe/main
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
and you're done.

Si vous souhaitez voir les modifications que vous allez appliquer avant de le faire, vous pouvez également utiliser la commande suivante :

$ hg outgoing
comparing with https://johndoe:***@bitbucket.org/johndoe/main
searching for changes
changeset:   5:b6fed4f21233
tag:         tip
user:        John Doe
date:        Tue May 05 06:55:53 2009 +0000
summary:     Added an extra line of output

Demander une revue de code

Pour demander une revue de code, créez une nouvelle pull request depuis votre clone en ligne vers le clone en ligne d'origine d'ELMAH. Un administrateur examinera ensuite les modifications de code et les intégrera dès qu'elles seront prêtes.



Dernière mise à jour : Mercredi, le 23 novembre 2022