Cá nhân tôi không thích bất kỳ câu trả lời nào được đăng cho đến nay:
- Tôi không thích phân nhánh nhân bản vì tôi thích mỗi dự án chỉ có một thư mục. Làm việc trên các thư mục khác nhau cùng lúc hoàn toàn làm xáo trộn lịch sử của các tệp gần đây của các biên tập viên của tôi. Tôi luôn luôn kết thúc việc thay đổi tệp sai. Vì vậy, tôi không làm như vậy nữa.
- Tôi sử dụng
shelve
để sửa lỗi nhanh chóng (chỉ để chuyển các thay đổi không giới hạn của tôi sang một nhánh khác, nếu tôi nhận ra mình đang sai). Bạn đang nói về những ngày, không đời nào tôi bỏ qua vài ngày.
- Tôi nghĩ
mq
là quá phức tạp đối với một tình huống bình thường như vậy
Tôi nghĩ rằng cách tốt nhất là chỉ cần thực hiện các thay đổi của bạn, thay vì bạn quay lại tập hợp các thay đổi trước khi bắt đầu các thay đổi này và làm việc từ đó. Có một số vấn đề nhỏ, hãy để tôi minh họa:
Giả sử bạn có bộ thay đổi A. Hơn là bạn bắt đầu các thay đổi của mình. Tại thời điểm này, bạn muốn đặt nó sang một bên. Trước hết, hãy cam kết công việc của bạn:
hg ci -m "Working on new stuff"
Nếu muốn, bạn có thể thêm dấu trang để quay lại sau dễ dàng hơn. Tôi luôn tạo dấu trang cho các nhánh ẩn danh của mình.
hg bookmark new-stuff
Quay lại tập hợp các thay đổi trước các sửa đổi này
hg update A
Từ đây, bạn làm việc và tạo tập thay đổi C. Bây giờ bạn có 2 đầu (B và C), bạn sẽ được cảnh báo khi cố gắng đẩy. Bạn chỉ có thể đẩy một nhánh bằng cách chỉ định người đứng đầu của nhánh đó:
hg push -r C
Hoặc bạn có thể thay đổi giai đoạn của new-stuff
nhánh thành bí mật. Các bộ thay đổi bí mật sẽ không được đẩy.
hg phase -r new-stuff --secret --force