Sử dụng Subversion làm kho lưu trữ tạo tác so với công cụ quản lý tạo tác cụ thể


19

TL; DR: Tại sao sử dụng thứ gì đó như Apache Archiva hoặc Sonatype Nexus làm kho lưu trữ nhân tạo thay vì Subversion?

Hệ thống xây dựng tôi sử dụng hiện có rất nhiều đốm nhị phân (hình ảnh, tệp âm thanh, nhị phân được biên dịch, v.v.), cả dưới dạng đầu vào và đầu ra cho các bản dựng của chúng tôi. Hệ thống của chúng tôi để quản lý chúng là rất đặc biệt; một số được kiểm tra vào kho Subversion cùng với mã của chúng tôi, một số được lưu trữ ở nơi khác bên ngoài bất kỳ kiểm soát phiên bản chính thức nào.

Tôi đang xem xét hợp nhất điều này, vì vậy chúng tôi có một cái gì đó phù hợp hơn và dễ sử dụng hơn, và tách biệt các tạo tác nhị phân khỏi mã.

Google cho tôi biết có sẵn một kho lưu trữ tạo tác ( Archiva , Nexus , Artifactory , khắc), nhưng từ khi đọc xung quanh, tôi không thể thấy bất kỳ lợi thế nào khi sử dụng các này qua Subversion. Điều đó sẽ chăm sóc các nhị phân cho chúng tôi - đối với một số nhị phân của chúng tôi, chúng tôi chỉ muốn sắp xếp lại bố cục kho lưu trữ để tách chúng khỏi mã - và có một lợi thế đáng chú ý là chúng tôi đã có máy chủ Subversion và chuyên môn.

Vì thế. Lợi thế của việc sử dụng hệ thống quản lý tạo tác chuyên dụng so với sử dụng công cụ kiểm soát phiên bản chung như Subversion là gì?


Cho đến nay, lợi thế lớn nhất của việc sử dụng một công cụ chuyên dụng là các công cụ khác biết cách xử lý chúng ! Họ có thể đưa cổ vật vào những công cụ đó và họ có thể lấy chúng ra một cách tự động.
Joachim Sauer

Câu trả lời:


13

Câu trả lời ngắn: Nói chung, bạn không cần lịch sử tạo tác nhị phân và thay đổi đối với các tạo phẩm đó, bạn chỉ cần các phiên bản cụ thể.

Câu trả lời dài hơn: Mỗi khi bạn thực hiện một thay đổi nhỏ đối với tệp nhị phân, các hệ thống kiểm soát phiên bản không có cách nào để tạo một delta - khác biệt giữa hai tệp - vì vậy nó tạo ra một bản sao hoàn toàn mới.

Trong CVCS, như SVN, đó không phải là một nỗi đau lớn, bởi vì bạn chỉ có một bản sao trung tâm của kho lưu trữ - bản sao cục bộ của bạn chỉ là một phiên bản. (Mặc dù, ngay cả khi đó, kho lưu trữ của bạn có thể trở nên rất lớn, khiến việc đăng ký chậm hơn.) Nhưng điều gì xảy ra nếu sau này bạn chuyển sang DVCS, nơi mọi bản sao của kho lưu trữ có toàn bộ lịch sử của mọi tệp? Kích thước của những thay đổi trở nên rất phù hợp ở đó.

Và những gì nó mang lại cho bạn để đáp lại nỗi đau? Điều duy nhất nó cung cấp là có thể quay lại phiên bản trước của kho lưu trữ của bạn và biết rằng bạn có các tệp nhị phân chính xác cho phiên bản đó.

Nhưng bạn có cần toàn bộ nhị phân trong kho lưu trữ của bạn để làm điều đó không? Hoặc bạn có thể thoát khỏi việc chỉ cần có một tệp văn bản, cho biết quá trình xây dựng sẽ lấy phiên bản nào từ kho lưu trữ khác ở nơi khác không?

Thứ hai là những gì được cung cấp bởi các kho lưu trữ nhân tạo nói chung.

