Je suis nouveau à Mercurial. Juste ne peut pas trouver la bonne commande. Testé mise à jour/checkout avec pas de chance. J'utilise le référentiel local. MerciComment obtenir une version spécifique d'un fichier dans Mercurial?
Répondre
Je pense que vous voulez hg revert -r<rev> <file>
(cela va changer ce fichier pour être comme il était à la révision donnée).
Yep, c'est exactement ce qu'il veut. :-) – Omnifarious
ou juste hg revenir
@BlackTigerX Sans la révision d'un fichier non-modifié ne sera pas rétabli à quoi que ce soit, même si ce n'est pas le plus version récemment engagée. Je l'utilise parfois pour sélectionner des fichiers entre les révisions, ce qui est important. – user2864740
Comme dit djc revert
modifie un fichier en place pour correspondre à une révision antérieure. Si vous ne le souhaitez pas, vous pouvez utiliser hg cat -r revisionid filename
(en substituant revisionid et filename bien sûr) qui affichera le fichier sur stdout, pour rediriger n'importe quel endroit.
purrrfect, exactement ce que je souhaitais. – yota
Génial, c'est toujours agréable d'entendre quelque chose comme ça. –
hg revert
résout effectivement ce problème. Mais je pense que vous êtes confus au sujet d'un éventail plus large de choses que simplement la réponse à votre question et que vous voulez essayer de répondre plus complètement.
hg update
est une commande entière de référentiel et ne fonctionnera pas sur des fichiers individuels. Il est différent de la subversion svn update
de cette manière. Si vous faites hg --help update
vous pouvez voir que c'est le cas parce que la commande ne prend aucun argument de fichier. Il peut être utilisé pour déplacer l'intégralité de votre référentiel vers un instantané particulier, mais ne peut pas être utilisé pour le faire avec un seul fichier.
Si vous tapez hg --help
, vous voyez une liste de commandes. Il est une liste assez grande et un peu intimidant, mais si vous lisez, vous trouverez cette ligne:
revert restore individual files or directories to an earlier state
Maintenant, si vous voulez juste le dernier état à des fins de comparaison, il y a une autre commande que vous soyez intéressé par, et c'est hg cat
. Cela vous permettra d'imprimer le contenu d'un fichier à n'importe quelle révision particulière. Vous pouvez ensuite rediriger sa sortie dans un autre fichier. Ensuite, vous pouvez avoir la bonne version précédente connue de votre fichier et l'ancienne version à comparer côte à côte.
La raison pour laquelle Mercurial a une commande séparée update
est qu'il est possible de faire quelque chose dans Mercurial qui est impossible dans Subversion. Vous pouvez update
à une version antérieure, apporter des modifications, puis valider. Cela va créer une branche. La commande update
a également pour effet de modifier la révision parente du répertoire de travail en cours et de modifier le contenu de tous les fichiers de ce répertoire en versions de révision. Cela signifie que revert
modifie le contenu d'un fichier (ou même l'ensemble du référentiel si vous lui donnez les bons arguments) mais laisse la même révision à la version parente de la copie de travail courante.
Vous pouvez connaître la révision parente (ou les révisions dans le cas d'une fusion) de la copie de travail en cours à l'aide de la commande hg parents
.
Dans Subversion, les révisions sont une progression strictement linéaire. Mercurial crée des branches à la baisse d'un chapeau, et ils sont presque aussi faciles à fusionner. Les révisions forment un DAG, pas une progression strictement linéaire.
Pour extraire une révision spécifique d'un fichier spécifique, vous pouvez le faire sous Windows:
hg cat "<FileToBeExtractedPath>" -r 9 > "<ExtractionPath>"
Ici, 9 est le numéro de révision.
Ou encore mieux:
hg cat "<FileToBeExtractedPath>" -r 9 -o "<ExtractionPath>"
- 1. Comment utiliser la version "distante" d'un fichier dans mercurial?
- 2. Mercurial: Obtenir une copie non-versionnée d'une version antérieure d'un fichier
- 3. Obtenir la "version" spécifique d'une colonne
- 4. Exiger une version spécifique d'ActiveRecord
- 5. Obtenir la version spécifique de IE
- 6. TFS obtenir la version spécifique Addin
- 7. Comment charger une version spécifique d'un assemblage
- 8. Comment obtenir la version d'un fichier gemspec?
- 9. TeamCity - Génération de déclenchement sur un fichier spécifique, Mercurial
- 10. Mercurial pour Windows - Version Python?
- 11. Mercurial: Obtenir l'ensemble de modifications en cours d'un fichier particulier
- 12. Comment cloner un dépôt Mercurial à partir d'un changeset spécifique?
- 13. Android comment obtenir une préférence spécifique?
- 14. Cibler une version non spécifique d'un assemblage
- 15. Utiliser une version spécifique de vcredist?
- 16. Comment obtenir une nouvelle version d'un xcdatamodel dans xcode?
- 17. Comment obtenir une bibliothèque d'objets Excel spécifique sans installer la version Office correspondante
- 18. Mercurial .hgrc fichier
- 19. Comment obtenir une propriété spécifique de GtkStyle?
- 20. Comment annuler une seule modification dans Mercurial?
- 21. Comment obtenir la version Apache
- 22. Comment migrer vers une version spécifique à l'aide de Migrator.NET
- 23. Comment puis-je appliquer une version spécifique du framework .net
- 24. Télécharger une version spécifique d'un fichier à partir de SharePoint à l'aide des services Web
- 25. Comment puis-je obtenir une valeur spécifique dans le tableau
- 26. Comment obtenir un PID pour une application spécifique dans l'iPhone?
- 27. Comment obtenir un diff visuel de deux versions non consécutives d'un fichier en utilisant Mercurial TortoiseHG?
- 28. Comment trouver la version de Python à utiliser avec Mercurial?
- 29. obtenir une partie spécifique de l'url
- 30. Comment annuler une fusion dans mercurial?
Que voulez-vous dire par 'version spéciale'? Avez-vous une version particulière? Qu'est-ce que vous essayez d'accomplir exactement en obtenant une version spéciale? – Omnifarious
@Omnifarious: J'ai commis une version stable d'un fichier. Puis j'ai continué à travailler sur le fichier mais j'ai vite compris que j'avais besoin de la dernière version "bonne". Cela peut être fait en mettant à jour svn mais quand j'essaye la mise à jour de hg, il indique "0 dossiers ..." – Codism