2013-07-03 11 views
5

Szukam sposobu z TortoiseHg (lub zwykłą hg, jeśli nie ma innej możliwości), aby zlokalizować wszystkie zmiany w konkretnym pliku.Znajdź wszystkie zestawy zmian w nazwanym oddziale, w którym plik "X" został zmodyfikowany (łącznie z połączeniami)

Próbowałem użyć kwerendy zestawu poprawek: merge() and file("path/to/filename.cs") ale to nie przyniosło mi tego, czego szukam. Zwraca pusty zestaw. Zakładam, że dzieje się tak dlatego, że merge() zwraca tylko scalenia, a tylko file() zwraca nie rozłączenia, więc przecięcie jest puste.

Próbowałem zostały również modifies(pattern) ale nie pojawia się na tyle różni się od file(pattern) (patrzy na mnie jak file() jest sumą adds() i modifies()). contains(pattern) nie zwraca żadnych elementów.

Czy możliwe jest uzyskanie listy zestawów zmian, w których określony plik został zmodyfikowany w jakikolwiek sposób?

Odpowiedz

4

Wygląda jak używasz do „skąd moja zmiana dostać się do tego oddziału” problem. Po scaleniu zestawu zmian w gałąź, Mercurial nie rejestruje tego jako zmiany. Zamiast tego odnotowuje, że scalony zestaw zmian jest teraz częścią gałęzi docelowej. Jedyny przypadek, gdy scalenie pokaże, że plik został zmodyfikowany, jest wynikiem konfliktu scalania, który powoduje nowy zestaw zmian.

Odnalezienie scalenia, które spowodowało zmianę zestawu w oddziale, jest procesem dwuetapowym. Najpierw musisz znaleźć zestaw zmian, w którym nastąpiła zmiana, która Cię interesuje.

hg log -r "file('<PATTERN>') 

Gdy masz taką korektę, znaleźć pierwsze potomka changeset w oddziale przeznaczenia:

hg log -r "first(branch(<BRANCH>) and descendants(<REVISION>))" 
+0

wielkie dzięki. Czasami po prostu nie widzisz odpowiedzi. Mimo wielu wyszukiwań nigdy tego nie spotkałem. Doceniam twoją odpowiedź, a także link do duplikatu. – reidLinden

0

hg log -r "branch(BRANCH) and file('PATTERN')"

Revset również może być używany i weszła Filtr Tooolbar w THG Workbench

0
hg log grep name_of_your_file 

załatwia sprawę dla mnie jeśli chodzi o znalezienie wszystkich zestawów zmian, które mają spowodowało zmianę w danym pliku. Oczywiście, jeśli chcesz coś ładnego:

thg log name_of_your_file 
Powiązane problemy