Invocando comandos mercurial para todos os diretórios em um determinado diretório

1

Digamos que eu tenha cerca de 10 hg de repositórios clonados em um diretório pai (vamos chamá-lo de "pai"). Existe alguma maneira que eu possa invocar um comando mercurial como hg status em todos os subdiretórios em vez de executar o trabalho trabalhoso de cd ing em cada diretório e, em seguida, invocar hg status ?

Eu experimentei o bom e velho xargs , mas por alguma razão ele não funciona. Os comandos que usei são:

find . -maxdepth 1 -type d -print | xargs -t "hg status"

e

ls | xargs -t "hg status"

Atualização: a solução era usar nomes de usuários explícitos ao usar xargs . Algo como:

ls | xargs -t -I {} hg status {}
    
por sasuke 20.02.2011 / 07:41

2 respostas

2
for dir in ./*/
do
  (cd $dir && hg status)
done
    
por 20.02.2011 / 09:37
1

Se hg permitir a execução em paralelo, você pode usar o GNU Parallel

parallel cd {} '&&' hg status ::: ./*/

Se não, você pode adicionar -j1:

parallel -j1 cd {} '&&' hg status ::: ./*/

Assista ao vídeo de introdução para saber mais: link

    
por 20.02.2011 / 14:49