Tại sao một số dự án nguồn mở không chấp nhận các yêu cầu kéo, nhưng chỉ gửi email các tệp vá


16

Tại sao một số dự án nguồn mở không chấp nhận yêu cầu kéo, nhưng chỉ yêu cầu người đóng góp gửi email các tệp vá? ví dụ Git Mặc dù họ xuất bản mã trong github hoặc lưu trữ scm phân tán khác. Nó không tương tác cũng không thuận tiện để gửi các tập tin vá. Patch file là một cách lỗi thời. Yêu cầu kéo là tương tác. Những người khác cũng có thể thảo luận.


1
Tìm kiếm "yêu cầu kéo" là gì (không bao giờ sử dụng git và nó không phổ biến đối với tất cả SCM), có vẻ như bạn nói, "Này, tôi cho tôi một sự thay đổi ở đây!" Những người khác sau đó có thể lấy nó từ bạn nếu họ muốn và xem xét nó. Điều này có hoạt động nếu bạn đi ngoại tuyến? Nếu không, đó sẽ là một lý do tuyệt vời để thích vá email.
Edward Strange

1
@CrazyEddie: github gửi (hoặc có thể gửi) email đến người bảo trì dự án khi yêu cầu kéo được gửi. Email đó chứa mô tả yêu cầu kéo, cộng với danh sách các cam kết và các tệp đã thay đổi. Rõ ràng là bạn phải trực tuyến để nhận email đó và nhận các cam kết, nhưng điều đó cũng đúng đối với các email vá.
John Bartholomew

Patchfiles được hỗ trợ phổ biến. Yêu cầu kéo là dành riêng cho nhà cung cấp. Tại sao bạn mong đợi các nhà bảo trì chấp nhận chúng?
Ẩn danh

Câu trả lời:


17

Nó có thể phụ thuộc vào người sẽ chịu trách nhiệm chấp nhận yêu cầu kéo của bạn.

Nếu đó là Linus Torvalds , thì ... tốt hơn là một bản vá cũ tốt hơn :

Tôi không làm yêu cầu kéo github.

github vứt bỏ tất cả các thông tin liên quan, như thậm chí có một địa chỉ email hợp lệ cho người yêu cầu tôi lấy .
Diffstat cũng thiếu và vô dụng.

Git đi kèm với một mô-đun tạo yêu cầu kéo đẹp, nhưng thay vào đó github quyết định thay thế nó bằng phiên bản hoàn toàn kém hơn của chính họ.
Kết quả là, tôi coi github là vô dụng đối với những thứ này.

Việc lưu trữ là tốt , nhưng các yêu cầu kéo và chỉnh sửa cam kết trực tuyến, chỉ là rác thuần túy.
Tôi đã nói với mọi người về mối quan tâm của tôi, họ không nghĩ họ quan trọng, vì vậy tôi đã từ bỏ. Hãy thoải mái tạo một bugreport cho github.

Ông nói chi tiết:

Để tôi lấy từ github, bạn cần phải:

  • (a) thực hiện một yêu cầu kéo thực sự, không phải là crap braindamaged mà github thực hiện khi bạn yêu cầu nó yêu cầu kéo:
    • giải thích thực sự ,
    • địa chỉ email thích hợp ,
    • shortlog thích hợp , và
    • thích hợp khác nhau .
  • (b) vì danh tính github là ngẫu nhiên, tôi hy vọng yêu cầu kéo là thẻ đã ký , để tôi có thể xác minh danh tính của người đang nghi vấn.

