jak repo synchronizować według daty?


4

Czy mogę użyć repodo synchronizacji według daty? (możliwe w git )

Na przykład chcę pobrać źródło od 1 marca o 15:00. Potrzebuję sposobu, aby pobrać konkretną bazę źródła CyanogenMod9 . Byłoby miło użyć tagu lub ID zatwierdzenia, ale źródło jest zorganizowane w kilku sub-repozytoriach, które nie mają wspólnych tagów. Myślę, że mógłbym dokonać transakcji według daty. Propozycje?

Odpowiedzi:


6

Wygląda na to, że będę musiał użyć repo forall. Wymaga to najpierw synchronizacji wszystkiego (nie można pobrać starszego kodu, dopóki repozytorium nie zostanie w pełni pobrane).

repo forall -c 'git checkout `git rev-list --all -n1 --before="2012-03-01 15:00"`'

2
Zakłada się, że manifest w ogóle się nie zmienił. Jeśli bieżący manifest jest inny niż manifest w dniu zainteresowania, mogą cię ugryźć różnego rodzaju problemy --- różne gałęzie, ścieżki, polecenia kopiowania plików itp.
Jeremy Frank

Naprawdę nie powinieneś używać --alltutaj. Spowoduje to wyświetlenie zatwierdzeń z dowolnego oddziału. Z pewnością nie chcesz odejść od obecnego oddziału. Chcesz tylko przejść do pierwszego zatwierdzenia w historii obecnego oddziału, który spełnia wymaganie „przed”:repo forall -c 'git checkout `git rev-list -n1 --before="2012-03-01 15:00"` HEAD'
schlimmchen

@schlimmchen Myślę, że twój poprzedni cytat jest niewłaściwy, myślę, że „ HEAD” również powinien znajdować się w cudzysłowie.
skyking

@skyking Tak, oczywiście masz rację! repo forall -c 'git checkout `git rev-list -n1 --before="2012-03-01 15:00" HEAD`'
schlimmchen,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.