10

Đối với những người bạn mà sử dụng Mercurial với phần mở rộng MQ:Làm thế nào để tránh vô tình 'hg push' thay vì 'hg qpush'?

Đây là lần thứ hai tôi vô tình gửi các thay đổi để các kho trung tâm (hg push) thay vì áp dụng bản vá vào thư mục làm việc của tôi (hg qpush).

Tôi nghĩ điều này rất không may, vì đây là lỗi rất đơn giản và có hậu quả rất nghiêm trọng (ít nhất phải làm hg backout và thêm hg push cho mỗi thay đổi được gửi để tạo cam kết mới " Undoes" các las một đến kho lưu trữ trung ương, nhưng lịch sử trở nên phức tạp và khó chịu.

mục tiêu của tôi là để cấu hình một số bí danh hoặc một cái gì đó trong môi trường của tôi trong Orden để làm hg push khó thực hiện một cách tình cờ.

Đỗ bạn có bất cứ đề nghị? Tôi đã suy nghĩ một cái gì đó như:

[alias] 
push=  <-- how to NOP the push command?? 
pushtoserver=push 

Vì đây là một câu hỏi hoàn toàn chủ quan, điều này xảy ra dưới dạng wiki cộng đồng.

cảm ơn!

+3

'bí danh qp = hg qpush' – kennytm

+1

+1. Dù sao, tôi đã nhìn thấy nhiều câu hỏi chủ quan không thuộc về cộng đồng wiki :) –

+0

@ KennyTM: bạn đúng theo nghĩa là tôi nên tạo bí danh cho các lệnh mà tôi sử dụng nhiều nhất. Nhưng tôi biết tôi cuối cùng sẽ quên tôi có bí danh và cố gắng gõ 'hg qpush' chỉ vì tôi đã quen với nó. –

Trả lời

9

một số ý tưởng mơ hồ:

  • bạn có thể loại bỏ các vị trí push mặc định từ repo của bạn
  • bạn có thể viết một "bạn ấy có ý qpush có, không?" Pre-push hook

Móc này (dòng lệnh bash) yêu cầu xác nhận trước khi đẩy các thay đổi vào điều khiển từ xa (được thử nghiệm với mercurial 1.4):

[hooks] 
preoutgoing.confirm = read -p 'Are you sure you want to push to remote? (y/n): '; echo $REPLY | grep -q 'y' 
  • bạn có thể bí danh push to qpush và bí danh pushtoserver để đẩy (tôi nghĩ rằng làm việc này, nhưng không thể thử nó bây giờ)
+0

Rất hữu ích. Hai đề xuất đầu tiên chính xác là loại câu trả lời tôi đang tìm kiếm: các giải pháp thay thế khác nhau để giải quyết vấn đề của tôi. Tôi thích ý tưởng móc, nhưng tôi không biết viết chúng ra sao. Bằng cách đó tôi có thể tiếp tục sử dụng các lệnh gốc nhưng với một mạng lưới an toàn. Cảm ơn. –

+0

cuốn sách có một chương tốt về móc - thêm liên kết trong câu trả lời –

+0

Cảm ơn jk, tôi đã đọc chương và chỉnh sửa câu hỏi của bạn bằng móc mà tôi đã đưa ra sau khi đọc nó. –

6

Đặt sau trong .hgrc của bạn:

[alias] 
pushtoserver = push 
push = 'Did you mean qpush or pushtoserver?' 

trình như thế này:

$ hg push 
alias 'push' resolves to unknown command 'Did you mean qpush or pushtoserver?' 

$ hg pushtoserver 
abort: repository default-push not found! 

Xem thêm alias section of the hgrc manpage.

+1

Đẹp. Cảm ơn. Bây giờ mọi người đều biết tôi đã không cố gắng làm điều đó trước khi đăng bài =) –

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