Chciałbym otrzymać listę wszystkich plików w aktualnej wersji, które zostały pierwotnie stworzone przeze mnie. Czy ktoś wie, jak mogę to zrobić?

3
George Mauer 16 luty 2012, 19:14

2 odpowiedzi

Najlepsza odpowiedź

Oto inne podejście, które jest nieco bardziej bezpośrednie.

for f in `hg locate`; do hg log -r "first(follow('$f'))" --template "$f: {author}\n"; done

Tłumaczenie:

for each file
  follow its history to the beginning
    print the filename and author

Aby po prostu uzyskać listę plików wprowadzonych po raz pierwszy przez Boba:

for f in `hg locate`; do hg log -r "first(follow('$f')) and author(bob)" --template "$f\n"; done
5
mpm 16 luty 2012, 23:53

Oto jak możesz to zrobić na unixie lub mac:

for therev in $(hg log --template '{rev}\n' --rev 'author("ry4an")') ; do
   hg status --added --no-status --change $therev
done

Obawiam się, że nie mam pojęcia, jak można to zrobić na nieprzyjaznych dla programistów systemach operacyjnych. To pobiera wszystkie pliki, które kiedykolwiek dodałeś, więc musisz porównać z hg manifest, jeśli chcesz usunąć pliki, które nie są w bieżącej wersji tip.

2
Ry4an Brase 16 luty 2012, 21:57