¿Cómo puede determinar todos los archivos que cambiaron en un conjunto de cambios dado?
No estoy buscando una diferencia en este caso, solo una lista de agregar / eliminar / modificaciones.
hg log -vprX
hace una lista de diferencias pero solo quiero los archivos.
Respuestas:
Si desea enumerar solo los archivos que han cambiado, entonces debe usar el "comando de estado". A continuación, se enumeran los cambios a los archivos en la revisión REV.
fuente
-n
/--no-status
.hg status --no-status --change REV
hg status --rev REV~1:REV
lo que solía hacer.hg status --change .
Simplemente elimínelo
p
de suhg log -vpr
se mostrará la lista de archivos.-p
significa mostrar parche. También puede utilizar una plantilla para formatear la salida a su gusto.fuente
hg status --change .
funcionó mejor y dio un prefijo de acción de archivo (A \ M \ D, etc.) y una mejor ruta relativaSé que la pregunta es para un solo conjunto de cambios, pero si desea modificar todos los archivos para un rango de conjuntos de cambios, puede hacerlo
fuente
hg log -r BEGIN:END --template "{files}\n"
como @ geoffrey-zheng y @ton escribieron hace dos años!hg status --rev BEGIN --rev END
es: 1. mucho más fácil de recordar quehg log -r BEGIN:END --template "{files}\n"
; 2. imprime los archivos en líneas separadas sin usarsed
(@Eric Lawler) ojoin()
(@Foxichu); 3. sin la-m
bandera, muestra no solo archivos modificados, sino también agregados y eliminados (el color estándar agradable se aplica aquí también); 4. hay-a
y-r
banderas que permiten diferentes filtros; 5. Si uno no quiere el prefijo de estado, hay una-n
opción que lo suprime.Revisión actual comprometida
.
es la abreviatura de la rev actual, al igual que@HEAD
en GitRevisión actual no comprometida
Revisión arbitraria comprometida
fuente
Encontré esta pregunta buscando en Google un concepto similar. Para mostrar todos los archivos que cambiaron a través de una variedad de conjuntos de cambios, es tan fácil como:
hg log -r [start rev]:[end rev] --template "{file_mods}{file_adds}\n"
le mostrará una lista de cada archivo modificado o agregado en cada conjunto de cambios, desde [inicio rev] a [fin rev], con los archivos de cada conjunto de cambios en una nueva línea. Cambiar{file_mods}{file_adds}
con{files}
para mostrar todos los archivos modificados, agregados o eliminados.sed -e 's/ /\n/g'
dividirá todos los archivos para mostrarlos en líneas separadas ysort
¿Ordenará la lista por usted para que podamos filtrarla con uniq?uniq
filtrará la lista para eliminar los archivos duplicados que cambiaron en más de una revisión.fuente
--template
podría construir una solución basada en A sin estas deficiencias usandojoin()
como lo sugiere @Foxichu.Sé que esta pregunta es antigua y me sorprende que nadie haya ofrecido un código modificado en forma de OP. Obtuve una lista de archivos modificados / agregados / eliminados (sin etiquetar cuál es cuál) con solo ejecutarlo
hg log -v
. O lo que realmente necesitabahg log -v -l5
para ver los archivos que se han modificado / agregado / eliminado en las últimas 5 confirmaciones (incluidos los que aún no envié al repositorio).fuente
Si es como la mayoría de las tiendas, utiliza un sistema de venta de entradas para rastrear los cambios. Si conoce el número de ticket y desea encontrar todas las confirmaciones asociadas con ese ticket (asumiendo que incluye el número de ticket en el mensaje de confirmación), puede usar:
Esto muestra todas las revisiones asociadas con el ticket. Sin embargo, no enumera los archivos. Puede usar una de las respuestas anteriores para luego obtener la lista de archivos asociados con las revisiones.
Sin embargo, para hacerlo más simple, combinando la información de las respuestas anteriores, puede hacer lo siguiente para buscar confirmaciones, incluidos los archivos modificados:
fuente