Phương pháp tích hợp các hệ thống kiểm soát phiên bản khác nhau hoặc chọn một hệ thống khác, do sáp nhập và mua lại?


11

Các công ty có được các công ty khác sử dụng các hệ thống kiểm soát phiên bản khác nhau.

Có một sự khôn ngoan chung về cách tích hợp các hệ thống như vậy với nhau, ví dụ như sử dụng cầu Subverson-GIT hoặc thậm chí quyết định chỉ sử dụng một công cụ trên một công cụ khác - và cách di chuyển giữa các hệ thống?

Mọi người có sử dụng một bộ tiêu chí cho việc ra quyết định như vậy không, ví dụ như một bài kiểm tra "Joel" về phát triển phần mềm?

Câu trả lời:


11

Để trả lời câu hỏi di chuyển từ kinh nghiệm cá nhân của một số di chuyển:

Đừng sợ chỉ đưa phiên bản hiện tại của phần mềm vào hệ thống kiểm soát nguồn mới làm đường cơ sở và hoạt động từ đó.

Phần lớn thời gian bạn sẽ không cần lịch sử. Điều này có nghĩa là đó là một nhiệm vụ ít hơn để thực hiện trong quá trình tích hợp và một điều ít sai sót hơn.

Các tệp / dự án đang được tích cực phát triển sẽ sớm tạo ra một lịch sử mới. Vì vậy, khi bạn cần tìm hiểu lý do tại sao một sự thay đổi được thực hiện thì rất có thể lịch sử sẽ nằm trong kho lưu trữ hiện tại vì nó sẽ là một thay đổi gần đây.

Các tệp / dự án đã ổn định trước khi di chuyển nên (tất cả mọi thứ đều bằng nhau) vẫn ổn định sau khi di chuyển, do đó bạn không cần phải tham khảo lịch sử. Chúng tôi thấy rằng nếu chúng tôi phải điều tra một lỗi trong một tệp / dự án cũ như vậy có lịch sử thì thực sự không có ích lợi gì. Miễn là bạn giữ kho lưu trữ cũ có sẵn trong 6 tháng / năm, bạn sẽ có tài liệu tham khảo trong những trường hợp như vậy.


+1 điểm công bằng, chỉ di chuyển những gì bạn cần, để lại các phiên bản cũ trong kho lưu trữ trước đó. Đừng di chuyển vì lợi ích riêng của nó. Cách tiếp cận này là một biến thể của cách tiếp cận với sự lựa chọn giữa tổ chức so với tìm kiếm. Nếu tìm kiếm có thể giúp bạn có được những gì bạn muốn một cách nhanh chóng, mọi lúc thì không cần phải tổ chức những gì bạn tìm kiếm.
trị liệu

1
+1 IMO chiến lược tốt nhất. Tiếp tục sử dụng chỉ một, những cái khác ở chế độ chỉ đọc trong trường hợp.
user281377

1
+1: câu trả lời chính xác hơn về phần di chuyển.
VonC

1
+1 - đủ khó để hiểu mã hiện có chứ đừng nói đến ba phiên bản cuối cùng.
JeffO

1
Chúng tôi đã chuyển đổi nhiều kho CVS sang SVN bằng cách sử dụng tập lệnh cvs2svn thú vị, hoạt động rất tốt. Tôi không bao giờ nhớ lại bất kỳ ai đang tìm kiếm lịch sử ngoài 'những thay đổi gần đây', vì vậy điều này thực sự không đáng giá cho không gian đĩa. Nếu tôi làm lại, tôi chỉ cần gắn thẻ repo CVS, đăng nhập vào SVN là mới và sau đó đánh dấu repo CVS là chỉ đọc.
JBRWilkinson

4

Về phía quản lý, chủ yếu là một câu hỏi về:

  • hỗ trợ : công ty sẽ phát hành VCS vẫn ở đó trong trường hợp gặp sự cố.
    Đáng buồn thay, một trong những lý do chính tại sao các sản phẩm lỗi thời như ClearCase vẫn được xem xét (ClearCase là từ năm 2003 một ... sản phẩm của IBM )
  • chi phí giấy phép : ngay cả khi có các lựa chọn thay thế phần mềm miễn phí, đôi khi "giấy phép nhóm" cho một VCS có thể được thương lượng hoặc thực sự được bao gồm trong một hợp đồng lớn hơn nhiều bao gồm máy chủ, mạng, hỗ trợ, v.v ... Giấy phép toàn cầu cho loại sản phẩm này có thể kết thúc chi phí thấp hơn rất nhiều so với giá công khai.

Về phía dự án, đó cũng là một câu hỏi về:

  • quản trị : trên máy chủ nào bạn sẽ cài đặt một VCS (hoặc nhiều VCS nếu chúng ta đang nói về Git, SVN và những người khác)? Với chính sách dự phòng nào? DRP (Kế hoạch phục hồi Disastry) là gì?
  • hỗ trợ tại địa phương : ai sẽ nhận hỗ trợ cấp 1,? cấp độ 2?
  • kiến thức thị trường : bạn có chắc chắn tìm thấy đủ nhà phát triển và / hoặc quản trị viên với kiến ​​thức phù hợp được thiết lập để tận dụng VCS này và tất cả các tính năng của nó không?

