2011-02-05 33 views
6

Chúng tôi đã sử dụng máy chủ SVN DIY trong văn phòng trong khoảng một năm nay. Đó là một thiết lập đơn giản với SVN được cài đặt trên một máy chủ gia đình. Chúng tôi sử dụng SVN rùa để truy cập nó Tôi chỉ ước mình đã học về hệ thống contol phiên bản vài năm trước .. Dù sao, tất nhiên truy cập vào máy chủ là hoàn hảo trong văn phòng trên mạng LAN 1Gbps nhưng bên ngoài có thể sử dụng được nhưng kém, bị giới hạn bởi Tốc độ tải lên 50k byte/giây của đường ADSL của chúng tôi lên web. Tôi đoán điều này có thể cải thiện một ngày với 'vô cùng' nhưng chúng ta có thể chết chờ đợi.Tôi có thể tạo một kho lưu trữ SVN được lưu trữ 'song song' với chính máy chủ của tôi trên máy chủ văn phòng của tôi không?

Tôi muốn có một kho lưu trữ 'song song' được lưu trữ, mà tôi nhận thấy tôi sẽ thanh toán, nơi truy cập nhanh hơn nhiều. Điều này cũng sẽ cung cấp cho chúng tôi một bản sao lưu bổ sung. Repo của tôi chỉ dưới 40G, nên giới hạn 100G sẽ ổn thôi. Có cách nào để làm điều này và làm cho hai như gương như cam kết (nhỏ ít nhất) có thể nhìn thấy trên cả hai gần như ngay lập tức? Tôi đã sử dụng lệnh Svnbackup để tạo một máy nhân bản song song trên máy chủ của chúng ta để có thể làm việc theo cả hai cách?

Bất kỳ đề xuất hoặc giải pháp thay thế nào được đánh giá cao.

TIA Brian

Trả lời

2

Bạn có muốn có một máy chủ chỉ đọc, hoặc đọc + viết truy cập vào nhiều hơn một máy chủ? Khi bạn chỉ cần một máy nhân bản chỉ đọc, bạn có thể sử dụng svnsync để nhân rộng máy chủ văn phòng của bạn đến một máy chủ nhân bản.

Khi bạn muốn cam kết từ những nơi khác nhau, hãy xem công cụ phân phối như hg + hgsubversion hoặc git-svn, cả hai có thể được sử dụng làm ứng dụng không đồng bộ cho svn.

+0

Cảm ơn. Đọc-ghi xin vui lòng. Sử dụng chính của tôi của gương www sẽ là khi ở nhà (hoặc ra khỏi văn phòng). –

+1

@Brian Bạn không thể (dễ dàng) thiết lập một cụm máy chủ svn đa chủ, vì mô hình dữ liệu của svn không cho phép điều này. Bạn có thể đặt máy chủ trung tâm trên internet, gây mất hiệu năng trong văn phòng của bạn. Bạn cần phải tự quyết định nếu mất hiệu suất tis là chấp nhận được cho bạn. Một cách khác là sử dụng mercurial hoặc git như svn client, vì những công cụ này cho phép bạn làm việc ngoại tuyến. Nhưng cách tiếp cận DVCS chỉ hoạt động khi bạn không cần các tính năng như khóa tập tin hoặc kiểm tra một phần cây. – Rudi

0

Máy chủ Linux SVN chuẩn có các móc cho phép bạn chạy tập lệnh của riêng mình trên các sự kiện. Bạn có thể sử dụng hook hậu cam kết (chỉ cần đặt một kịch bản có tên là "post-commit" trong thư mục "hooks" -directory).

Bây giờ bạn có thể chỉ phát hành bản sao nóng của toàn bộ kho, dễ cài đặt (svnadmin hotcopy from to) và sao chép kho lưu trữ sang máy chủ khác trên internet bằng ssh hoặc tương tự. Bạn có thể làm điều này trên cả hai máy và bạn tốt.

Nhược điểm:

  • Nếu kho của bạn là lớn, thì đây phải mất rất nhiều thời gian
  • Cẩn thận với khả năng ai đó cam kết một kho lưu trữ và người khác để kho khác cùng một lúc. Điều này cũng có thể làm hỏng mọi thứ. Bạn phải chắc chắn rằng điều này không xảy ra hoặc tìm cách khóa kho của bạn (như đóng cửa svn trong quá trình sao chép)
  • bạn cần truy cập shell cho cả máy

Bạn có thể điều tốc độ lên bằng cách lưu kho lưu trữ vào một tệp cục bộ và chỉ truyền các khác biệt tới máy khác.

1

Điều tôi nghĩ bạn thực sự cần là proxy phụ - đây là bản sao của máy chủ lật đổ để truy cập chỉ đọc, khi bạn viết (cho nó), các cam kết được chuyển thẳng đến chủ. Khi bạn đọc nhiều hơn viết, điều này cung cấp một cách đơn giản nhưng hiệu quả để đạt được những gì bạn muốn.

Có rất nhiều tutorials trên web, nhưng tất cả đều yêu cầu bạn chạy phiên bản phụ bằng cách sử dụng truy cập http (không phải svnserve). Các nô lệ được giữ đến ngày thông qua svnsync tuyệt vời và một móc hậu cam kết.

+0

@gbjbaand: Đó là một ý tưởng thông minh, cảm ơn. –

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