Como você pode determinar todos os arquivos que foram alterados em um determinado changeset?
Não estou procurando uma diferença neste caso, apenas uma lista de adicionar / remover / modificações.
hg log -vprX
faz uma lista de diffs mas só quero os arquivos.
Respostas:
Se você quiser listar apenas os arquivos que foram alterados, então você deve usar o "comando de status" O seguinte irá listar as mudanças nos arquivos na revisão REV
fonte
-n
/--no-status
também.hg status --no-status --change REV
hg status --rev REV~1:REV
que eu costumava fazer.hg status --change .
Basta remover
p
do seuhg log -vpr
para mostrar a lista de arquivos.-p
significa mostrar patch. Você também pode usar um modelo para formatar a saída de acordo com sua preferência.fonte
hg status --change .
funcionou melhor e forneceu um prefixo de ação de arquivo (A \ M \ D etc) e um caminho relativo melhorEu sei que a questão é para um único conjunto de alterações, mas se você quiser que todos os arquivos modificados para uma variedade de conjuntos de alterações, você pode fazer
fonte
hg log -r BEGIN:END --template "{files}\n"
como @ geoffrey-zheng e @ton escreveram há dois anos !!!hg status --rev BEGIN --rev END
é: 1. muito mais fácil de lembrar do quehg log -r BEGIN:END --template "{files}\n"
; 2. imprime os arquivos em linhas separadas sem usarsed
(@Eric Lawler) oujoin()
(@Foxichu); 3. sem o-m
sinalizador, ele exibe não apenas arquivos modificados, mas também adicionados e removidos (a bela coloração padrão se aplica aqui também); 4. existem-a
e-r
sinalizadores que permitem diferentes filtros; 5. se alguém não quiser o prefixo de status, existe a-n
opção que o suprime.Revisão Comprometida Atual
.
é uma abreviatura para a rotação atual, assim como@HEAD
no GitRevisão Não Comprometida Atual
Revisão Arbitrária Comprometida
fonte
Encontrei essa pergunta no Google por um conceito semelhante. Para mostrar todos os arquivos que foram alterados por meio de uma série de changesets, é tão fácil quanto:
hg log -r [start rev]:[end rev] --template "{file_mods}{file_adds}\n"
irá mostrar a você uma lista de cada arquivo alterado ou adicionado em cada changeset, de [start rev] a [end rev], com cada arquivo de changeset em uma nova linha. Troque{file_mods}{file_adds}
com{files}
para mostrar todos os arquivos modificados, adicionados ou removidos.sed -e 's/ /\n/g'
irá dividir todos os arquivos para mostrar em linhas separadas esort
irá, er, classificar a lista para você para que possamos filtrar a lista com uniquniq
irá filtrar a lista para remover duplicatas - arquivos que foram alterados em mais de uma revisão.fonte
--template
solução baseada sem essas deficiências poderia ser construída usandojoin()
como sugerido por @Foxichu.Eu sei que esta pergunta é uma pergunta antiga e estou surpreso que ninguém apenas ofereceu a forma de código modificado OP. Eu obtive uma lista de arquivos modificados / adicionados / removidos (não rotulados, que são quais) apenas executando
hg log -v
. Ou o que eu realmente precisavahg log -v -l5
para ver os arquivos que foram modificados / adicionados / removidos nos últimos 5 commits (incluindo aqueles que ainda não coloquei no repositório).fonte
Se você for como a maioria das lojas, você usa um sistema de bilheteria para rastrear as alterações. Se você souber o número do tíquete e quiser encontrar todos os commits associados a esse tíquete (supondo que você inclua o número do tíquete na mensagem de confirmação), você pode usar:
Isso exibe todas as revisões associadas ao ticket. No entanto, ele não lista os arquivos. Você poderia usar uma das respostas acima para obter a lista de arquivos associados às revisões.
Para tornar mais simples, porém, combinando as informações das respostas anteriores, você poderia fazer o seguinte para pesquisar commits, incluindo arquivos alterados:
fonte