2010-04-10 50 views
5

sửa tôi nếu sai, nhưng không phân phối SCM cho các dự án OS trong khi các SCM tập trung tốt hơn cho các dự án của công ty/tư nhân?mercurial cho các dự án hệ điều hành và svn cho các dự án doanh nghiệp?

nguyên nhân với ví dụ. bất cứ ai thương xót được một bản sao chính xác của kho lưu trữ với các tính năng lịch sử đầy đủ, trong khi với tập trung bạn chỉ nhận được bản sao làm việc mới nhất.

im tập trung hơn vào các dự án riêng tư nên tôi tự hỏi liệu nó có tốt hơn với SCM tập trung hay không quan trọng?

+5

Bạn sai - bạn có thể có được lịch sử trong cả hai trường hợp - đó chính là raison d'etre cho bất kỳ hệ thống kiểm soát phiên bản nào. –

Trả lời

10

Bạn có thể use a DVCS (like mercurial) in large corporation.

Các giới hạn của một DVCS so với một VCS cơ bản là:

  • size (bạn có thể không vô thời hạn lưu trữ tất cả mọi thứ trong một DVCS, có nghĩa là bạn nên suy nghĩ lại dữ liệu phát triển của bạn as modules instead of a monolithic set of files mà vẫn có thể được tìm thấy trong lớn dự án)
  • quản lý quyền truy cập bên phải: nó không phải là hạt mịn trong DVCS vì nó có thể ở VCS, chủ yếu là vì nhiều bên bên ngoài có thể đóng góp cho dự án. Các ownership là phức tạp hơn để quản lý.
  • workflow: một công việc DVCS là phức tạp hơn ngay cả khi nó có thể emulate the one of a CVCS (một repo diễn xuất trung ương như tài liệu tham khảo cho tất cả những người khác)

Điều đó nói rằng, DVCS allows for a new way to publish (pull/pull) dữ liệu, mà có thể giúp cho liên nhóm "giao hàng trước" (khi một nhóm muốn chia sẻ phát triển mặc dù vẫn đang trong tiến trình và chưa chính thức cam kết với kho lưu trữ trung tâm): bạn trở thành passive produced and an active consumer.


Tomislav Nakic-Alfirevic hỏi trong các ý kiến:

Ông có thể minh họa cho điểm thứ hai của bạn so sánh một DVC với một tập trung?

Việc quản lý quyền truy cập là tricker, đặc biệt là nếu các tập đoàn lớn:

  • có chia sẻ một số kho lưu trữ của mình với doanh nghiệp bên ngoài để chia sẻ ra nguồn gốc phát triển
  • cho phép một số kho của nó để được nhân bản trên máy tính cá nhân (khi làm việc trong môi trường di động trên các trang web khác nhau, nơi nhà phát triển không có quyền truy cập vào mạng doanh nghiệp)

trường hợp ose, điều đó có nghĩa là:

  • xác thực người dùng không phải lúc nào cũng dễ hòa giải (cùng một người dùng có thể nhận dạng khác nhau tùy thuộc vào nơi họ nhân bản kho lưu trữ). Xác thực dựa trên SSH có thể được thiết lập (gitosis, gitauth).
  • siêu dữ liệu liên quan đến các tập tin được giới hạn, thông qua Git tags for instance
    (nhóm của một tập tin ví dụ có thể không tồn tại trên một máy tính được nơi repo được nhân bản)
    (siêu dữ liệu từ other tools are not transparently supported)
    (special characters in filenames can be problematic)
  • quyền truy cập thường được giới hạn trong tất cả kho lưu trữ chứ không phải natively được quản lý trên mỗi chi nhánh hoặc mỗi tệp (máy chủ như gitolite cho Git phải được định cấu hình cho điều đó, trái với CVS luôn có máy chủ, nghĩa là được bao quanh hơn để đề xuất ACL hạt mịn hơn)

Git ví dụ is a bit too simple để trả lời những lo ngại tập đoàn trực tiếp lớn:

dân mới đến git (có nghĩa là, tôi đã gợi ý cải tiến như thế này khi tôi bắt đầu quá;)) thường xuyên nói chuyện về việc thêm tính năng này hay cái kia tính năng, mà không nhận ra rằng git thực sự rất đơn giản.
Tệp có các tệp, thư mục, cam kết, thẻ và là số.
Đó là quyền lực đối với các giải pháp tập trung là thiếu của định danh thay thế như một chi nhánh con đường, máy chủ phân số thứ tự, vv