Tôi cũng từ chối thực hiện các cam kết đã được thực hiện với giao diện web github.
Một lần nữa, lý do cho điều đó là cách giao diện web của github hoạt động, những cam kết đó luôn là những thứ nhảm nhí.
Các cam kết được thực hiện trên github luôn có các mô tả hoàn toàn không thể đọc được, bởi vì github cam kết thực hiện mọi thứ không làm bất kỳ điều đơn giản nhất mà nhân nhân mong đợi từ một thông điệp cam kết:

  • không có "mô tả một dòng ngắn trong dòng đầu tiên"
  • không có từ bao bọc của mô tả dài mà bạn gõ: github commit message có xu hướng (nếu chúng có bất kỳ mô tả nào) một dòng dài không thể đọc được.
  • không có đăng nhập, vv mà chúng tôi yêu cầu để gửi kernel.

github có thể giúp bạn dễ dàng viết các thông điệp cam kết tốt và thực thi "oneliner thích hợp cho các shortlog và gitk, giải thích đầy đủ cho các bản ghi đầy đủ".
Nhưng github thì không.
Thay vào đó, giao diện "cam kết trên web" của github là một trường nhập văn bản khủng khiếp duy nhất hoàn toàn không có cách nào để viết một thông điệp đẹp mắt.

Khi bị thách thức trên vùng văn bản cho các thông báo cam kết:

@torvalds Giao diện người dùng cam kết GitHub cung cấp một vùng văn bản cho các thông điệp cam kết.
Điều này hỗ trợ các dòng mới và giúp bạn dễ dàng thực hiện các thông điệp cam kết được định dạng độc đáo :)

Không, nó không có.
Những gì nó hỗ trợ là viết những dòng dài mà bạn không biết họ kéo dài bao lâu.
Vùng văn bản không thực hiện ngắt dòng cho bạn và bạn không có cách nào để đánh giá nơi ngắt dòng sẽ đi.

Nói cách khác, nó thực sự rất khó thực hiện "thông điệp cam kết được định dạng độc đáo".
Nó cũng không thực thi mô hình "oneliner for shortlog" tầm thường
, vì vậy các thông điệp cam kết thường cuối cùng trông giống như tào lao trong shortlog và trong gitk.

Vì vậy, giao diện người dùng cam kết github nên có

  • riêng biệt "shortlog" cửa sổ văn bản một lớp lót, để mọi người không thể vặn nó lên.
  • một số cách để thực sự bao bọc từ lành mạnh ở dấu 72 cột tiêu chuẩn.
  • nhắc nhở về việc đăng xuất, vv rằng một số dự án cần cho các lý do cụ thể của dự án hoặc thậm chí là pháp lý.

5
hoặc phiên bản ngắn; Anh ấy / cô ấy sở hữu dự án có thể chạy nó theo cách họ muốn. Nếu họ khăng khăng gửi thư sao chép cứng các thay đổi thì đó là cách bạn phải gửi nó (chậm như vậy).
Ken Henderson

3
Nếu cam kết không đáp ứng yêu cầu của chủ dự án, anh ta có thể chọn và sau đó sửa đổi cam kết thành những gì anh ta muốn. Điều quan trọng là trân trọng mọi đóng góp của bất kỳ nhà phát triển nào khác. Thật đáng tiếc nếu chủ dự án chỉ từ chối các đóng góp chỉ vì không hoàn thành định dạng cam kết.
linquize

1
@linquize Các dự án nguồn mở thường thiếu sức mạnh của con người. Có thể tiết kiệm thời gian 'cherry-pick & sửa đổi'.
suy yếu

1
"viết những dòng dài mà bạn không biết họ đang ở trong bao lâu." Chà điều đó dường như đã được giải quyết, bây giờ nó cảnh báo bạn khá nghiêm ngặt về dòng đầu tiên quá dài và có hai hộp văn bản riêng cho tin nhắn ngắn và chi tiết.
heltonbiker

1
Linus phàn nàn về việc triển khai github, nhưng điều đó không có nghĩa là các yêu cầu kéo nói chung là xấu. Trên thực tế, nó thực sự được thử lại để gửi các tệp vá thư thay vì sử dụng giao diện web tương tác đẹp, hoạt động trực tiếp với git thay vì nhập / xuất tệp
Mike76
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.