Ngoài ra, một số ứng dụng chuyên nghiệp hơn, chẳng hạn như Nexus, cũng sẽ cung cấp cho bạn thông tin về việc cấp phép cho các tạo phẩm của bên thứ ba, để bạn không gặp rủi ro khi bỏ qua một số điều khoản tinh tế trong những gì bạn tin là thư viện FOSS.


Ok, tôi nên tránh sử dụng kho Subversion hiện tại của mình làm kho lưu trữ giả, nhưng tại sao không thiết lập kho Subversion mới? Điều đó dường như có tất cả những lợi thế và bất lợi tương tự; một kho lưu trữ giả có lẽ có cùng các vấn đề về lưu trữ dữ liệu nhị phân lớn.
me_ và

@me_and: Bạn có thể làm điều đó. Nhưng sau đó, bạn phải quản lý phiên bản nào cung cấp phiên bản nào của tạo phẩm. Tại sao phải tự cho mình công việc làm thêm khi kho lưu trữ tạo tác làm việc đó cho bạn? Nó giống như nói "Vì vậy, tôi có thể sử dụng Notepad để viết mã của mình? Tại sao lại bận tâm với Eclipse?" Ngoài ra, bạn sẽ không bao giờ có thể thực sự loại bỏ các phiên bản cũ để tiết kiệm không gian. Bạn có thể với một kho lưu trữ giả.
pdr

1
Để nhấn mạnh và mở rộng câu trả lời của @pdr, nếu bạn sử dụng svn làm kho lưu trữ nhị phân, bạn có thể gặp vấn đề về lưu trữ vì svn được thiết kế để không xóa dữ liệu. Tại một nơi tôi làm việc, chúng tôi đã sử dụng svn để lưu trữ cổ vật và chúng tôi thường xuyên vượt quá giới hạn lưu trữ vì khó (không phải là không thể, nhưng khó) để loại bỏ các cổ vật không sử dụng khỏi cửa hàng. Các công cụ lưu trữ nhị phân nguyên gốc như Artifactory và Nexus cho phép xóa các tạo phẩm không cần thiết.
Matthew Skelton

3
Khắc phục: Subversion sử dụng deltas nhị phân trong nội bộ (và chỉ AFAIK những cái đó). Tôi đã làm thí nghiệm nhiều năm trước với việc lưu trữ các tệp MS Office và nó cực kỳ hiệu quả. Kích thước kho lưu trữ tăng rất chậm, ngay cả khi xáo trộn mạnh mẽ 200 slide PowerPoint. Nhưng hiệu quả của thuật toán delta nhị phân sẽ thay đổi rất nhiều theo loại tệp và tôi nghĩ rằng việc thiếu chính sách lưu giữ là vấn đề thực sự ở đây (một cái gì đó bạn có thể làm việc với một bãi chứa / tải được lọc, nhưng sau đó bạn bắt đầu viết giải pháp của riêng mình).
Peter Becker

"các hệ thống kiểm soát phiên bản không có cách nào để tạo một delta" - vấn đề là chúng làm chính xác điều đó - kể từ năm 2006 ... subversion.apache.org/docs/release-notes/1.4.html#svndiff1 en.wikipedia. org / wiki / Xdelta
RnR

1

Chúng tôi sử dụng SVN làm kho lưu trữ cho các bản dựng phát hành và nó hoạt động rất tốt. Chúng tôi có trong một kho lưu trữ phát hành tốt hơn 30gb các bản phát hành khác nhau và nó thực hiện tốt các bản dựng để triển khai.

một số lợi thế của việc này là ..

  • Các nhị phân được thêm vào SVN được nén gần 60-70 phần trăm trên không gian tiết kiệm avg.
  • SVN phục vụ như một thư viện (artifactory) cho các bản phát hành và kho lưu trữ được sao lưu cho các mục đích Phục hồi Thảm họa.
  • SVN qua https cho phép phân phối mã phát hành an toàn vào DMZ.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.