Bir github sağlayıcısı yazarın geri çekme isteklerini yeniden yazmalı mı?


44

Mesleğe göre programcı değilim ama bazı kodlamalar yapıyorum ve bazılarını github kullandım. Şaşırtıcı bir durum olarak bulduğum şeye rastladım. Git hakkında çok bilgiliyim.

Beni etkileyen, (küçük) bir böcek bulduğum bir proje var. Bulmak ve tamir etmek için bir öğleden sonra geçirdim. Depodan ayrıldım, değişikliği yaptım ve bir çekme talebi yaptım. "Gelişim şubesine birleştirildi" olarak kapatıldığını gördükten sonra her şeyin iyi olduğunu düşündüm.

Bugün şubemi kaldırmak için hazırlanmakta olan repoyu geziyordum ve taahhüdün bakımcının deposunda nerede birleştiğini bulamıyorum. Bir süre sonra bunun bir taahhüt olarak eklendiğinin farkındayım, ancak yazar artık ben değilim.

Bunu yapabilmemin tek yolu, asıl yazarın çıkarması için özellikle bir yeniden düzenleme, düzeltme veya başka bir tarih yazımı kullanmak olacaktır.

Bu bana çok yanlış geliyor. En iyisi kafa karıştırıcı, en kötüsü de bu repo yazarı herkesin taahhütleri için kredi alıyor ve sonra asıl katılımcının geçmişi kayboluyor. Yine küçük bir hata, bunu profesyonel özgeçmişim için kullanmıyorum, sadece sahtekâr görünüyor.

Bu normal mi? Bunun hakkında bir şey söylemeli miyim?

Düzenleme: Genel duygu benim sormam gerektiği gibi görünüyor, bu yüzden bunu bu sabah yapacağım.

Aşağıdaki isteğinize göre. Kontrol ettim ve kodum var ve yazdığım gibi tam olarak uygulandı (yorum dahil). Hem üreticinin hem de yazarın değiştirildiğini doğruladım. Değişikliklerimle aynı anda eklenen bir değişiklik daha yapıldı. Bu, yamanın yanı sıra diğer kodları da etkileyebilecek tek bir satırdır. IE bir satır ekleme ben tamir edildi hata ile ilgili değildir.

Güncelleme Yanıt, yazarın bir geliştirme dalı tuttuğu ve ana dalından birle birleştirmek istemediği anlaşılıyor. Birleşmeden kaçınma taahhüdümü yeniden yazdı. Orijinal şube b / c git'in kiraz toplama, yeniden yapma ve birleştirme işlemlerinin yapılması gerektiği kadar güçlü olduğu konusunda endişeli değildim.

Bu github'da tipik midir?
Hangi şubeye yamalar uygulanacağını sormak için bir projenin sağlayıcısı ile iletişim kurmalı mıyım?


7
Kodlama ile ilgili etik bir soru ortaya çıkarmak için +1 :) Bunun varsayılan davranış olup olmadığını öğrenmekle ilgileniyor, bakıcının bunu yapması için fazladan bir iş gibi görünüyor. Yoksa, müşteri, çekme talebinizi kabul ettikten sonra taahhüdünüzü hafifçe değiştirirse bu olur mu?
Sunil D.

Bu iyi bir soru. Normal olanı cevaplayacak kadar github ile ailevi değilim . Ancak, -n seçeneğiyle kiraz toplama, değişiklik yapma ve sonra işleme koymanın mümkün olduğunu düşünüyorum. Yazarın etkili bir şekilde değiştirilmesi.

4
Belki de bakıcı, değişikliklerinizi birleştirmek yerine manuel olarak uygulamıştır. Koruyucuyu bu konuda sormayı öneririm (onu sahtekârlıkla suçlamadan).
Keith Thompson,

6
Sadece açık olmak gerekirse, değişti "yazar", doğru mu? "Alıcı" değil mi? Sadece soruyorum, çünkü kod sahtekarlığının etiği konusunda ayrım çok önemlidir.
Christopher,

