Cách hợp lý để hợp nhất hai dự án trong phần mềm kiểm soát nguồn


8

Tôi đang sử dụng Fossil-SCM để duy trì các dự án của mình. Vì tôi không làm việc trong nhóm nên tôi thường chỉ có một nhánh phát triển rất tuyến tính: 1.0 -> 1.1 -> 1.2

Tôi đang tự hỏi thủ tục là gì khi bạn có một dự án mà nhiệm vụ của bạn sắp được giao cho một dự án liên quan. Và qua đó khiến dự án đầu tiên trở nên lỗi thời. Mặc dù tôi có xu hướng viết lại hầu hết mã của mình nếu tôi không nhớ đã viết nó, tôi vẫn muốn giữ mã được lưu trữ. Và tôi không muốn có một repo hóa thạch mà đã chết. Tôi có thể hợp nhất nó không? Đó có phải là cách xử lý thích hợp này?

Ví dụ: mã đã trích xuất dữ liệu từ tệp excel để định dạng trang HTML. Bây giờ, tôi đã thuyết phục chủ nhân của mình chuyển bảng tính excel của họ vào cơ sở dữ liệu để giảm sự dư thừa, tăng hiệu quả và yaddy yadda. Vì bây giờ tôi có thể thực hiện các truy vấn logic mà không cần phải nhảy vòng để sử dụng cơ sở dữ liệu, tôi sẽ không cần các tệp vbs bổ sung mà ban đầu thao tác với tệp excel. Về mặt kỹ thuật tôi sẽ chuyển một phần mã hiện có vào dự án mới hiện tại.

Vì nó đã có thân cây riêng, nên kết hợp thân cây của một dự án khác với dự án này, và làm thế nào để tôi làm điều đó chính xác ??

VÌ VẬY Tôi đoán cây của tôi sẽ trông như thế này và tôi chưa từng thấy các ví dụ về phân nhánh phần mềm giống với cây bị đảo ngược này trước đây nên tôi tự hỏi không biết tiêu chuẩn nào cho tình huống như thế này? Nó hợp nhất ở mức 1.8 !!


4
Âm thanh là bạn đang quá phức tạp mọi thứ. Điều gì tồi tệ về một "repo hóa thạch vừa mới chết"? Thay thế "chết" bằng "lưu trữ" và nó không còn âm tính nữa.
Doc Brown

4
Tôi đã làm điều này trước đây với Mercurial, lời khuyên của tôi là hãy đánh dấu dự án cũ được lưu trữ tại một số điểm và sao chép tài nguyên bạn cần sang dự án mới, bởi vì nếu bạn không thực sự cần lịch sử cũ thì không cần thiết hợp nhất cả hai dự án.
Timoteo Ponce

Điều gì giữ bạn khỏi sáp nhập? Và ngay cả khi bạn hợp nhất, thân cây cũ vẫn sẽ ở đó. Sáp nhập không xóa các nhánh, nó chỉ hợp nhất các tệp từ nhánh A sang nhánh B.
NickL

Tôi nghĩ điều khiến tôi không hợp nhất là tôi có hai hóa thạch khác nhau a.fossil và b.fossil vì vậy tôi không chắc làm thế nào tôi có thể nhận được tất cả thông tin lịch sử và thông tin đăng ký trong hóa thạch thứ hai. Bây giờ tôi nhiều tuổi hơn tôi nghĩ câu hỏi là Làm thế nào để bạn hợp nhất hai kho lưu trữ thành một.
Mallow

Câu trả lời:


1

Cách tốt nhất để hợp nhất các dự án phụ thuộc một chút vào cách bạn muốn quản lý lịch sử của họ và liệu bạn có mong đợi chúng tiếp tục phát triển riêng biệt hay không.

Giữ chúng riêng biệt - sử dụng bên ngoài / mô hình con

Một kỹ thuật rất tốt để xem xét sẽ là kỹ thuật của mô hình con. Git và svn có khái niệm này (được gọi là externals trong svn), nhưng thật không may, nó xuất hiện hóa thạch không ( https://www.mail-archive.com/fossil-users@lists.fossil-scm.org/msg14798.html ).

Nhưng ý tưởng là bạn có thể có một dự án DEPEND trên một dự án khác và bạn chỉ cần chọn chi nhánh hoặc thẻ hoặc cam kết cá nhân từ dự án khác mà bạn muốn sử dụng trong dự án tham chiếu.

Chỉ cần sao chép nó

Nếu bạn chỉ muốn nâng một loạt mã và KHÔNG quan tâm đến lịch sử, bạn có thể chỉ cần thêm một thư mục với mã mới và cam kết nó.

Chỉ cần sao chép nhưng lưu giữ lịch sử cũ

Nếu bạn muốn hợp nhất mã từ dự án thứ hai vào dự án thứ nhất và lưu giữ lịch sử, với ít nhất là git, bạn có thể sử dụng git merge (xem https://saintgimp.org/2013/01/22/merging-two-git -reposearies-vào-one-repository-without-loss-file-history / cho một ví dụ). git cho phép nhắm mục tiêu các kho lưu trữ khác làm nguồn dữ liệu để hợp nhất (về cơ bản đây là cách git kéo hoạt động). Tôi không biết đủ về hóa thạch để biết liệu hợp nhất hóa thạch có thể được sử dụng theo cách này hay không.

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.