2009-02-12 19 views
16

Chúng tôi đang xem xét di chuyển từ ClearCase sang Subversion. Dự án đã ở đó một thời gian (7 năm) và có ba phiên bản "chính" (nhánh) mà chúng tôi tích cực hỗ trợ, cộng với một số sửa lỗi thường xuyên trong các bản phát hành cũ hơn. Dự án khá lớn - khoảng 2 triệu dòng mã java.Chiến lược tốt nhất khi di chuyển từ ClearCase sang SVN là gì?

Tôi rất tò mò nếu có ai đó đã thực hiện di chuyển tương tự.

  • SVN có thể xử lý một dự án lớn như vậy không?
  • Có ý nghĩa khi di chuyển tất cả các phiên bản/chi nhánh lịch sử không? Các công cụ có thể làm điều đó một cách có chọn lọc?
  • Quy trình di chuyển sẽ mất bao lâu để thực hiện dự án như vậy và cách thức hoạt động hiệu quả khi di chuyển đang diễn ra là gì?
+0

Tôi thứ hai là câu hỏi. ;-) –

+0

câu hỏi ngắn. Các cửa sổ? – Avram

Trả lời

9

Đối đã thực hiện một số di cư của loại hình này, tôi sẽ cho rằng:

  • bạn không cần phải nhập khẩu tất cả lịch sử của các phiên bản ClearCase vào SVN. Hầu hết thời gian (đối với kinh nghiệm của tôi), chỉ có các phiên bản được dán nhãn (phiên bản được áp dụng nhất quán trên tất cả các tệp của một tập hợp nhất định), trừ khi bạn có nhu cầu thực sự cho một sửa đổi lịch sử chi tiết.

  • bạn cần phải suy nghĩ về tổ chức lại trong một di chuyển:? Những gì bạn nhập, điều gì làm bạn để lại, và bạn có muốn nội dung SVN phản ánh chính xác cấu trúc của các tập tin được lưu trong ClearCase VOB? Đôi khi, việc di chuyển như vậy là dịp để suy nghĩ lại một số tổ chức tệp đó (thường là thông qua quy tắc đổi tên đơn giản cho các thư mục nhất định).

  • di chuyển là nhanh hơn trong ClearCase 2 SVN cách, kể từ SVN là kho lưu trữ tập trung và cam kết một tập hợp các tác phẩm, trong khi ClearCase là tập trung tâm và cam kết file-by-file (nhiều sloooower)

  • nếu tập hợp các tệp cần nhập được xác định rõ ràng, quá trình di chuyển có thể được lặp lại nhiều lần, có nghĩa là bạn có thể tiếp tục làm việc trong ClearCase trong khi nhập (lớn) đầu tiên, sau đó đặt Đường cơ sở (nhãn UCM) trên mã của bạn và chỉ nhập lại vùng đồng bằng, kết thúc hiệu quả quá trình di chuyển.

1
  1. Có, Subversion có thể xử lý các dự án rất lớn. Ví dụ, tất cả Apache projects nằm trong một kho lưu trữ Subversion duy nhất với các tiểu dự án là các thư mục con đơn giản
  2. Nếu bạn có ý nghĩa để chuyển đổi tất cả lịch sử, bạn phải tự quyết định. Nhưng có rất nhiều công cụ có sẵn. Một bài đăng blog tốt có thể được tìm thấy here.
  3. Tôi không biết chuyển đổi đó mất bao lâu. Nhưng bạn có thể thử đầu tiên với một tập con nhỏ và đo thời gian.
+0

Trái với những gì bạn nghĩ, Apache không phải là dự án rất lớn, nó thậm chí không phải là một dự án lớn. Nó chỉ có khoảng 30 cộng tác viên. Nó là một dự án cỡ trung bình. SVN không thực sự có khả năng xử lý các dự án lớn. Kích thước của cơ sở mã không thực sự là yếu tố quyết định nhiều như số lượng người cần hợp tác và số lượng tương tác, phân nhánh và sáp nhập. –

+0

