2008-10-06 17 views
6

Tôi là một fan hâm mộ lật đổ lớn và đang chuẩn bị chiếm một trang web lớn (khoảng 200mb). Tôi đã cắt giảm trang web chính từ kích thước ban đầu là 500MB !!sử dụng subversion với một trang web thực sự thực sự lớn

Tôi sắp kiểm tra trang web này thành một kho lưu trữ lật đổ mới. Vấn đề là, kho lưu trữ subversion của tôi được lưu trữ từ xa để một đồng nghiệp khác cũng có thể làm việc trên trang web.

Tôi lo lắng về việc phải đăng ký và nhận 200MB mỗi khi tôi phải cập nhật trang web.

Phát triển khá tích cực nên sẽ có rất nhiều thứ thay đổi liên tục.

Giả sử tôi nhận mọi thứ được đăng ký ok, sẽ lật đổ đảm bảo nó chỉ tải xuống các tệp/thư mục mới/sửa đổi mỗi khi tôi thực hiện thanh toán mới hoặc tôi sẽ đợi 200MB để tải xuống mỗi lần?

Trả lời

12

Trừ khi tôi bị nhầm lẫn sau lần kiểm tra đầu tiên vào/ra, bạn chỉ xử lý các tệp .diff để bạn chỉ phải tải xuống/tải lên các thay đổi (không phải toàn bộ tệp chỉ là các dòng đã được thay đổi miễn là tệp ASCII) tồn tại giữa các tệp trên máy khách/máy chủ.

Bản sao/lần cập nhật đầu tiên sẽ rất đáng sợ.

+0

200mb không được quá xấu đối với cam kết ban đầu, miễn là bạn có kết nối internet hợp lý. Bạn nói đúng, svn sẽ chỉ gửi các thay đổi từ đó trở đi. – Ferruccio

+0

Đối với hầu hết các kết nối dân cư đang tải lên một nửa hai chiều, điều đó sẽ khiến kết nối của bạn gần như vô dụng cho đến khi bạn hoàn tất. –

+0

@Chad: Tôi phải không đồng ý ở đây. Tôi không có vấn đề gì về cáp hoặc DSL. – GEOCHET

0

Nếu nhiều thay đổi được thực hiện thường xuyên, tại sao không có mục nhập cron cập nhật lật đổ để cập nhật bản sao cục bộ của bạn, cứ 6 tiếng một lần?

Bằng cách đó, bạn đang nhận được những khác biệt gần đây (hoặc không có nếu nó không được cập nhật trong vài giờ) thay vì toàn bộ shebang.

EDIT: để làm rõ, nếu có nhiều thay đổi xảy ra, nhưng chỉ trên một vài trang tại một thời điểm, mọi cam kết/cập nhật nhất định sẽ nhỏ; nếu chúng được làm cho tất cả/hầu hết trang web, thì thường xuyên cập nhật sẽ rất quan trọng.

0

nó sẽ chỉ gửi các thay đổi khi bạn cập nhật hoặc nhận xét. Bạn sẽ ổn.

0

Subversion chỉ nhận được các bản cập nhật/khác biệt, vì vậy bạn chỉ có toàn bộ lần thanh toán khi bạn nhận được lần đầu tiên. Các cập nhật sau này bạn sẽ chỉ nhận được các thay đổi.

Để hỗ trợ việc hợp nhất, có thể có hai bản sao hoạt động - một bản sao cho dòng mã chính, một được chỉ vào nhánh nhiệm vụ của bạn. Bằng cách đó, bạn không phải chuyển bản sao làm việc của mình từ một dòng mã Subversion sang một dòng mã khác - có thể tốn kém, như kiểm tra mã để bắt đầu.

0

Nó sẽ chỉ tải xuống các tệp đã được chạm vào giữa thời gian đó. Tuy nhiên, nếu bạn định phân nhánh (như bạn nên làm) thì bạn có thể chờ đợi một thời gian dài.

Dự án thực sự cần bao nhiêu? Tôi nghi ngờ rằng có 200mb nguồn. Nếu nhiều dữ liệu là tài nguyên thay đổi rất thường xuyên (tức là hình ảnh) thì bạn có thể nghĩ đến việc tách các kho lưu trữ thành các dự án nhỏ hơn.

1

Như đã nói ở trên, cam kết/cập nhật chuyển chỉ khác nhau và khá nhanh. Việc kiểm tra tốn nhiều thời gian hơn - sử dụng công tắc svn để chuyển nhanh giữa các nhánh.

Ngoài ra, giao thức truyền tải HTTP/WEBDAV không hiệu quả lắm, đặc biệt là khi xử lý nhiều tệp nhỏ (ví dụ: mã nguồn :)) - bạn có thể xem xét sử dụng svnserve thay thế.

200 MB dữ liệu không được quá nhiều rắc rối cho Subversion - nhưng nếu không gian đĩa và truyền dữ liệu hiệu quả thực sự là một vấn đề bạn cũng có thể xem xét git hoặc mercurial. Đặc biệt git hiệu quả hơn nhiều, nhưng có lẽ bạn sẽ cần thêm một chút thời gian để quấn quanh các khái niệm về kiểm soát nguồn phân tán, và bạn phải sống mà không có các công cụ GUI ưa thích ngay bây giờ (các công cụ dòng lệnh) có thể sử dụng gần đây).

Liên kết này có thể là thú vị, quá: Website Auto Update

+0

hiệu quả giao thức vận tải là một điểm rất quan trọng – Jean

1

tôi chạy các trang web là hoàn toàn khoảng 5 GB trở lên. (và một hệ thống xây dựng làm thay đổi nhiều tệp cho mỗi bản dựng). Vì vậy, đồng bằng sẽ có khoảng 200MB dễ dàng (và đến một trang web từ xa). SVN xử lý nó hoàn toàn tốt đẹp. Nó cũng phụ thuộc vào cách tốt apache của bạn có thể giữ (nếu bạn đang sử dụng apache).

5

Một điều cần ghi nhớ là bạn có thể làm bản sao của thư mục kiểm tra ra của bạn và họ vẫn sẽ là bản sao làm việc hợp lệ:

svn checkout http://server/path/to/repos my_working_copy 
cp -a my_working_copy another_working_copy 
svn status another_working_copy 

Điều đó có thể tiết kiệm rất nhiều thời gian/băng thông nếu bạn cần nhiều bản sao làm việc. Nó cũng làm cho phân nhánh và chuyển đổi nhanh hơn rất nhiều

svn checkout http://server/path/to/trunk my_trunk 
cp -a my_trunk my_branch 
cd my_branch 
svn switch http://server/path/to/branches/stable 

Như đã được chỉ ra trong các trả lời khác, bạn sẽ chỉ phải tải xuống sự khác biệt giữa thân cây và nhánh.

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