2012-07-04 26 views
5

Tại nơi làm việc chúng tôi sử dụng svn trên máy chủ nhưng tôi đang sử dụng git cục bộ (thông qua git-svn) để tận dụng tốc độ/phân nhánh/cam kết chưa sẵn sàng chia sẻ, v.v.Làm thế nào để giữ một kho lưu trữ git sao lưu đồng bộ với cục bộ, "git push --mirror" hoặc "git remote update"

Điều này hoạt động tốt nhưng tôi không thoải mái khi chỉ thay đổi một máy tính trong vài ngày khi có sự cố. muốn có bản sao lưu riêng tư trên chia sẻ tệp của chúng tôi.

Tôi đã tạo ra một bản sao của repo địa phương của tôi bằng cách sử dụng lệnh như thế này:

git clone --mirror MyRepo z:/MyRepo.git 

và đã thêm này như một điều khiển từ xa để địa phương của tôi với điều này:

git remote add backup z:/MyRepo.git 

tốt nhất là gì cách giữ kho lưu trữ sao lưu đồng bộ với kho lưu trữ cục bộ của tôi vào cuối ngày?

Tôi nghĩ rằng một trong những điều sau đây nhưng không biết nếu chúng tương đương hoặc không phải là những gì các thương mại được.

  1. Trong kho địa phương: git push --mirror backup

  2. Hoặc trong kho lưu trữ sao lưu: git remote update

Hoặc thực sự nếu có một cách tốt hơn?

+0

Thứ như rsync hàng đêm trong thư mục .git bên trong công việc cron có thể phù hợp hơn việc sử dụng git như một giải pháp sao lưu. Nếu bạn đang tìm kiếm một phương thức thủ công, 'git push --mirror' đến một kho lưu trữ trống sẽ thực hiện. – meagar

+0

@meagar tiếc là tất cả chúng ta đều có máy tính xách tay phải bị khóa mỗi đêm vì vậy tôi không thể có được cách làm cron. Hiện đang làm điều git push, chỉ muốn biết nếu tùy chọn 2 về cơ bản là giống nhau. – Argos

+0

Tôi sử dụng 'git push --mirror backup' (sao lưu là bản sao lưu từ xa git repo của tôi). Sau đó tôi sử dụng một kịch bản mà tôi đã viết nếu tôi cần khôi phục từ bản sao lưu chạy 'git fetch backup refs/remotes/*: refs/remotes/*' cũng như một số công cụ resit git-svn (vì tôi không muốn phải phân tích toàn bộ máy chủ SVN vì mất một vài ngày để tất cả các dự án của tôi được chuyển và chỉ mất vài phút - nếu điều đó - để làm cho nó nhân bản và làm mới từ bản sao lưu của tôi). –

Trả lời

0

Nếu bạn có quyền truy cập vào máy chủ với kho SVN, bạn có thể sử dụng sơ đồ sau: cài đặt SubGit vào kho SVN (nó sẽ tạo kho lưu trữ Git trên máy chủ sẽ liên tục đồng bộ với kho SVN, bạn có thể coi nó như là một giao diện Git tới kho SVN). Sau đó, chỉ cần sử dụng giao diện Git thuần túy (kéo, đẩy) thay vì git-svn, như thể nó luôn là một kho lưu trữ Git. Tất cả các thay đổi sẽ tự động đồng bộ với SVN. Cách tiếp cận này hơi khác một chút so với mô tả của bạn bởi vì bạn có gương trực tiếp trên máy chủ, nhưng có thể thú vị đối với bạn.

+0

Tôi sợ rằng tôi không có quyền truy cập vào máy chủ SVN, sẽ là một giải pháp tốt đẹp. – Argos

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