Um mantenedor do github deve reescrever as solicitações pull do autor?

44

Não sou programador por profissão, mas faço algumas codificações e já usei o github. Eu me deparei com o que considero uma situação surpreendente. Eu estou muito familiarizado com o git.

Existe um projeto em que encontrei um (pequeno) bug que estava me afetando. Passei uma tarde procurando e consertando. Bifurquei o repositório, confirme a alteração e emita uma solicitação de recebimento. Depois de ver que estava fechado como "Mesclado no ramo de desenvolvimento", concluí que tudo estava bem.

Eu estava navegando no repositório hoje, me preparando para remover minha ramificação, e não consigo encontrar onde o commit foi mesclado no repositório do mantenedor. Depois de algum tempo, percebo que foi adicionado como um commit, mas o autor não sou mais eu.

Tanto quanto posso dizer, a única maneira de fazer isso seria usar especificamente uma reformulação, alteração ou outra reescrita do histórico para remover o autor original.

Isso parece muito errado para mim. Na melhor das hipóteses, é confuso, na pior das hipóteses, o autor deste repositório está recebendo crédito pelos comprometimentos de todos e, em seguida, o histórico do colaborador original é perdido. Novamente, é um pequeno erro, não o uso no meu currículo profissional, apenas parece desonesto.

Isso é normal? Devo dizer algo sobre isso?

Edit: O sentimento geral parece ser que eu deveria ir perguntar, então eu vou fazer exatamente isso esta manhã.

Conforme o pedido abaixo. Eu verifiquei e meu código existe e foi aplicado exatamente como o escrevi (incluindo o comentário). Eu verifiquei que tanto o autor quanto o autor foram alterados. Houve uma alteração adicional também adicionada ao mesmo tempo que minhas alterações. É uma única linha, que afetaria o patch e outros códigos anteriores. Ou seja, a adição de uma linha não está relacionada ao bug que eu estava corrigindo.

Atualização Parece que a resposta foi que o autor mantém um ramo de desenvolvimento e não deseja mesclar seu ramo principal nele. Ele reescreveu meu commit para evitar uma mesclagem. Eu não estava preocupado com a ramificação original do b / c git, que é bastante poderosa para escolher, refazer e mesclar confirmações conforme necessário.

Isso é típico no github?
Devo entrar em contato com o mantenedor de um projeto para perguntar a qual filial aplicar patches?

user1585512
fonte
7
+1 por levantar uma questão ética sobre codificação :) Interessado em descobrir se esse é o comportamento padrão, parece um trabalho extra para o mantenedor. Ou isso aconteceria se o mantenedor modificasse seu commit um pouco depois de aceitar sua solicitação de recebimento?
Sunil D.
Esta é uma boa pergunta. Eu não sou familiar o suficiente com o github para responder o que é normal . No entanto, acho que é possível escolher com a opção -n, fazer modificações e depois confirmar. Mudando efetivamente o autor.
4
Talvez o mantenedor tenha aplicado sua alteração manualmente, em vez de mesclá-la. Sugiro perguntar ao mantenedor (sem acusá-lo de desonestidade).
8308 Keith Thompson
6
Só para esclarecer, é o "autor" que mudou, correto? Não é o "committer"? Só pergunto porque a distinção é extremamente importante quando se trata da ética do plagerismo de código.
Christopher
2
Você não diz qual o tamanho da correção (linhas de código) ou como o código é licenciado, mas, sem dúvida, isso também pode ser uma violação de seus direitos autorais.
21412 Jaydee

Respostas:

20

Não, não deveriam, se evitáveis. É um problema que, na minha experiência, acontece com muita frequência. No entanto, acredito que tenha mais a ver com a ignorância de como usar o git corretamente do que alguém que deseja roubar crédito.

  • Se eles quiserem modificar sua alteração antes de aplicá-la à ramificação principal, eles poderão criar facilmente uma ramificação para sua alteração. Eles podem adicionar seu próprio commit após o seu e mesclar o ramo.
  • Se sua solicitação de recebimento não for baseada na versão mais recente de sua ramificação principal, eles poderão emitir a git rebase master. Se houver conflitos, eles podem optar por corrigi-los (sem alterar o autor) ou dar a chance de corrigi-lo.

Acho que o Github poderia e deveria procurar esse tipo de roubo acidental de crédito e educar os mantenedores sobre as melhores práticas, quando apropriado.

Gerry
fonte
6

Você deixou alguns detalhes importantes aqui.

  • Se a maneira como você "corrigiu" o erro não era do agrado dos mantenedores, ou mesmo incorreta, pois introduziu seus próprios erros, o mantenedor pode ter que editar seu trabalho antes de cometer. Nesse caso, é compreensível alterar o autor.

  • Como já foi mencionado o autor é bastante diferente do committer . Como você já deve saber, foi o autor quem realmente criou o commit, enquanto o committer seria quem o aplicaria.

Você deve examinar atentamente o commit e atualizar sua pergunta com suas descobertas.

Steven Penny
fonte
1
Acabei de verificar isso. Não há alterações no meu patch. Houve uma alteração de uma linha antes e não relacionada ao meu patch que foi adicionado ao mesmo tempo.
user1585512
3

Parece que a resposta foi que o autor mantém um ramo de desenvolvimento e não deseja mesclar seu ramo principal nele. Ele reescreveu meu commit para evitar uma mesclagem.

user1585512
fonte
12
Então eles deveriam ter usado git cherry-pick.
svick
3

Para responder sua pergunta atualizada:

É difícil dizer o que é típico no github, além de dizer que normalmente cada projeto é diferente e cada um tem seu próprio fluxo de trabalho preferido. Geralmente, a melhor abordagem antes de enviar uma solicitação de recebimento é perguntar qual é o fluxo de trabalho ou tentar ver se você pode saber com base em pedidos de recebimento fechados anteriores.

Minha experiência pessoal foi se você não solicitar, geralmente eles fecham a solicitação de recebimento sem comentários (pior caso) ou, na melhor das hipóteses, deixam um comentário explicando qual é o procedimento que solicita que você atualize sua solicitação de solicitação. Eu direi que parece estranho a maneira como o mantenedor no seu caso lidou com isso, mas pode ter sido apenas o caminho de menor resistência para eles. Duvido que tenha sido intencionalmente destinado a roubar crédito.

Eu sugiro que você solicite ao mantenedor que adicione documentação explicando como eles gostariam de receber solicitações pull e contra que ramo, para evitar a confusão e falta de crédito no futuro. Desejo que mais projetos tenham fornecido essa documentação, pois acho que isso tornaria as pessoas mais inclinadas a participar do projeto.

Jacob Schoen
fonte