2012-05-11 9 views
7

Czy istnieje sposób na uzyskanie kopii repozytorium hg, tak jak miało to miejsce w konkretnym dniu?Klonowanie katalogu hg z konkretnej daty

Na przykład, w dywersji Chciałbym użyć:

svn checkout -r {2012-04-04} ... 

I byłoby sprawdzić rewizję wyglądał na czwartym kwietnia.

W git jej trochę bardziej skomplikowany, ale można zrobić:

git checkout `git rev-list -n 1 --before="2012-04-04" master` 

można zrobić to samo w GW?

+0

z git można zrobić 'git checkout główny @ {2.days.ago}' lub 'git checkout główny @ {2012- 04-04} ' – kassens

Odpowiedz

17

(EDIT: Moja miłość revsets spowodował mnie przeoczyć oczywistą odpowiedź. hg update --date 2012-04-04 powinny dać Ci przegląd tipmost od tej daty)

Jeśli masz cały repozytorium już sklonowany (specyfikacje data nie wydają się działać z clone), można zrobić

hg update --rev "date('< 2012-04-04')" 

Jeśli istnieje taka możliwość, że repozytorium miał wiele głów/oddziały na dzień chcesz, będziesz musiał aw niektórych warunkach zawęzić więcej do odpowiedniego zestawu zmian:

hg update --rev "date('< 2012-04-04') and branch(v1.1)" 

Wyjazd hg help revsets i hg help dates aby uzyskać więcej informacji.

Później, jeśli chcesz wrócić do końcówki, tylko

hg update 
+0

Dzięki - to wyjaśnia, dlaczego miałem problemy ze znalezieniem, szukałem rozwiązania z klonem hg – kimon

+0

Tak więc, najwyraźniej jeśli zaczynasz od niczego, musisz najpierw" sklonować "repozytorium, która daje ci najnowszą, a następnie "obniża" ją, wywołując "update" do poprzedniej wersji. Jakby dziwny. –