Để xem liệu có đúng kịch bản hay không. Bạn có...
- một số chỉnh sửa không bị giam trong thư mục làm việc của bạn mà bạn không muốn cam kết nào,
- một số thay đổi unpushed trong kho địa phương của bạn,
... nhưng ông chủ khó chịu của bạn vòi bạn trên quay lại và nói, "Này! Khi nào thì bạn sẽ thúc đẩy sự thay đổi mà bạn đã đề cập trong cuộc họp nhân viên? Chúng tôi đang chờ đợi nó!" Anh ấy đang đứng đó chờ đợi bạn làm điều đó, vậy làm thế nào để bạn có được anh ta ra khỏi tóc của bạn một cách nhanh chóng và dễ dàng?
Điều này thật dễ dàng. Bạn muốn sử dụng MQ extension. Nó đi kèm với cài đặt Mercurial tiêu chuẩn.
Trước tiên hãy thêm nó vào tệp .hgrc
của bạn.
[extensions]
mq =
Để giấu chỉnh sửa không bị giam trong một mục hàng đợi vá, làm điều này:
$ hg qnew stash
$ hg qpop
Bây giờ đẩy cam kết cũ của bạn, vì vậy ông chủ của bạn sẽ thoát khỏi lưng của bạn.
$ hg push
Cuối cùng, khôi phục thư mục làm việc của bạn như vậy:
$ hg qpush
Tại thời điểm này, bạn vẫn còn có các bản vá được ghi trong hàng đợi bản vá của bạn. Nó chỉ được đánh dấu là "áp dụng" bây giờ. Hoàn tất chỉnh sửa mã của bạn, sau đó làm điều này để cập nhật các bản vá với chỉnh sửa xong bạn và thông điệp log cam kết, sau đó hoàn thiện bản vá vào một changeset:
$ hg qrefresh -m"Commit message goes here."
$ hg qfinish stash
Đó là những điều cơ bản, nhưng có nhiều thứ khác bạn có thể làm nếu bạn muốn thực sự ưa thích. Phần mở rộng MQ giống như một thế giới hoàn toàn mới của kiểm soát sửa đổi ẩn bên dưới kho Mercurial. Nó giống như Stit của Git, nhưng linh hoạt hơn và ít gây nhầm lẫn hơn.
Tìm hiểu, thay đổi, phát triển!
có một hệ thống sao lưu riêng biệt có thể có vẻ hơi rắc rối. Nếu chỉ Git hoặc Mercurial có thể cho phép mọi người thiết lập một repo cho push không cam kết. Một cái gì đó như 'git push --uncommitted ssh: // hơi/peter/tmp' –
@Jian, một lần nữa, đây không phải là các chương trình sao lưu. Ý tưởng dự định là thực hiện một hoặc nhiều cam kết có ý nghĩa, sau đó bạn chia sẻ. Nó sẽ không có ý nghĩa nhiều để có một repo có chứa cả hai cam kết và các công trình trong tiến trình. –
"Hệ thống sao lưu riêng biệt" cũng có thể là một kho lưu trữ. Đây là cách tôi làm việc: Tôi viết mã trong repo cá nhân của tôi (nơi tôi thường xuyên cam kết), và tôi có một repo trung tâm để chia sẻ công việc của mình với các đồng nghiệp của tôi (nơi tôi đẩy, nhưng ít thường xuyên hơn). Để sao lưu công việc tôi làm trong repo personnal của tôi, tôi có một repo thứ ba: một móc trong repo personnal của tôi thực hiện một đẩy vào repo sao lưu mỗi lần tôi cam kết. Bằng cách đó, hoạt động sao lưu hoàn toàn minh bạch (hình phạt thời gian là không đáng kể). – barjak