Phần mềm miễn phí hay không, hãy nhớ phần mềm "miễn phí" là miễn phí như trong "lời nói miễn phí" (bạn có thể tự do lựa chọn và triển khai phần mềm bạn muốn), chứ không phải trong "bia miễn phí" (nó vẫn sẽ tốn rất nhiều tiền trong máy chủ , sao lưu, quản trị, hỗ trợ, ...)

Các tiêu chí đề cập ở trên là một sự khởi đầu để xác định những gì VCS cần giữ, những gì cần từ bỏ.
Nhưng trong trường hợp sau, bạn cần xem xét:

  • chiến lược di chuyển : bạn có thể xuất / nhập lịch sử dự án từ một VCS này sang một VCS khác không?
  • chiến lược cầu nối : có ý nghĩa gì khi có một lịch sử trong hai VCS khác nhau?
  • lỗi thời của dự án : nếu một dự án đang trong tình trạng bảo trì / Kết thúc cuộc sống, có thể tốt hơn để hỗ trợ một VCS cũ trong một thời gian ngắn.

+1 câu trả lời hay, các gạch đầu dòng phác thảo các tiêu chí tôi đang tìm kiếm và những lời giải thích của bạn với chúng cũng giúp ích. Tôi sẽ cho người khác cơ hội trước khi chấp nhận câu trả lời. Cảm ơn.
trị liệu

1

Bạn có thực sự có nhu cầu tích hợp các hệ thống khác nhau? Trong nhóm của chúng tôi, mỗi dự án sống trong kho lưu trữ riêng và lịch sử của chúng là độc lập. Chúng tôi không có vấn đề gì ở đây để làm việc với một số dự án dưới sự lật đổ và một số dự án khác dưới sự đồng bóng, ngay cả khi có sự phụ thuộc giữa chúng.

Nếu bạn chọn di chuyển từ một VCS này sang một VCS khác, hãy xem các công cụ chuyển đổi có sẵn. Từ kinh nghiệm của tôi, không có lý do kỹ thuật nào để bỏ lịch sử của dự án.

Biên tập

Tôi nghĩ rằng tôi đã hiểu một cái gì đó, mà ẩn trong câu hỏi và trong các câu trả lời khác. Đó là thực tế rằng VCS cũng được sử dụng để quản lý các phụ thuộc. Tôi biết việc sử dụng các tính năng VCS như svn:externalstích hợp một repo (phụ thuộc) với một tính năng khác là khá phổ biến .

Tôi nghĩ lý do (kỹ thuật) mà nhóm của chúng tôi không cảm thấy cần phải kết nối (hoặc tích hợp) 2 hệ thống khác nhau của chúng tôi là chúng tôi có một công cụ riêng để quản lý các phụ thuộc. Repo của chúng tôi không biết nhau.


Cần tích hợp các hệ thống khác nhau? Có nếu công việc của một nhóm được sử dụng bởi một nhóm khác. Việc tích hợp có thể chặt chẽ hoặc mất tùy thuộc vào mức độ cần thiết và nguồn nhân viên có sẵn. Không nếu các dự án hoàn toàn độc lập. Mối quan tâm duy nhất còn lại là hỗ trợ nhiều hơn một hệ thống và liệu điều đó được coi là tốt hay xấu. Tốt nếu chúng ta chấp nhận rằng chúng ta sống trong một thế giới điện toán đa dạng hoặc xấu nếu chúng ta nghĩ rằng chúng ta nên tập trung và thể hiện sự quyết đoán đối với các loại rượu của riêng họ, bằng cách chọn một công cụ có thể quá độc đoán!
trị liệu

Tái bút +1 Bạn may mắn, barjak, vì đã ở trong một tổ chức chịu đựng được môi trường điện toán đa dạng.
trị liệu

0

Rất nhiều câu trả lời hay. Một điều khác cần suy nghĩ là đừng để các thành viên trong nhóm thoát khỏi suy nghĩ chuyển đổi VC là một vấn đề lớn như vậy. Sẽ có một trở ngại với việc di chuyển, đường cong học tập, v.v., nhưng nếu họ có quá nhiều vấn đề, họ cần đặt câu hỏi về mức độ khả năng và / hoặc hợp tác của họ.


+1 Một chủ nghĩa hiện thực ở đây. Mọi người cần giữ vững thần kinh, dũng cảm và tiến lên. Rủi ro cần được xác định rõ. Một cách học tôi đang thấy và nghe người khác nói tại nơi làm việc của tôi là đôi khi chúng ta không làm việc đủ chăm chỉ để giảm sự không chắc chắn / xác định rõ ràng rủi ro / tiếp giáp trước khi chúng ta tham gia. Có vẻ như có rất nhiều thời gian cho việc lặp lại lỗi / sửa lỗi nhưng không đủ thời gian để có được nó ngay lần đầu tiên. Khắc phục sự cố được khen thưởng và được xem là hoạt động đang diễn ra, ngay cả khi đôi khi chúng không cần thiết.
trị liệu

1
Điều đó phụ thuộc vào các VCS được đề cập và việc di chuyển được thực hiện tốt như thế nào. Chuyển từ Git hoặc thậm chí CVS sang bất kỳ VCS khóa nào sẽ cực kỳ chói tai.
David Thornley
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.