2
Düzeltmenin ne kadar büyük olduğunu (kod satırları) veya kodun nasıl lisanslandığını söylemiyorsunuz, ancak bu muhtemelen telif hakkınızı ihlal ediyor olabilir.
Jaydee,

Yanıtlar:


20

Hayır, kaçınılmazsa yapmamalılar. Bu benim deneyimimde çok sık gerçekleşen bir problem. Bununla birlikte, kredisini çalmak isteyenlerden ziyade git'i doğru kullanmanın cehaletiyle yapmanın daha fazla olduğuna inanıyorum.

  • Değişikliklerinizi ana şubelerine uygulamadan önce değiştirmek istiyorlarsa, değişikliğiniz için kolayca bir şube oluşturabilirler. Daha sonra sizinkinden sonra kendi taahhütlerini ekleyebilir ve şubeyi birleştirebilirler.
  • Çekme isteğiniz ana şubelerinin en son sürümlerine dayanmıyorsa, a git rebase master. Eğer çatışmalar varsa, ya çatışmaları kendileri (yazar değiştirmeden) düzeltmeyi seçebilirler ya da size düzeltme şansı verebilirler.

Bence Github, bu tür bir kazayla kredinin çalınması gerektiğini araştırmalı ve gerektiğinde en iyi uygulamalar konusunda bakımcıları eğitmeli.


6

Burada bazı önemli bilgileri bıraktınız.

  • Eğer hatayı "düzelttiğiniz" hata, bakımcıların hoşuna gitmiyorsa ya da kendi hatalarını ortaya koymasında yanlış olsa bile, bakımdan önce işinizi yapmadan önce düzenlemek zorunda kalmış olabilir. Bu durumda yazarın değiştirilmesi anlaşılabilir bir durumdur.

  • Diğerleri de söylediğim gibi yazar oldukça farklıdır committer . Bildiğiniz gibi, yazar, taahhüdü gerçekten yapan kişidir;

Taahhütlere yakından bakmalı ve sorunuzu bulgularınızla güncellemelisiniz.


1
Sadece gidip kontrol ettim. Düzeltme ekimde hiçbir değişiklik yok. Daha önce eklenmiş olan ve aynı anda eklenen yamamla ilgili olmayan 1 satırlık bir değişiklik oldu.
kullanici1585512

3

Yanıt, yazarın bir geliştirme dalı tuttuğu ve ana dalından birleştirmek istememesi olduğu anlaşılıyor. Birleşmeden kaçınma taahhüdümü yeniden yazdı.


12
O zaman kullanmalıydılar git cherry-pick.
Ocak'ta 13:33

3

Güncellenen sorunuzu cevaplamak için:

Her projenin farklı olduğunu ve her birinin kendi tercih edilen iş akışına sahip olduğunu söylemenin ötesinde, github'da tipik olanı söylemek zor. Genellikle bir çekme isteği göndermeden önce en iyi yaklaşım, iş akışlarının ne olduğunu sormak veya önceki kapalı çekme isteklerini temel alarak söyleyip söyleyemediğinizi görmeye çalışmaktır.

Kişisel deneyimim, siz istemezseniz, genellikle çekme isteğini yorum yapmadan kapatma (en kötü durum) ya da en iyi durumda çekme isteğinizi güncellemenizi isteyen prosedürün ne olduğunu açıklayan bir yorum bırakacaklar. Sizin durumunuzdaki bakıcının onu ele almasının garip göründüğünü söyleyeceğim, ancak bu onlar için en az direnç gösteren yol olabilir. Kasıtlı olarak olsa kredi çalmak anlamına geldiğinden şüpheliyim.

Gelecekte kafa karışıklığı ve kredinin yetersizliğinden kaçınmak için nasıl talepte bulunacaklarını ve hangi şubeye karşı olacaklarını açıklayan belgeler eklemenizi rica ediyorum. İnsanları projeye katılmaya daha yatkın hale getireceğini düşündüğümden, bu belgenin daha fazla projeye sunulmasını istiyorum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.