312 votes

Quelle est la différence entre le hg et oublier hg enlever?

Je veux mercurial pour supprimer plusieurs fichiers à partir de l'état actuel du référentiel. Cependant, je veux que les fichiers existent en avant l'histoire.

Comment puis - forget et remove différents, et peuvent-ils faire ce que je veux?

346voto

Ry4an Points 56453

'hg forget"est juste un raccourci pour 'hg remove -Af'. À partir de la 'hg remove' aider:

...et -Af peut être utilisé pour supprimer des fichiers à partir de la prochaine révision sans leur suppression du travail répertoire.

Bottom line: 'remove' supprime le fichier de votre copie de travail sur le disque (à moins que tu utilise -Af) et 'forget' n'est pas.

41voto

Martin Geisler Points 44779

La meilleure façon de mis, c'est qu' hg forget est identique à hg remove sauf qu'elle laisse les fichiers de derrière dans votre copie de travail. Les fichiers sont laissés derrière, sans traces de fichiers et de peut maintenant aussi être ignoré avec un motif en .hgignore.

En d'autres termes, je ne peux pas dire si vous avez utilisé hg forget ou hg remove quand je tire de vous. Un fichier que vous avez exécuté hg forget sur va être supprimé quand j'ai mise à jour de l'ensemble de modifications, comme si vous aviez utilisé l' hg remove à la place.

27voto

Jason Catena Points 500

À partir de la documentation, vous pouvez apparemment utiliser la commande de maintenir le fichier dans le projet de l'histoire. On dirait que vous voulez supprimer, car il supprime également le fichier à partir du répertoire de travail.

À partir de l'Mercurial livre à http://hgbook.red-bean.com/read/:

La suppression d'un fichier n'a pas d'incidence sur son l'histoire. Il est important de comprendre que la suppression d'un fichier seulement deux effets. Il supprime le version actuelle du fichier à partir de la répertoire de travail. Il s'arrête Mercurial de suivi des modifications dans le fichier, à partir du moment de la prochaine validation. La suppression d'un fichier n'est pas en aucune façon modifier l'historique du fichier.

La page de man de hg(1) dit ceci à propos de l'oublier:

Marquer les fichiers spécifiés de sorte qu'ils seront ne plus être suivi après le prochain commettre. Cela supprime uniquement les fichiers à partir de la branche courante, pas de la tout le projet de l'histoire, et il ne ne pas supprimer de travail répertoire.

Et cela à propos de la supprimer:

L'horaire indiqué pour les fichiers retrait à partir du référentiel. Cette supprime uniquement les fichiers à partir de l'actuel branche, pas de l'ensemble du projet l'histoire.

3voto

gm2008 Points 257

Si vous utilisez "hg remove b" contre un fichier "A", ce qui signifie qu'il a été ajouté, mais n'engage, Mercurial répondra:

  not removing b: file has been marked for add (use forget to undo)

Cette réponse est très claire explication de la différence entre les supprimer et de les oublier.

Ma compréhension est qu' "hg forget" est pour annuler une ajouté, mais pas commis de fichier de sorte qu'il n'est pas suivi par le contrôle de version; tandis que, "hg remove" est pour prendre un commis de fichier de contrôle de version.

Ce thread est un exemple pour l'utilisation d' hg remove contre les fichiers de 7 différents types de statut.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X