W moim repozytorium mam tagi w postaci version-1.2.3
. Chciałbym zrobić alias revset new()
że nazywa się tak:Jak utworzyć alias rewizji dla znaczników, których nazwy są zgodne ze wzorcem?
hg log -r 'new(1.2.3, 1.2.4)'
... i rozszerza się do tego:
hg log -r '::version-1.2.4 - ::version-1.2.3' # What's new in 1.2.4?
Kiedy próbowałem to zrobić:
[revsetalias]
new($1, $2) = ::version-$2 - ::version-$1
... Mercurial zinterpretował to jako odjęcie wersji $2
(np. 1.2.3
) od wersji version
, co nie było moim zamiarem.
Próbowałem to również, za pomocą operatora ##
konkatenacji:
new($1, $2) = ::"version-" ## $2 - ::"version-" ## $1
Ale wtedy hg log -r 'new(1.2.3, 1.2.4)'
daje mi ten błąd:
hg: parse error at 13: syntax error
Próbowałem też za pomocą ancestors()
zamiast składni ::
, ale nadal wystąpił błąd składni. Czy to się da zrobić?
'$ 1 :: $ 2' nie jest "rewizja pomiędzy" w ścisłej formie - to DAG od 1 $ do 2 $ - i nie mogę sobie wyobrazić rzeczywistego przypadku użycia, gdy różni się on od tylko(). Dangling mergeset od dalekiego przodka 1 $? –
Rozważ dwie wersje z tej samej bazy: http: //pastebin.com/kBqniLt8 hg log -r "e2b7d1 :: aedc1a" nic nie zwraca hg log -r "only (e2b7d1, aedc1a)" zwraca b oraz c – lc2817
@LazyBadger: 1 $ to * nie * przodek 2 $. Obydwie gałęzie znajdują się poza pniem. 1 $ :: 2 $ ** nie zadziała dla mnie **. – Kevin