+1, ale OP prawdopodobnie również chce flagi -n/ --no-status.
Niall C.
7
Dla łatwego kopiowania:hg status --no-status --change REV
zastrowm
+1 To jest o wiele łatwiejsze do wpisania niż to, hg status --rev REV~1:REVco robiłem.
Patrick Oscity,
3
posługiwać się '.' dla aktualnej REV. czyli -hg status --change .
zaxy78
16
Po prostu usuń pze swojego hg log -vprpokazu listę plików. -poznacza pokaz patch. Możesz także użyć szablonu, aby sformatować wynik według własnego uznania.
Myślę, że będziesz potrzebować następującego szablonu: --template 'files: {files} \ n'
Ton Plomp
1
Wydaje
2
hg log -r. --template '{join (files, "\ n")}' do nowej linii oddziela pliki
Foxichu
1
Komentarz @Foxichu działał dla mnie, ale był trochę zepsuty. właściwie górna odpowiedź - hg status --change .działała lepiej i dała przedrostek akcji pliku (A \ M \ D itp.) i lepszą ścieżkę względną
zaxy78
13
Wiem, że pytanie dotyczy pojedynczego zestawu zmian, ale jeśli chcesz uzyskać wszystkie pliki zmodyfikowane dla szeregu zestawów zmian, możesz to zrobić
Okropnie źle. Pliki zmodyfikowane w zakresie są takie, hg log -r BEGIN:END --template "{files}\n"jak @ geoffrey-zheng i @ton napisali dwa lata temu !!!
Lazy Badger
Przepraszam za to. Zakładano, że ich odpowiedź dotyczy pojedynczego zestawu zmian.
Nick DeVore
1
Moim zdaniem ta odpowiedź nie jest taka straszna. hg status --rev BEGIN --rev ENDjest: 1. dużo łatwiejsze do zapamiętania niż hg log -r BEGIN:END --template "{files}\n"; 2. drukuje pliki w osobnych wierszach bez użycia sed(@Eric Lawler) lub join()(@Foxichu); 3. bez -mflagi wyświetla nie tylko zmodyfikowane, ale także dodane i usunięte pliki (tu też obowiązuje ładna standardowa kolorystyka); 4. są -ai -rflagi, które pozwalają na różne filtrowanie; 5. jeśli ktoś nie chce prefiksu statusu, jest -nopcja, która go wyłącza.
Michał Wróbel
9
Bieżąca zatwierdzona wersja
hg status --change .
.jest skrótem dla bieżącej wersji, tak jak @HEADw Git
Znalazłem to pytanie przez Google dla podobnej koncepcji. Aby wyświetlić wszystkie pliki, które zmieniły się w ramach szeregu zestawów zmian, jest to tak proste, jak:
hg log -r [start rev]:[end rev] --template "{file_mods}{file_adds}\n"pokaże listę każdego pliku zmienionego lub dodanego w każdym zbiorze zmian, od [start rev] do [end rev], z plikami każdego zestawu zmian w nowej linii. Zamień {file_mods}{file_adds}z, {files}aby wyświetlić wszystkie zmodyfikowane, dodane lub usunięte pliki.
sed -e 's/ /\n/g' podzieli wszystkie pliki, aby pokazać je w oddzielnych wierszach i
sort posortuje dla ciebie listę, żebyśmy mogli ją przefiltrować za pomocą uniq
uniq przefiltruje listę w celu usunięcia duplikatów - plików, które uległy zmianie w więcej niż jednej wersji.
To rozwiązanie skleja ostatnio zmodyfikowany plik z pierwszym dodanym plikiem. Ponadto nie radzi sobie poprawnie ze spacjami w nazwach plików. Rozwiązanie --templateoparte na join()systemie A bez tych niedociągnięć można skonstruować za pomocą sugestii @Foxichu.
Michał Wróbel
1
Wiem, że to stare pytanie i jestem zaskoczony, że nikt po prostu nie zaoferował zmodyfikowanego kodu z OP. Otrzymałem listę zmodyfikowanych / dodanych / usuniętych plików (nie oznaczonych jako które) po prostu uruchamiając hg log -v. Albo czego faktycznie potrzebowałem, hg log -v -l5aby zobaczyć pliki, które zostały zmodyfikowane / dodane / usunięte w ciągu ostatnich 5 zatwierdzeń (w tym te, których jeszcze nie wysłałem do repozytorium).
„nikt nie zaoferował tylko zmodyfikowanego kodu z OP” - @Geoffrey Zheng dokładnie to zrobił ~ 1h po wysłaniu pytania
Michał Wróbel
-2
Jeśli jesteś jak większość sklepów, używasz systemu biletowego do śledzenia zmian. Jeśli znasz numer biletu i chcesz znaleźć wszystkie zatwierdzenia związane z tym biletem (zakładając, że umieścisz numer biletu w komunikacie dotyczącym zatwierdzenia), możesz użyć:
hg log -k TICKET_NUMBER
Spowoduje to wyświetlenie wszystkich wersji powiązanych z biletem. Jednak nie zawiera listy plików. Możesz użyć jednej z powyższych odpowiedzi, aby następnie uzyskać listę plików powiązanych z wersjami.
Aby to jednak uprościć, łącząc informacje z poprzednich odpowiedzi, możesz wykonać następujące czynności, aby wyszukać zatwierdzenia, w tym zmienione pliki:
Jest to związane z pytaniem. Plakat pytał, jak pobrać pliki w zestawie zmian. Zestawy zmian są często związane z biletami. Moje rozwiązanie pokazuje, jak uzyskać pliki związane ze zestawami zmian skojarzonymi z biletem.
Odpowiedzi:
Jeśli chcesz wyświetlić tylko te pliki, które uległy zmianie, powinieneś użyć "polecenia statusu" Poniżej wymieniono zmiany w plikach w wersji REV
źródło
-n
/--no-status
.hg status --no-status --change REV
hg status --rev REV~1:REV
co robiłem.hg status --change .
Po prostu usuń
p
ze swojegohg log -vpr
pokazu listę plików.-p
oznacza pokaz patch. Możesz także użyć szablonu, aby sformatować wynik według własnego uznania.źródło
hg status --change .
działała lepiej i dała przedrostek akcji pliku (A \ M \ D itp.) i lepszą ścieżkę względnąWiem, że pytanie dotyczy pojedynczego zestawu zmian, ale jeśli chcesz uzyskać wszystkie pliki zmodyfikowane dla szeregu zestawów zmian, możesz to zrobić
źródło
hg log -r BEGIN:END --template "{files}\n"
jak @ geoffrey-zheng i @ton napisali dwa lata temu !!!hg status --rev BEGIN --rev END
jest: 1. dużo łatwiejsze do zapamiętania niżhg log -r BEGIN:END --template "{files}\n"
; 2. drukuje pliki w osobnych wierszach bez użyciased
(@Eric Lawler) lubjoin()
(@Foxichu); 3. bez-m
flagi wyświetla nie tylko zmodyfikowane, ale także dodane i usunięte pliki (tu też obowiązuje ładna standardowa kolorystyka); 4. są-a
i-r
flagi, które pozwalają na różne filtrowanie; 5. jeśli ktoś nie chce prefiksu statusu, jest-n
opcja, która go wyłącza.Bieżąca zatwierdzona wersja
.
jest skrótem dla bieżącej wersji, tak jak@HEAD
w GitBieżąca niezatwierdzona wersja
Arbitralna zatwierdzona rewizja
źródło
Znalazłem to pytanie przez Google dla podobnej koncepcji. Aby wyświetlić wszystkie pliki, które zmieniły się w ramach szeregu zestawów zmian, jest to tak proste, jak:
hg log -r [start rev]:[end rev] --template "{file_mods}{file_adds}\n"
pokaże listę każdego pliku zmienionego lub dodanego w każdym zbiorze zmian, od [start rev] do [end rev], z plikami każdego zestawu zmian w nowej linii. Zamień{file_mods}{file_adds}
z,{files}
aby wyświetlić wszystkie zmodyfikowane, dodane lub usunięte pliki.sed -e 's/ /\n/g'
podzieli wszystkie pliki, aby pokazać je w oddzielnych wierszach isort
posortuje dla ciebie listę, żebyśmy mogli ją przefiltrować za pomocą uniquniq
przefiltruje listę w celu usunięcia duplikatów - plików, które uległy zmianie w więcej niż jednej wersji.źródło
--template
oparte najoin()
systemie A bez tych niedociągnięć można skonstruować za pomocą sugestii @Foxichu.Wiem, że to stare pytanie i jestem zaskoczony, że nikt po prostu nie zaoferował zmodyfikowanego kodu z OP. Otrzymałem listę zmodyfikowanych / dodanych / usuniętych plików (nie oznaczonych jako które) po prostu uruchamiając
hg log -v
. Albo czego faktycznie potrzebowałem,hg log -v -l5
aby zobaczyć pliki, które zostały zmodyfikowane / dodane / usunięte w ciągu ostatnich 5 zatwierdzeń (w tym te, których jeszcze nie wysłałem do repozytorium).źródło
Jeśli jesteś jak większość sklepów, używasz systemu biletowego do śledzenia zmian. Jeśli znasz numer biletu i chcesz znaleźć wszystkie zatwierdzenia związane z tym biletem (zakładając, że umieścisz numer biletu w komunikacie dotyczącym zatwierdzenia), możesz użyć:
Spowoduje to wyświetlenie wszystkich wersji powiązanych z biletem. Jednak nie zawiera listy plików. Możesz użyć jednej z powyższych odpowiedzi, aby następnie uzyskać listę plików powiązanych z wersjami.
Aby to jednak uprościć, łącząc informacje z poprzednich odpowiedzi, możesz wykonać następujące czynności, aby wyszukać zatwierdzenia, w tym zmienione pliki:
źródło