2011-01-13 39 views
8

Tôi mới tham gia SVN và có một số thứ liên quan đến vấn đề này. Trong thời gian dài nhất tôi đã phát triển các trang web cục bộ (thiết lập MAMP) và sau đó ftping toàn bộ trang web trực tiếp khi nó đã sẵn sàng. Bất kỳ thay đổi nhỏ nào tôi thực hiện trực tiếp trên trang web trực tiếp và thường xuyên tôi sẽ tải xuống tất cả các tệp trên máy chủ trực tiếp vào localhost của mình (vì tôi không bao giờ có thể nhớ tất cả các tệp tôi đã thay đổi). Rõ ràng đây không phải là cách tốt nhất để làm việc. Tôi đã tò mò làm thế nào tôi có thể thiết lập SVN trên một máy chủ web sống, vì vậy mọi thay đổi tôi thực hiện tại địa phương nó sẽ được đẩy lên trang web khi tôi nói với nó. Tôi tạo repo svn ở đâu? /domain.com/www/svn? Tôi có thể tạo thư mục www làm repo thực tế hay không và liệu đây có phải là hành động xấu không?Làm thế nào để sử dụng svn trên một máy chủ apache sống?

+1

Máy chủ web trực tiếp của bạn có kết nối với máy chủ Subversion không? – jgifford25

Trả lời

7

Không tạo kho lưu trữ trong thư mục máy chủ web! Đó là phần đầu tiên của vấn đề của bạn.

Kho lưu trữ của bạn có thể tồn tại ở mọi nơi, chỉ cần không đặt nó vào thư mục của máy chủ web.

Khi bạn thiết lập Apache httpd (nếu đó là những gì bạn đang sử dụng), thiết lập nó để bỏ qua svn thư mục như thế này:

<DirectoryMatch \.svn> 
    Order allow,deny 
    Deny from all 
</DirectoryMatch> 

Bây giờ, ở một nơi khác, trừ máy chủ web của bạn, tạo ra một Subversion kho. Thanh toán từ kho lưu trữ đó trong một thư mục đang hoạt động ở một nơi khác không có trong thư mục máy chủ web của bạn. Bây giờ bạn có thể nhập tất cả các tệp sẽ nằm trong kho lưu trữ của bạn tại đây và cam kết chúng vào kho lưu trữ Subversion của bạn.

Khi bạn đã thực hiện điều đó, bạn có thể truy cập thư mục của máy chủ web nơi bạn muốn các tệp này xuất hiện và thực hiện thanh toán.

Bạn cần phải có ba điều:

  1. Một kho lưu trữ Subversion đó là không trong thư mục của webserver.
  2. Thư mục hoạt động chứa tất cả các tệp của bạn trong trang web của bạn là không có trong thư mục máy chủ web của bạn.
  3. Thư mục hoạt động nằm trong thư mục máy chủ web của bạn.

Gói này là: Bạn thực hiện các thay đổi trong thư mục hoạt động không có trong thư mục máy chủ web của bạn. Bạn có thể làm thử nghiệm của bạn ở đây, và cam kết thay đổi của bạn ở đây. Bạn cũng làm tất cả các thử nghiệm của bạn ở đây quá.

Khi bạn đã hài lòng với mọi thứ, bạn có thể thực hiện svn update trong thư mục làm việc Subversion nằm trong thư mục máy chủ web của bạn. Vì vậy, bạn làm công việc của bạn bên ngoài của máy chủ web, kiểm tra, và sau đó làm một svn update trong thư mục máy chủ web.

Nếu bạn muốn thực sự ưa thích, bạn có thể tạo một nhánh web đại diện cho mã trong thư mục máy chủ web của bạn. Sau đó, bạn có thể kiểm tra mã của bạn trong và ngoài tất cả những gì bạn muốn. Khi bạn đã sẵn sàng để thực hiện nó trong trang web của bạn, bạn có thể hợp nhất nó vào chi nhánh web. Khi bạn cập nhật thư mục làm việc trong thư mục máy chủ web của bạn, nó sẽ chỉ kéo mã trên nhánh web.

Trong thực tế, bạn có thể tự động hóa quá trình đó với một số loại cronjob. Bạn đưa trang web của bạn xuống, cập nhật thư mục làm việc lật đổ trong thư mục máy chủ web của bạn rồi khởi động lại trang web của bạn. Điều này đảm bảo rằng các tệp mà người dùng web đang xem không bị thay đổi từ bên dưới.

+0

Cảm ơn rất nhiều Tôi nghĩ rằng bạn đã trả lời câu hỏi của tôi nhưng tôi vẫn phải làm một số nghiên cứu thêm về svn vào cuối của tôi để đảm bảo rằng tôi hiểu nó. Tôi đã đưa ra một sơ đồ nhanh, bạn có thể kiểm tra điều này và xem liệu tôi có hiểu bạn đúng không? http://danramosd.com/svn_diagram.png – dan

+0

Xin lỗi, tôi không thấy biểu đồ. Hai chương đầu tiên trong [Subversion book] (http://svnbook.red-bean.com/en/1.5/index.html) giải thích cách hoạt động của nó. Đó là một trong những hướng dẫn sử dụng mã nguồn mở tốt nhất mà tôi từng thấy. Vì Subversion miễn phí, hãy tải xuống và làm theo các ví dụ trong sách. Với trong một tuần, bạn sẽ có được một ý tưởng tuyệt vời về cách Subversion hoạt động. Tôi sử dụng Git và Subversion cho các dự án của mình, nhưng thích Subversion vì nhiều lý do khác nhau. –

+0

mẹo hay để chặn thư mục .svn từ các yêu cầu http. –

1

tôi sẽ thiết lập một cấu trúc trong thanh toán svn của bạn (trên hộp địa phương của bạn) mà phù hợp với các tập tin bạn cần lưu trữ (và không nhất thiết phải phù hợp với cấu trúc của máy chủ), ví dụ:

my-project 
my-project/docs/README.txt  (any documentation you want to write) 
my-project/www/index.html (etc) 

và Sớm. Sau đó,

(1) Nếu bạn có quyền truy cập vào chạy lệnh trên máy chủ, tôi sẽ đăng nhập và làm ví dụ:

cd /domain.com 
rm -rf www 
svn co https://svn.myserver.com/my-project/www www 

(2) Nếu không, tôi sẽ kiểm tra các tập tin trên máy tính địa phương của bạn và ftp chúng trên máy chủ.

Tùy chọn (1) tốt hơn nhưng ngay cả với tùy chọn (2) bạn có lợi thế hơn thiết lập hiện tại của mình. Nếu bạn thay đổi tệp trên máy chủ, bạn có thể ftp toàn bộ thư mục quay lại hộp địa phương của bạn vào một thư mục mới, sau đó "cam kết" các tệp với máy chủ lật đổ. Subversion (với các thư mục .svn mà bạn cần sao chép vào/từ máy chủ) sẽ biết bạn đã thay đổi tệp nào.

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