2008-10-10 33 views
5

Hệ thống triển khai tự động của tôi cập nhật phiên bản mới nhất của lật đổ máng trang web của tôi. Thay vì có trang web trực tiếp của tôi trỏ đến thân cây (mà luôn luôn gần như là một công việc trong phiên bản tiến bộ), tôi có điểm trang web trực tiếp của tôi vào một thẻ.Phiên bản phụ và chuyển đổi giữa các thẻ

Ví dụ: Tôi làm việc trên thân cây và khi v1.0 của tôi kết thúc, tôi tạo một thẻ có tên 1.0 và thực hiện thanh toán của thẻ đó, sau đó là trang web trực tiếp của tôi. Bây giờ, tôi tiếp tục làm việc trên thân cây và sau một thời gian có một v2.0. Tôi tạo một thẻ có tên là 2.0 và tôi muốn trang web trực tiếp của tôi giống với thẻ 2.0 này.

Tôi có thể xóa trang web trực tiếp hiện tại và thực hiện thanh toán thẻ 2.0 này. Mà âm thanh dễ dàng đủ, tuy nhiên. Trang web của tôi có dung lượng khoảng 1GB vì nó có đủ loại tài liệu PDF và video trong đó. Tôi có thể nói một cách an toàn rằng hầu hết thời gian tôi cập nhật nó sẽ là bản sao thay đổi hoặc sửa lỗi. Điều này có nghĩa là có thể chỉ 1% trang web của tôi thay đổi theo mỗi lần cập nhật. Và kể từ khi kiểm soát phiên bản của tôi chỉ có thể truy cập vào máy chủ web của tôi thông qua kết nối http trên trang web tắt, điều đó có nghĩa là tôi cần tải xuống toàn bộ trang web đó nhiều lần.

Có cách nào dễ dàng để chuyển đổi giữa các thẻ và có lật đổ chỉ cập nhật sự khác biệt giữa các thẻ đó không?

Trả lời

7

Có một chức năng chuyển đổi thực hiện điều đó. Tôi sử dụng TortiseSVN mà là một cửa sổ shell/gui cho Subversion, vì vậy tôi không quen với làm thế nào để làm điều đó bằng tay, nhưng điều này có vẻ như nó sẽ giúp:

http://svnbook.red-bean.com/en/1.1/ch04s05.html

6

dòng lệnh: svn switch URL

Sử dụng công cụ trợ giúp svn để biết thêm chi tiết.

Tuy nhiên, tôi khuyên bạn nên làm mọi thứ theo cách khác. Trang web sản xuất của bạn luôn ở trên thân cây, trong khi bạn phát triển trên các nhánh được sáp nhập trở lại thân cây khi chúng sẵn sàng để phát hành. Sau bất kỳ bản phát hành cụ thể nào, bạn có thể tạo thẻ cho mục đích lịch sử. Sau khi hợp nhất, bạn chỉ cần thực hiện cập nhật svn để trang web của bạn chạy mã mới.

DivMod đưa ý tưởng này đến kết luận hợp lý của nó, tạo chi nhánh cho từng vấn đề/vé đang được thực hiện. Bạn có thể read their description of their system; nó cung cấp một số lý lẽ thuyết phục.

+0

+1 Cảm ơn bạn đã tham khảo DivMod. Cập nhật liên kết: http://twistedmatrix.com/trac/wiki/UltimateQualityDevelopmentSystem – Paolo

0

Tôi sử dụng thiết lập tương tự, ngoại trừ việc tôi sử dụng chi nhánh trực tiếp, thay vì thẻ. Đó là công việc nhiều hơn để cam kết, kể từ bây giờ tôi phải hợp nhất các thay đổi từ thân cây thành chi nhánh trực tiếp, nhưng tôi có thể sau đó chỉ cần làm một "svn lên" trong webroot để cập nhật nó. Nó cũng cho phép tôi kiểm soát tốt hơn một chút nếu tôi muốn hợp nhất các thay đổi đã chọn từ các nhánh khác nhau thành trực tiếp.

Nếu tôi làm lại lần nữa, tôi sẽ sử dụng các loại thủy ngân (hoặc tương tự) vì các chi nhánh dễ bảo trì hơn, nhưng kỹ thuật trên đã hoạt động cho 3 trang web trực tiếp trong khoảng hai năm nay.

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