Vui lòng xem kho lưu trữ Apache (http://svn.apache.org/repos/asf/) trước khi bạn đưa ra các giả định sai về kích thước dự án. Kho lưu trữ không chỉ lưu trữ dự án máy chủ web Apache nhưng * tất cả * các dự án Apache, cùng với hàng trăm các ủy ban. – Stefan

+0

Kích thước của cơ sở mã thường không phải là vấn đề đối với bất kỳ hệ thống kiểm soát nguồn nào. Ngoại trừ có thể ClearCase, mà trong các phiên bản trước có giới hạn 16 triệu đối tượng trên mỗi vob, nghĩa là mọi phiên bản hoặc nhãn được áp dụng cho bất kỳ phiên bản nào. Bạn cần hàng tá vob cho các dự án lớn hoặc bắt đầu xóa các phiên bản cũ. Không phải là nó có liên quan đến câu hỏi cụ thể này, nhưng những gì bạn nói về Apache vẫn không biến nó trở thành một dự án lớn, chỉ là một codebase lớn. SVN hoàn toàn có khả năng xử lý các codebase lớn, chỉ không thực sự có số lượng lớn người đóng góp và quá trình phát triển phức tạp. –

5

Đầu tiên một số tài nguyên:

  1. Clearvision CC2SVN Tool
  2. SVN Importer by Polarion
  3. Article and resources on CollabNet

Kích thước của kho thực tế, số lượng các tập tin hoặc kích thước của chúng không phải là một yếu tố hạn chế cho SVN. Số lượng nhà phát triển, đồng thời thay đổi, phức tạp của quá trình tích hợp và phát hành, cần phải hợp nhất và phiên bản thư mục (tái cấu trúc) có thể gây ra vấn đề cho một dự án lớn. Nếu dự án của bạn chỉ lớn, nhưng nó khá ổn định, với số lượng nhà phát triển thấp, số lượng chi nhánh nhỏ và không cần phải trả lại hàng tấn bản sửa lỗi cho một vài bản phát hành trước, SVN nên làm tốt cho bạn.

Tôi đã viết một công cụ di chuyển tùy chỉnh mang dữ liệu ra khỏi ClearCase và nó không phải là nhiệm vụ dễ dàng. Mỗi hai hệ thống có các mô hình dữ liệu khác nhau và các hoạt động trên dữ liệu. Tôi sẽ không đề nghị viết bất kỳ công cụ di chuyển tùy chỉnh nào, bởi vì rất khó để có thể lấy dữ liệu ra khỏi ClearCase theo bất kỳ cách nào có ý nghĩa. Để biết chi tiết về các hạn chế của các giải pháp thương mại, tôi sẽ đề nghị liên hệ với các nhà cung cấp giải pháp được liên kết trong tài nguyên.

Cá nhân tôi sẽ cố gắng mang lại nhiều dữ liệu nhất có thể, nhưng bạn phải nhận thức được các giới hạn của SVN so với ClearCase. Bất kỳ lịch sử thư mục versioning (refactoring) có thể sẽ bị mất trong quá trình di chuyển này. SVN không hỗ trợ các nhánh thưa thớt như ClearCase, có thể làm tăng kích thước kho lưu trữ SVN của bạn trong trường hợp bạn sử dụng các nhánh nhiệm vụ. Trong trường hợp đó, bạn có thể muốn giới hạn mình vào các nhánh hệ thống. Các tệp trong ClearCase có cấu trúc phân nhánh riêng lẻ, trong khi SVN có các loại nhánh cho mỗi sản phẩm, điều này sẽ dẫn đến nhiều bản dịch nhánh trong tiến trình. Bằng cách giới hạn bản thân cho các nhánh hệ thống và có thể chỉ là phiên bản có nhãn trên các nhánh đó cho các nhãn được tích hợp đầy đủ trong chuỗi, bạn có thể tiết kiệm cho mình rất nhiều rắc rối. Trong trường hợp nhóm của bạn đang sử dụng UCM, bạn hoàn toàn có thể quên tất cả siêu dữ liệu UCM. Họ sẽ không dịch sang SVN.

Khung thời gian phụ thuộc phần lớn vào các công cụ được sử dụng. Đối với một dự án lớn như bạn có nó có thể là ngay cả tuần. Cơ sở dữ liệu ClearCase có một số lý do rất kỳ lạ khi khóa ngay cả trên các hoạt động đọc và có một bảng trung tâm của mọi thứ tạo ra rất nhiều vấn đề trong việc truy cập quy mô lớn như di chuyển sẽ gây ra. Lần đầu tiên tôi chạy công cụ của mình trên sản phẩm hơi lớn hơn sản phẩm của bạn, chúng tôi ước tính nó sẽ chạy trong 3 năm, sau khi tối ưu hóa nhiều, song song và di chuyển gia tăng nó giảm xuống còn khoảng một tuần. Nhưng hy vọng rằng tùy thuộc vào công cụ được thực hiện tốt như thế nào, có thể có nhiều thay đổi trong thời gian cần thiết. Mặc dù kể từ khi bạn di chuyển vào SVN và bạn sẽ bỏ qua rất nhiều lịch sử và siêu dữ liệu từ ClearCase, việc di chuyển của bạn sẽ nhanh hơn nhiều.

ClearVision, đề cập đến các trang của nó rằng công cụ CC2SVN của nó có thể tạo cầu nối giữa hai sản phẩm. Mặc dù tôi không sử dụng công cụ này, nếu nó hoạt động như tôi giả định, nó sẽ cho phép bạn đồng bộ hóa 2 kho lưu trữ sau khi xử lý, điều này sẽ cho phép bạn chuyển đổi vào cuối tuần, với thời gian ngừng phát triển bằng 0. Nếu điều này là không thể, hãy thử yêu cầu một số thay thế như di chuyển gia tăng, nơi bạn di chuyển lần đầu lên đến một số ngày, sau đó di chuyển một đoạn dữ liệu nhỏ hơn đã thay đổi kể từ ngày đó.

Phần rất quan trọng của quy trình là giai đoạn di chuyển bài đăng. Vui lòng không giảm giá các cơn đau đầu mà công tắc sẽ mang đến cho nhà phát triển của bạn. Bạn không được đánh giá thấp nhu cầu đào tạo và tài liệu rõ ràng. Bạn cũng sẽ cần một nhóm hỗ trợ được đào tạo trong bộ phận kỹ thuật phần mềm của bạn có khả năng vận hành cả hai hệ thống SCM và giải thích cho các nhà phát triển cách làm những thứ họ đã quen với hệ thống mới.Đây thực sự là một điểm có thể phá vỡ cổ của bạn trong quá trình di chuyển. Các nhà phát triển chống lại bất kỳ thay đổi nào và bất kỳ lợi thế nào mà SVN mang lại cho dự án, đó là bản chất hệ thống kém hơn nhiều. ClearCase cung cấp cho các nhà phát triển của bạn rất nhiều tính linh hoạt mà họ sẽ không bao giờ có với SVN và trừ khi bạn đưa họ lên tàu sớm trong quá trình này, bạn có thể mất họ hoặc tệ hơn, chuyển toàn bộ quá trình di chuyển, tuyên bố thảm họa và mất công việc của riêng bạn.

1

Tùy chọn khác là Migrate2SVN. Nhà phát triển (Clearvision) vừa phát hành phiên bản v2.0 và nó có vẻ bao gồm nhiều cải tiến MANY so với phần mềm Polarion và các phương pháp khác đề cập ở trên.