Làm thế nào để repo đồng bộ theo ngày?


3

Tôi có thể sử dụng repo để đồng bộ theo ngày? (có thể trong git )

Ví dụ: tôi muốn tải xuống nguồn vào ngày 1 tháng 3 lúc 3 giờ chiều. Tôi cần một cách để lấy một cơ sở cụ thể của CyanogenMod9 nguồn. Sẽ thật tuyệt khi sử dụng thẻ hoặc ID cam kết, nhưng nguồn được tổ chức trong một số kho lưu trữ phụ không có thẻ chung. Tôi nghĩ rằng tôi có thể kiểm tra theo ngày. Gợi ý?

Câu trả lời:


5

Hình như tôi sẽ phải sử dụng repo forall. Điều này yêu cầu đồng bộ hóa mọi thứ trước tiên (không thể kiểm tra mã cũ hơn cho đến khi kho được tải xuống đầy đủ).

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

2
Điều này giả định rằng bản kê khai không thay đổi chút nào. Nếu bảng kê khai hiện tại khác với bảng kê khai tại ngày quan tâm, tất cả các loại sự cố có thể cắn bạn --- các nhánh, đường dẫn, lệnh sao chép tệp khác nhau, v.v.
Jeremy Frank

Bạn thực sự không nên sử dụng --all đây. Điều này sẽ liệt kê các cam kết từ bất kỳ chi nhánh. Chắc chắn, bạn không muốn rời khỏi chi nhánh hiện tại. Bạn chỉ muốn đi đến cam kết đầu tiên trong lịch sử của chi nhánh hiện tại, đáp ứng yêu cầu "trước": repo forall -c 'git checkout `git rev-list -n1 --before="2012-03-01 15:00"` HEAD'
schlimmchen

@schlimmchen Tôi nghĩ rằng trích dẫn cuối cùng của bạn bị đặt sai chỗ, tôi nghĩ rằng " HEAD "Cũng nên nằm trong backquote.
skyking

@skyking Vâng, rõ ràng là bạn đúng! repo forall -c 'git checkout `git rev-list -n1 --before="2012-03-01 15:00" HEAD`'
schlimmchen
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.