Gần đây tôi đã cố gắng tham gia cộng tác nguồn mở trong GitHub và đã gặp phải một tình huống mà tôi tò mò không biết cách nào được ưu tiên để tiến hành.
Khoảng một tháng trước, tôi đã tìm thấy một dự án trên GitHub cho một thư viện mà tôi đã sử dụng được một thời gian và trong đó tôi đã tìm thấy (và sửa) một vài lỗi.
Như một bước đột phá ban đầu vào sự hợp tác của GitHub, tôi đã tìm thấy repo dường như có khối lượng hoạt động gần đây cao nhất, đã sửa một lỗi, thêm các bài kiểm tra đơn vị, đẩy lên GitHub và đưa ra yêu cầu kéo. Trong vài giờ, người duy trì repo mà tôi rẽ nhánh đã chấp nhận PR và sáp nhập vào một vài PR khác từ những người khác cũng đang chờ đợi.
Được thúc đẩy bởi điều này, tôi đã sửa thêm ba lỗi mà tôi đã tìm thấy, mỗi lỗi trong một nhánh riêng của repo của riêng tôi và gửi một vấn đề và yêu cầu kéo riêng cho từng lỗi.
Đó chỉ là hơn một tháng trước, và các yêu cầu kéo đã được đặt ở đó, chưa được xử lý, kể từ đó. Người dùng có repo mà tôi đã rẽ nhánh dường như không hoạt động nhiều, chỉ thực hiện 7 lần đóng góp trên GitHub trong năm qua và repo đó đã không có bất kỳ cam kết nào kể từ yêu cầu kéo đầu tiên mà tôi đã thực hiện.
Vì vậy, câu hỏi của tôi:
Làm thế nào để một người tiến hành trong tình huống này? Lý tưởng nhất, tôi muốn tránh tạo ra sự phân mảnh của thư viện bằng cách tắt và thực hiện một loạt các thay đổi trong repo của riêng tôi mà không được sáp nhập vào repo cha. Tuy nhiên, tôi muốn tiếp tục sửa lỗi và thêm các tính năng, nhưng nếu tôi hợp nhất mọi thứ vào nhánh chính của mình và căn cứ tất cả các bản sửa lỗi mới từ nhánh đó, thì nếu người duy trì repo mà tôi rẽ nhánh trở lại, tôi đã thắng Không thể chia tất cả các thay đổi thành các yêu cầu kéo riêng cho từng tính năng / sửa lỗi (Tôi đã đọc rằng các yêu cầu kéo thường là một yêu cầu kéo cho mỗi tính năng hoặc sửa lỗi).
Tôi có nên giữ một nhánh tương ứng với repo ban đầu, dựa trên tất cả các nhánh mới của tôi khỏi nhánh đó và sau đó giữ tất cả các cam kết được hợp nhất trong nhánh chính của tôi không? Có vẻ như điều đó sẽ để lại cho tôi cả tấn chi nhánh và một nhiệm vụ ngày càng nặng nề mỗi khi tôi cần hợp nhất những thay đổi mới vào chi nhánh chính của mình.
Cách điển hình mà người ta sẽ tiếp cận một tình huống như thế này là gì? Dường như khá phổ biến rằng một dự án sẽ bị bỏ rơi với những người đóng góp ban đầu không có mặt để xem xét các yêu cầu kéo mới. Đây có phải là một tình huống mà ai đó chỉ nên cầm lái và chạy với nó? Có vẻ như nó sẽ tạo ra sự phân mảnh nếu những người đóng góp ban đầu quay trở lại và muốn làm việc lại với dự án.