Pós-Graduação em Ciência da Computação – UFPE
Defesa de Dissertação de Mestrado Nº 2.104
Aluna: Marcela Bandeira Cunha
Orientador: Prof. Paulo Henrique Monteiro Mota
Coorientadora: Profa. Paola Rodrigues de Godoy Accioly (Universidade Federal do Cariri)
Título: An Analysis of Git’s Private Life and Its Merge Conflicts
Data: 31/08/2023
Hora/Local: 10h – Centro de Informática – Auditório Bloco B
Banca Examinadora:
Prof. Andre Luís de Medeiros Santos (UFPE / Centro de Informática)
Profa. Catarina de Souza Costa (UFAC / Departamento de Sistemas de Informação)
Prof. Paulo Henrique Monteiro Borba (UFPE / Centro de Informática)
RESUMO:
O desenvolvimento colaborativo é uma prática essencial para o sucesso da maioria dos projetos de software não triviais. No entanto, conflitos de mesclagem podem ocorrer quando um desenvolvedor integra, por meio de um repositório compartilhado remoto, suas alterações com as alterações de outros desenvolvedores. Tais conflitos podem prejudicar a produtividade dos desenvolvedores e introduzir defeitos inesperados. Estudos empíricos anteriores analisaram tais características de conflito e propuseram diferentes abordagens para evitá-los ou resolvê-los. No entanto, esses estudos se limitam à análise de códigos compartilhados em repositórios públicos. Dessa forma, eles ignoram as ações do repositório local (privado do desenvolvedor) e, consequentemente, os cenários de integração de código que muitas vezes são omitidos do histórico de repositórios remotos compartilhados devido ao uso de comandos como git rebase, que reescrevem o histórico de commits do Git. Esses estudos podem então estar examinando apenas parte dos cenários e conflitos reais de integração de código. Para avaliar isso, pretendemos lançar luz sobre essa questão, trazendo evidências de um estudo empírico que analisa dados do histórico de comandos Git extraídos dos repositórios locais de vários desenvolvedores. Dessa forma, podemos acessar cenários de integração ocultos que não podem ser acessados analisando dados de repositório público como em estudos baseados no GitHub. Após identificar os cenários de integração visíveis e ocultos, investigamos a relação entre a frequência dos desenvolvedores que integram o código e a frequência com que esses cenários resultam em conflitos. Dessa forma, podemos entender se esses dados estão correlacionados. Analisamos 95 arquivos Git reflog de 61 desenvolvedores diferentes. Nossos resultados indicam que os cenários de integração de código oculto são mais frequentes do que os visíveis. Também encontramos taxas de conflito mais altas do que em estudos anteriores. Nossas evidências sugerem que estudos que consideram apenas repositórios compartilhados remotos podem perder dados de conflito de integração por não considerar as ações do repositório local do desenvolvedor. Em relação ao estudo de correlação, nossos resultados indicam uma relação estatisticamente significativa entre a frequência de integração de código dos desenvolvedores e a frequência de cenários de integração que resultam em conflitos. Essa relação é representada por uma correlação negativa (os valores mais altos de um evento estão associados aos valores mais baixos do outro). A partir do resultado da amostra do nosso estudo, sugerimos que, se um desenvolvedor integra o código com frequência, a frequência de falha na integração do código tende a diminuir.
Palavras-chave: Desenvolvimento de software colaborativo; integração de código e seus conflitos; engenharia de software empírica; mineração de repositório.
Comentários desativados