Có, có thể có nhiều mối quan hệ và siêu dữ liệu để đại diện cho một toàn bộ rất nhiều của sự vật.
Lịch sử mỗi tệp và hợp nhất, đổi tên thư mục, chọn hoa anh đào, hoàn nguyên.
Nhưng tất cả đều thêm các biến chứng vào mô hình cơ bản, vốn đã thể hiện bản thân để có khả năng xử lý những thứ này - với sự cẩn thận.
Nhưng việc trả tiền - đơn giản - cũng đáng để bạn lưu ý.

+0

Bạn có thể minh họa điểm thứ hai của mình so sánh DVC với điểm trung tâm không? –

+0

@Tomislav: Tôi đã cập nhật câu trả lời của mình để phản ánh một số thách thức quản lý người dùng với DVCS. – VonC

+0

Cảm ơn, đánh giá cao nỗ lực! –

2

Không, chắc chắn là không. Điều này gợi ý rằng DVCSes sẽ không phù hợp với doanh nghiệp là sai lầm, một lập luận FUD chung từ những người vì lý do gì đó có mong muốn không từ bỏ SVN.

Trong thực tế, cũng trong môi trường doanh nghiệp DVCSes cung cấp cho bạn nhiều lợi ích:

  • Khả năng kiểm tra ở thường xuyên mà không sợ chặn người khác
  • tuyến làm việc
  • hiệu suất cao
  • nhánh hiệu quả/sáp nhập
  • Kéo mẫu truy cập

Đối với điều cuối cùng, bạn có thể cung cấp cho các nhà phát triển dày dạn truy cập trực tiếp vào kho lưu trữ chính, trong khi các thành viên mới hoặc cơ sở của họ cố gắng kéo họ và xem lại các thay đổi của họ trước khi đẩy họ.

Nhập vào cuộc thảo luận trong câu trả lời ở trên; theo cách này, DVCS cung cấp cho bạn nhiều hơn kiểm soát kho lưu trữ của bạn, trong khi với SVN thường là mô hình thực sự khả thi duy nhất là cung cấp cho tất cả những người đóng góp truy cập vào ít nhất một phần của mã.

Bạn có thể có ít quyền kiểm soát hơn đối với các phần có mã, tuy nhiên bạn có thể cung cấp cho các nhóm khác nhau (ví dụ: nhóm tài liệu) bản sao riêng của chúng trong kho chính và hợp nhất lại sau khi xem xét. Hoặc đặt tài liệu trong một kho lưu trữ hoàn toàn khác hoàn toàn.

Thường thì bạn cần phải học các thực hành bạn đã học với VCS tập trung, quay lại trường hợp sử dụng và bạn muốn làm gì, sau đó xem xét cách DVCS có thể trao quyền này.

Bài viết rất hay để đọc để hiểu rõ hơn về sự khác biệt giữa các hệ thống kiểm soát phiên bản là Making Sense of Revision-Control Systems.

+0

DVCS cung cấp cho mỗi nhà phát triển quyền kiểm soát lớn hơn đối với kho lưu trữ. Điều này thường là tỷ lệ cược với các yêu cầu của một môi trường doanh nghiệp. Ngoài ra còn có vấn đề về kích thước - hầu hết các repos của công ty đều rất lớn. Có lợi ích cho DVCS mặc dù, tôi chỉ nghĩ rằng chúng ta cần một cái mới mà có những bit tốt nhất từ ​​mỗi. – gbjbaanb

+0

Bạn đã từng đọc nhận xét của tôi chưa? Như tôi đã nói, DVCS cung cấp cho bạn khả năng thiết lập cấu trúc cổng-người quản lý nơi một người có toàn quyền kiểm soát những gì kết thúc trong kho lưu trữ trung tâm, mà không giới hạn năng suất của các nhà phát triển của bạn. Điều đó giúp bạn kiểm soát nhiều hơn bao giờ hết với SVN. –

+0

Ngoài ra wrt. kích thước, không có vấn đề gì miễn là bạn đặt một số suy nghĩ trong cấu trúc kho lưu trữ của bạn và không tạo ra một kho lưu trữ tất cả. Chia các tiểu dự án của bạn thành nhiều kho lưu trữ, không kiểm tra các tệp nhị phân khổng lồ (thay vào đó sử dụng một hệ thống xây dựng có kiến ​​tạo như Maven hoặc Ant + Ivy) và tạo một kho lưu trữ riêng cho nghệ thuật của bạn hoặc các tài sản khác. –

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