2010-04-23 37 views
5

tôi cam(không đẩy) rất nhiều các tập tin địa phương (bao gồm cả tập tin nhị phân loại bỏ & thêm ...) và bây giờ khi tôi cố gắng đẩy nó mất rất nhiều thời gian. Thực ra tôi đã làm sai lệch lịch sử repo địa phương của tôi.Làm cách nào để xóa vĩnh viễn (xóa) các tệp khỏi lịch sử?

Làm cách nào để tránh lỗi này trong tương lai? Tôi có thể chuyển đổi một tập hợp sửa đổi cục bộ 1-> 2-> 3-> 4 đến 1-> 2 với 2 bản sửa đổi cuối cùng của bản sao cục bộ không?

chỉnh sửa: kể từ khi tôi vội vàng tôi bắt đầu một repo từ xa mới từ đầu với sửa đổi 4. Trong tương lai tôi sẽ đi với câu trả lời được đánh dấu là nó có vẻ dễ dàng hơn nhưng tôi sẽ đào các giải pháp khác để xem sự thật. Thx cho sự hỗ trợ của bạn.

Trả lời

1

Lịch sử Mercurial là bất biến, bạn không thể xóa bằng các công cụ thông thường. Bạn có thể, tuy nhiên, tạo ra một repo mới mà không cần các tập tin:

$ hg clone -r 1 repo-with-too-much new-repo 

mà chỉ sửa đổi không và một mất từ ​​repo cũ và đặt chúng vào một repo mới. Bây giờ sao chép các tập tin từ sửa đổi bốn vào repo mới và cam kết.

Điều này sẽ loại bỏ các thay đổi xen kẽ đó, nhưng bất kỳ repo nào bạn có trong thiên nhiên vẫn có chúng, vì vậy khi bạn pull bạn sẽ lấy lại chúng.

Nói chung một khi bạn đã đẩy một changeset nó ra khỏi đó và trừ khi bạn có thể nhận được tất cả mọi người với một bản sao để xóa nó và reclone bạn ra khỏi may mắn.

2

Nó không rõ ràng từ câu hỏi của bạn cho dù những thay đổi đã được đẩy. Nếu họ vẫn còn địa phương, bạn có thể nhiều hơn hoặc ít hơn để loại bỏ chúng một cách dễ dàng. chuyển đổi là một tùy chọn. Bạn cũng có thể sử dụng MQ (hàng đợi thủy ngân). Kiểm tra bài viết wiki EditingHistory để biết giải thích chi tiết. Nó khuyến nghị MQ là cách tiếp cận đơn giản nhất.

Để ngăn chặn điều đó loại sai lầm, có lẽ bạn nên thêm một cái móc để từ chối 'xấu' cam kết, cho rằng bạn có thể mô tả chúng programatically;)

+0

tôi sử dụng lanh lợi để lưu trữ các db của ứng dụng của tôi, vì vậy tôi chỉ .hgignored từng bit của db và chỉ cam kết một cái bình. – amirouche

Các vấn đề liên quan