web-dev-qa-db-fra.com

Comment lister tous les fichiers d'un référentiel dans Mercurial (hg)?

Existe-t-il une commande dans Mercurial qui répertoriera tous les fichiers actuellement sous contrôle de code source?

Je peux faire un dir /s pour répertorier tous les fichiers de mon dossier et de mes sous-dossiers, mais je n'ai aucune idée de ceux qui ont été ajoutés à mon référentiel. J'ai une variété de types de fichiers et de dossiers exclus et je veux vérifier qu'aucun d'entre eux n'a été ajouté avant de les configurer dans mon fichier .hgignore.

73
JamesWampler

hg status --all listera tous les fichiers de l'arborescence, avec une lettre indiquant son état: M pour modifié, C pour nettoyer (propriété de hg) et I pour ignoré.

Pour seulement ignoré fichiers, utilisez hg status -i. Pour les fichiers qui seront ajoutés lors du prochain commit, utilisez hg status -a. Ceux-ci ne montrent que ce que vous devez savoir et ne nécessitent pas l'analyse d'une longue liste de fichiers.

70
Ned Batchelder

Vous pouvez également consulter le hg locate commande. Je l'utilise, avec le -I option lorsque je veux limiter les fichiers à un certain répertoire.

Pour répertorier tous les fichiers de votre référentiel:

hg locate

Depuis le répertoire du référentiel ("root"):

hg locate -I dir/sub_dir/dir_of_interest

Le chemin est passé à -I doit changer en fonction du répertoire dans lequel vous exécutez la commande. Si vous exécutez la commande à partir du répertoire dir dans l'exemple ci-dessus, vous devrez modifier votre argument pour localiser:

hg locate -I sub_dir/dir_of_interest

La liste des fichiers de sortie restera la même, indiquant le chemin complet de chaque fichier dans le référentiel.

Essayez hg help -v locate pour plus d'informations.

62
JS.

hg manifest répertorie uniquement les fichiers du référentiel, tandis que hg status --all listera tous les fichiers dans la structure du référentiel et inclura un marqueur pour ceux qui sont suivis et ceux qui ne le sont pas.

22
Mike Pape

Liste des fichiers ignorés ou ajoutés uniquement

Pour répertorier uniquement les fichiers ignorés , procédez comme suit: hg status -i.

Pour seulement fichiers ajoutés, faites hg status -a.

Si vous n'aimez pas beaucoup taper, vous pouvez les raccourcir en hg sta -i et hg sta -a.

Ces deux utilisations de status sont plus simples que locate et vous donneront les états de fichiers spécifiques qui vous préoccupent, donc il est nettement moins sujet aux erreurs.

Plus à propos hg status

Pour répertorier tous les fichiers d'un dépôt Mercurial, procédez comme suit: hg status --all.

Les fichiers recevront un préfixe avant eux lorsqu'ils sont répertoriés:

  M = modified
  A = added
  R = removed
  C = clean
  ! = missing (deleted by non-hg command, but still tracked)
  ? = not tracked
  I = ignored

Si vous souhaitez lister uniquement les fichiers d'un dossier , vous pouvez fournir un chemin:

  • hg st --all MyFolder - tous les fichiers dans MyFolder
  • hg sta -i MyFolder - juste ignoré les fichiers dans MyFolder.

Aussi bien que -i pour "Ignoré" et -a pour "Ajouté", d'autres indicateurs sont disponibles pour répertorier uniquement les fichiers ayant un statut particulier.

Obtenir help

Lisez l'autre réponse très utile ici pour une explication complète de la commande status. Il a des votes bas parce que l'auteur a essayé de montrer que vous pouvez découvrir tout ce qui précède en demandant Mercurial à propos de la commande status comme ceci:

hg help status

Vous pouvez demander à Mercurial de vous parler de ses commandes comme celle-ci. Et si vous voulez une liste des commandes de Mercurial, tapez hg help.

3
Benjohn