2010-12-09 25 views
2

J'effectué ces étapes:TortoiseHg ne pas supprimer des fichiers sur la mise à jour + propre

  1. Commited mon projet
  2. Ajouté un fichier de classe couple à mon projet
  3. décidé que je voulais abandonner complètement ce que je venais de faire
  4. Utilisé TortoiseHg Explorateur de référentiel pour mettre à jour le dernier changeset avec « Jeter les changements locaux, pas de sauvegarde (-C/- propre) » vérifié/activé

Les deux fichiers de classe que j'ai ajoutés n'ont pas été supprimés comme je m'y attendais. Ils apparaissent dans le dossier sans icônes de shell.

Questions

  1. Est-ce un comportement correct ou un bug?
  2. Si cela est correct, existe-t-il une fonctionnalité qui me permettra de revenir à un ensemble de modifications précédent sans me retrouver avec un tas de fichiers inutiles dans ma copie de travail?

Répondre

2

Même si vous hg add les fichiers, si vous ne les avez pas validés, lorsque vous mettez à jour il laisse les fichiers comme des fichiers inconnus. Exemple:

C:\> md test 
C:\> cd test 
C:\test> hg init 
C:\test> echo >file1 
C:\test> hg ci -Am file1 
adding file1 
C:\test> echo >file2 
C:\test> echo >file3 
C:\test> hg add 
adding file2 
adding file3 
C:\test> hg st 
A file2 
A file3 
C:\test> hg update -C 
0 files updated, 0 files merged, 0 files removed, 0 files unresolved 
C:\test> hg st 
? file2 
? file3 

Si vous activez l'extension purge, puis hg purge supprimera les fichiers avec ? statut. Faites attention parce que les fichiers que vous vouliez dire à ajouter à votre projet, mais ne sont pas encore seront supprimés:

C:\test> hg add file2 
C:\test> hg status 
A file2 
? file3 
C:\test> hg purge 
C:\test> hg status 
A file2 
1

Si vous n'avez pas ajouté les fichiers à votre dépôt, je pense qu'ils ne sont pas du tout sous contrôle de version. Cela signifie également qu'ils sont laissés à eux-mêmes par le système de contrôle de version, et vous devrez les supprimer vous-même si vous voulez qu'ils soient supprimés. Uniquement si vous les avez réellement placés sous contrôle de version (ajouté au référentiel), vous devrez annuler vos modifications ou les supprimer explicitement de votre référentiel.

La raison de ceci est bien sûr que vous pouvez avoir besoin de certains fichiers dans votre répertoire de projet que vous ne voulez pas du tout dans votre référentiel de contrôle de version.

1

Utilisez hg update null sur votre dossier de travail. Vérifiez the docs.