Soy nuevo en Mercurial. Simplemente no puedo encontrar el comando correcto. Intenté actualizar/pagar sin suerte. Estoy usando el repositorio local. Gracias¿Cómo obtener una versión específica de un archivo en Mercurial?
Respuesta
Creo que quieres hg revert -r<rev> <file>
(esto cambiará ese archivo para que esté como estaba en la revisión dada).
Sí, eso es exactamente lo que quiere. :-) – Omnifarious
o simplemente hg revertir
@BlackTigerX Sin la revisión, un archivo no modificado no se revertirá a nada, incluso si no es el más versión recientemente comprometida. A veces uso esto para 'seleccionar' archivos entre revisiones, por lo que es importante. – user2864740
Como djc dijo revert
altera un archivo en su lugar para que coincida con una revisión anterior. Si no lo desea, puede usar hg cat -r revisionid filename
(sustituyendo revisionid y nombre de archivo del curso) que generará el archivo en stdout, adecuado para redirigir a cualquier lugar que desee.
purrrfect, exactamente lo que deseaba. – yota
Impresionante, siempre es bueno escuchar algo así. –
hg revert
de hecho resuelve este problema. Pero creo que estás confundido acerca de una gama más amplia de cosas que simplemente la respuesta a tu pregunta y quieres tratar de responder más completamente.
hg update
es un comando de repositorio completo y no funcionará en archivos individuales. Es diferente de la subversión svn update
de esta manera. Si lo hace hg --help update
, puede ver que este es el caso porque el comando no toma ningún argumento de archivo. Se puede usar para mover todo el repositorio a una instantánea particular, pero no se puede usar para hacer eso en un solo archivo.
Si escribe hg --help
verá una lista de comandos. Es una lista bastante grande y un tanto desalentador, pero si usted lee a través de ella, se encuentra esta línea:
revert restore individual files or directories to an earlier state
Ahora, si lo que desea el último estado con fines comparativos, hay otro comando que puede ser interesado, y eso es hg cat
. Eso le permitirá imprimir el contenido de un archivo en cualquier revisión en particular. Luego puede redirigir su salida a algún otro archivo. Entonces puede tener la versión buena conocida anterior de su archivo y la versión anterior para comparar una al lado de la otra.
La razón por la cual Mercurial tiene un comando update
por separado es que es posible hacer algo en Mercurial que es imposible en Subversion. Puede update
a una versión anterior, realizar cambios y luego confirmar. Esto creará una rama. El comando update
tiene el efecto de cambiar también la revisión principal del directorio de trabajo actual, así como cambiar el contenido de todos los archivos en ese directorio a las versiones de revisión de ese padre.
Eso significa revert
cambia el contenido de un archivo (o incluso todo el repositorio si le da al comando los argumentos correctos) pero deja la revisión principal de la copia de trabajo actual igual.
Puede encontrar la revisión principal (o revisiones en el caso de una combinación) de la copia de trabajo actual utilizando el comando hg parents
.
En las revisiones de Subversion se trata de una progresión estrictamente lineal. Mercurial crea ramas en un abrir y cerrar de ojos, y son casi tan fáciles de fusionar. Las revisiones forman un DAG, no una progresión estrictamente lineal.
para extraer una revisión específica de un archivo específico que puede hacer esto en Windows:
hg cat "<FileToBeExtractedPath>" -r 9 > "<ExtractionPath>"
Aquí, 9 es el número de revisión.
O aún mejor:
hg cat "<FileToBeExtractedPath>" -r 9 -o "<ExtractionPath>"
- 1. Obtener la versión específica de un archivo eliminado en TFS
- 2. Mercurial - ¿Cómo eliminar un archivo del control de versión?
- 3. Cómo obtener la lista de archivos que se vieron afectados desde una revisión específica en Mercurial
- 4. Mercurial commandline: ¿Cómo mostrar los cambios de una revisión específica?
- 5. ./configure con una versión específica de g ++
- 6. extraer archivos de una revisión específica - mercurial
- 7. ¿Cómo instalo una versión específica de un complemento IDEA?
- 8. ¿Cómo necesito una versión específica de una gema de rubí?
- 9. ¿Cómo especificar una versión de dependencia específica en nuspec?
- 10. ¿Cómo obtener una línea específica de una cadena en C#?
- 11. ¿Cómo encontrar lo que depende de una versión específica de una dependencia específica?
- 12. cómo escribir contenido en una posición específica en un archivo
- 13. Actualizar raíles a una versión específica
- 14. Obtener la versión del archivo en PowerShell
- 15. ¿Cómo expandir algunas palabras clave de versión en Mercurial?
- 16. ¿Importa la versión de Mercurial?
- 17. ¿Cómo puedo enlazar a una versión específica de glibc?
- 18. ¿Cómo apuntar a una versión específica de iPhone?
- 19. cómo ejecutar easy_install usando una versión específica de python
- 20. ¿Cómo apuntar a una versión específica de Mac OS X?
- 21. ¿Cómo veo una versión anterior de un archivo SVN?
- 22. instalar una versión específica de Ruby on Rails en Windows
- 23. Mercurial, cómo etiquetar la versión anterior de los archivos
- 24. Obtener la versión de archivo de un dll o exe
- 25. ¿Entrar en un solo archivo con Mercurial?
- 26. ¿Enlace contra versión no específica de un ensamblaje?
- 27. ¿Cómo obtener instancia de una clase específica en PHP?
- 28. ¿Cómo puedo instalar una versión específica de un conjunto de módulos Perl?
- 29. ¿Es posible obtener un número de versión del archivo XAP
- 30. ¿Obtener URL de una pestaña específica?
¿Qué quiere decir por 'versión especial'? ¿Tienes alguna versión en particular? ¿Qué intenta lograr exactamente obteniendo una versión especial? – Omnifarious
@Omnifarious: cometí una versión estable de un archivo. Luego seguí trabajando en el archivo, pero pronto me di cuenta de que necesitaba la última versión "buena". Esto se puede hacer mediante la actualización en svn, pero cuando intento actualizar hg, dice "0 archivos ..." – Codism