2010-10-01 41 views
9

Làm cách nào để định cấu hình tự động đẩy trong Mercurial và Git? Đôi khi tôi quên để đẩy vào một máy tính, và khi tôi di chuyển vị trí của tôi, tôi ra khỏi đồng bộ với các mã tốt. Có một cách để mercurial và git làm điều này mỗi giờ, ví dụ?Cách định cấu hình đẩy tự động?

+5

bạn Nó đáng chú ý ở đây rằng đó là một ý tưởng tốt hơn để chỉ cần tìm hiểu để đẩy. Bạn thực sự không muốn đẩy sau mỗi lần commit. Nếu bạn làm điều này, bạn phá vỡ một số công cụ tốt nhất của git - bạn tự cắt bỏ từ việc rebase, 'commit --amend' và các công cụ chỉnh sửa lịch sử tuyệt vời khác. – Daenyth

+0

Chỉ cần lưu ý rằng nhóm của chúng tôi dẫn đầu khẳng định về việc có kho lưu trữ địa phương của nhà phát triển được nhân đôi trên máy chủ chỉ để có điểm sao lưu trực tiếp; chúng không thực sự là một phần trong quá trình hàng ngày của chúng ta. – rvalue

+0

Mở rộng suy nghĩ của bạn. Tôi sử dụng kiểm soát nguồn ngay cả khi tôi làm việc một mình. Và tôi làm việc trên các máy tính khác nhau. –

Trả lời

9

Trong lanh lợi bạn muốn đặt điều này trong .hg/hgrc

[hooks] 
commit = hg push 
20

Với git bạn có thể sử dụng móc post-commit để đẩy sau mỗi lần commit. Để thực hiện việc này, bạn cần phải thêm tập lệnh thực thi post-commit trong thư mục .git/hooks của mình. Ví dụ:

#!/bin/sh 
# 
# An example hook script that is called after a successful 
# commit is made. 
# 
# To enable this hook, rename this file to "post-commit". 

git push --mirror remote 

Trường hợp remote là tên của repo từ xa mà bạn đang cố gắng.

Bạn cũng có thể thiết lập cron để thực thi tập lệnh này mỗi giờ nếu muốn.

Cập nhật

Mercurial có móc quá (nhưng tất nhiên). Đây là relevant documentation. Tôi đã không sử dụng Mercurial vì vậy bạn sẽ phải tự mình làm việc đó.

+3

'-f' khá nguy hiểm. Đừng làm thế. – Reactormonk

+0

@Tass: đã cập nhật. Cảm ơn. –

+2

--mirror rất nguy hiểm và tôi không chắc đó là thứ bạn muốn. Nếu bạn không cập nhật, bạn sẽ đè bẹp những thay đổi của người khác. – jnorris

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