2009-11-19 40 views
12

Tôi chỉ quen với Subversion và tôi có một câu hỏi cơ bản về phiên bản.Sử dụng Subversion, nơi mã nguồn "thực" được lưu trữ?

Tôi đã tạo kho lưu trữ SVN trên máy chủ "S" được lưu trữ trong mạng của mình. Giả sử tôi "nhập" mã, tập tin, thư mục, vv từ một máy tính khác "A" trong mạng, nó được thêm vào kho SVN của máy chủ của tôi.

Tôi thực hiện thanh toán từ một máy tính khác "B" trong mạng và tôi có thể lấy tất cả mã từ kho lưu trữ, v.v.

Giả sử tôi định dạng hoặc phá hủy PC "A", mã nguồn của tôi vẫn có sẵn thông qua thanh toán bằng B?

Nếu có, khi tôi thực sự duyệt vào thư mục lưu trữ của mình trên máy chủ, tôi không tìm thấy bản sao của thư mục, chỉ các thư mục cấu hình, db, v.v. Dữ liệu được lưu trữ trên máy chủ S ở đâu, nếu nó có ở đó? Hiện tại, kích thước thư mục của kho lưu trữ rõ ràng là nhỏ hơn nhiều so với các thư mục mã nguồn.

Tôi nghĩ rằng VSS giữ một bản sao của mã thực tế trong một số định dạng db không thể nhận ra, git có tùy chọn không yêu cầu làm điều này. SVN cũng có duy trì bản sao mã ở đâu đó không?

Trả lời

9

Khi bạn thực hiện thay đổi đối với kho lưu trữ của mình, chúng sẽ được lưu trữ trên máy chủ S bên trong kho lưu trữ lật đổ của bạn. Kho lưu trữ thực sự được xây dựng từ một loạt các vùng đồng bằng được lưu trữ bên trong thư mục db/revs - những thay đổi từ một phiên bản của kho lưu trữ sang thư mục tiếp theo. Như vậy, kho lưu trữ trên máy chủ sẽ không giống với cấu trúc mã nguồn của bạn. Các kho lưu trữ SVN được phiên bản như một tổng thể - bất kỳ thay đổi nào trong kho lưu trữ đều làm tăng phiên bản của kho lưu trữ.

Bạn có thể tạo lại mã nguồn của mình bằng cách kiểm tra bản sao sạch của kho lưu trữ từ máy chủ lật đổ lên bất kỳ máy nào.

1

Lưu trữ tệp Subversion ở một số định dạng độc quyền (không chắc chắn trên đầu của tôi) và không có trong cấu trúc thư mục. Đối với kích thước của nó, hãy chắc chắn rằng bạn đang thực sự cam kết các tập tin. Nếu bạn chỉ đơn giản là thêm chúng, các tập tin không được đưa vào kho lưu trữ. Ngoài ra, Subversion nén những gì đi vào kho lưu trữ.

Nếu tất cả máy tính khách bị hủy/định dạng, miễn là máy chủ vẫn khả dụng, bạn sẽ có quyền truy cập vào các tệp. Nếu bạn mất kho lưu trữ trên máy chủ, bạn sẽ được ẩn trừ khi bạn có thể cứu hộ một trong các lần kiểm tra để tạo một kho lưu trữ mới. Bạn sẽ mất bất kỳ lịch sử từ này mặc dù, rõ ràng.

Ngắn câu chuyện dài, hãy đảm bảo sao lưu định kỳ kho lưu trữ của máy chủ.

2

cho svn mã nguồn được lưu trữ dưới dạng mã nguồn trong bất kỳ thư mục làm việc nào và mã nguồn + lịch sử được lưu trữ trong kho lưu trữ dưới dạng nén. vì vậy nếu bạn bị mất kho lưu trữ của bạn, bạn sẽ mất bất kỳ mã mà bạn không hiện đã kiểm tra. nếu bạn mất một bản sao thanh toán thì chỉ những thay đổi cục bộ bị mất và bất kỳ thứ gì khác có thể được lấy từ kho lưu trữ.

cho DVCSs lịch sử cũng được lưu trữ trong bất kỳ thanh toán nào. vì vậy nếu kho lưu trữ 'chính' của bạn bị hỏng (giả sử bạn thậm chí có một), bạn sẽ có thể lấy lại tất cả lịch sử từ các phiên bản đã kiểm tra của mọi người.

và VSS chỉ bị hỏng.

2

Kho lưu trữ được lưu trữ trên thực tế ở một số cơ sở dữ liệu trên máy chủ SVN.Sau khi được nhập vào kho lưu trữ , không có dữ liệu nào sẽ biến mất ngoại trừ các lỗi trên máy chủ. Những thay đổi trong bản sao làm việc là không liên quan, trừ khi chúng được cam kết - và thậm chí sau đó mọi thứ đã từng cam kết có thể được tìm thấy trong lịch sử. Nếu bạn sao lưu kho lưu trữ của bạn thường xuyên, thì không có gì sẽ biến mất hoàn toàn.

1

Khi bạn nhập tệp nguồn, tệp sẽ được lưu trữ bên trong kho SVN trên máy chủ. Vì vậy, nếu PC "A" bị phá hủy, bạn vẫn có thể truy xuất nguồn từ SVN. Thư mục 'db' của kho lưu trữ là nơi chứa các tệp thực sự. Bạn có thể đọc thêm về cấu trúc kho SVN here.

0

Bên cạnh những câu trả lời khác:

  • Bản sao làm việc trên máy tính B sẽ không cập nhật tự động.

  • Thư mục lưu trữ không được nhỏ hơn thanh toán đầy đủ. Đảm bảo - bằng cách duyệt kho lưu trữ - tất cả các tệp từ bản sao làm việc của bạn thực sự được chứa trong kho lưu trữ.

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