An analysis of git’s private life and its merge conflicts
Autor(a) principal: | |
---|---|
Data de Publicação: | 2023 |
Tipo de documento: | Dissertação |
Idioma: | eng |
Título da fonte: | Repositório Institucional da UFPE |
dARK ID: | ark:/64986/00130000068b3 |
Texto Completo: | https://repositorio.ufpe.br/handle/123456789/54306 |
Resumo: | Collaborative development is an essential practice for the success of most nontriv- ial software projects. However, merge conflicts might occur when a developer integrates, through a remote shared repository, their changes with the changes from other developers. Such conflicts may impair developers’ productivity and introduce unexpected defects. Pre- vious empirical studies have analyzed such conflict characteristics and proposed different approaches to avoid or resolve them. However, these studies are limited to the analysis of code shared in public repositories. This way they ignore local (developer private) reposi- tory actions and, consequently, code integration scenarios that are often omitted from the history of remote shared repositories due to the use of commands such as git rebase, which rewrite Git commit history. These studies might then be examining only part of the actual code integration scenarios and conflicts. To assess that, we aim to shed light on this issue by bringing evidence from an empirical study that analyzes Git command history data extracted from the local repositories of a number of developers. This way we can access hidden integration scenarios that cannot be accessed by analyzing public reposi- tory data as in GitHub based studies. After identifying the visible and hidden integration scenarios, we investigate the relationship between the frequency of developers integrating code and how frequently these scenarios result in conflicts. This way, we can understand if these data are correlated. We analyze 95 Git reflog files from 61 different developers. Our results indicate that hidden code integration scenarios are more frequent than visible ones. We also find higher conflict rates than in previous studies. Our evidence suggests that studies that consider only remote shared repositories might miss integration conflict data by not considering the developer’s local repository actions. Regarding the correlation study, our results indicate a statistically significant relationship between the frequency of developers’ code integration and the frequency of integration scenarios resulting in con- flicts. This relationship is represented by a negative correlation (the higher values of one event are associated with the lower values of the other). From our study sample result, we suggest that if a developer integrates code often, the failed code integration frequency will tend to decrease. |
id |
UFPE_d8ff6cabb05031add0f6d7a96feb8d70 |
---|---|
oai_identifier_str |
oai:repositorio.ufpe.br:123456789/54306 |
network_acronym_str |
UFPE |
network_name_str |
Repositório Institucional da UFPE |
repository_id_str |
2221 |
spelling |
CUNHA, Marcela Bandeirahttp://lattes.cnpq.br/7823204701989431http://lattes.cnpq.br/9395715443254344http://lattes.cnpq.br/6629813636801870BORBA, Paulo Henrique MonteiroACCIOLY, Paola Rodrigues Godoy2023-12-21T17:16:12Z2023-12-21T17:16:12Z2023-08-31CUNHA, Marcela Bandeira. An analysis of git’s private life and its merge conflicts. 2023. Dissertação (Mestrado em Ciência da Computação) – Universidade Federal de Pernambuco, Recife, 2023.https://repositorio.ufpe.br/handle/123456789/54306ark:/64986/00130000068b3Collaborative development is an essential practice for the success of most nontriv- ial software projects. However, merge conflicts might occur when a developer integrates, through a remote shared repository, their changes with the changes from other developers. Such conflicts may impair developers’ productivity and introduce unexpected defects. Pre- vious empirical studies have analyzed such conflict characteristics and proposed different approaches to avoid or resolve them. However, these studies are limited to the analysis of code shared in public repositories. This way they ignore local (developer private) reposi- tory actions and, consequently, code integration scenarios that are often omitted from the history of remote shared repositories due to the use of commands such as git rebase, which rewrite Git commit history. These studies might then be examining only part of the actual code integration scenarios and conflicts. To assess that, we aim to shed light on this issue by bringing evidence from an empirical study that analyzes Git command history data extracted from the local repositories of a number of developers. This way we can access hidden integration scenarios that cannot be accessed by analyzing public reposi- tory data as in GitHub based studies. After identifying the visible and hidden integration scenarios, we investigate the relationship between the frequency of developers integrating code and how frequently these scenarios result in conflicts. This way, we can understand if these data are correlated. We analyze 95 Git reflog files from 61 different developers. Our results indicate that hidden code integration scenarios are more frequent than visible ones. We also find higher conflict rates than in previous studies. Our evidence suggests that studies that consider only remote shared repositories might miss integration conflict data by not considering the developer’s local repository actions. Regarding the correlation study, our results indicate a statistically significant relationship between the frequency of developers’ code integration and the frequency of integration scenarios resulting in con- flicts. This relationship is represented by a negative correlation (the higher values of one event are associated with the lower values of the other). From our study sample result, we suggest that if a developer integrates code often, the failed code integration frequency will tend to decrease.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 de- senvolvedor. 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 desenvolve- dores 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.engUniversidade Federal de PernambucoPrograma de Pos Graduacao em Ciencia da ComputacaoUFPEBrasilhttp://creativecommons.org/licenses/by-nc-nd/3.0/br/info:eu-repo/semantics/openAccessCollaborative software developmentMerge conflictsEmpirical software engineeringRepository miningAn analysis of git’s private life and its merge conflictsinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesismestradoreponame:Repositório Institucional da UFPEinstname:Universidade Federal de Pernambuco (UFPE)instacron:UFPEORIGINALDISSERTAÇÃO Marcela Bandeira Cunha.pdfDISSERTAÇÃO Marcela Bandeira Cunha.pdfapplication/pdf1307405https://repositorio.ufpe.br/bitstream/123456789/54306/1/DISSERTA%c3%87%c3%83O%20Marcela%20Bandeira%20Cunha.pdff00001571ac7db4fb37f7dbd6be7efe1MD51CC-LICENSElicense_rdflicense_rdfapplication/rdf+xml; charset=utf-8811https://repositorio.ufpe.br/bitstream/123456789/54306/2/license_rdfe39d27027a6cc9cb039ad269a5db8e34MD52LICENSElicense.txtlicense.txttext/plain; charset=utf-82362https://repositorio.ufpe.br/bitstream/123456789/54306/3/license.txt5e89a1613ddc8510c6576f4b23a78973MD53TEXTDISSERTAÇÃO Marcela Bandeira Cunha.pdf.txtDISSERTAÇÃO Marcela Bandeira Cunha.pdf.txtExtracted texttext/plain168187https://repositorio.ufpe.br/bitstream/123456789/54306/4/DISSERTA%c3%87%c3%83O%20Marcela%20Bandeira%20Cunha.pdf.txt2da0d9459b4ef67fc17d848051b07c9dMD54THUMBNAILDISSERTAÇÃO Marcela Bandeira Cunha.pdf.jpgDISSERTAÇÃO Marcela Bandeira Cunha.pdf.jpgGenerated Thumbnailimage/jpeg1108https://repositorio.ufpe.br/bitstream/123456789/54306/5/DISSERTA%c3%87%c3%83O%20Marcela%20Bandeira%20Cunha.pdf.jpgcf1ab52b966a97cb1b4f912c6f9cc880MD55123456789/543062024-01-05 02:22:26.931oai:repositorio.ufpe.br:123456789/54306VGVybW8gZGUgRGVww7NzaXRvIExlZ2FsIGUgQXV0b3JpemHDp8OjbyBwYXJhIFB1YmxpY2l6YcOnw6NvIGRlIERvY3VtZW50b3Mgbm8gUmVwb3NpdMOzcmlvIERpZ2l0YWwgZGEgVUZQRQoKCkRlY2xhcm8gZXN0YXIgY2llbnRlIGRlIHF1ZSBlc3RlIFRlcm1vIGRlIERlcMOzc2l0byBMZWdhbCBlIEF1dG9yaXphw6fDo28gdGVtIG8gb2JqZXRpdm8gZGUgZGl2dWxnYcOnw6NvIGRvcyBkb2N1bWVudG9zIGRlcG9zaXRhZG9zIG5vIFJlcG9zaXTDs3JpbyBEaWdpdGFsIGRhIFVGUEUgZSBkZWNsYXJvIHF1ZToKCkkgLSBvcyBkYWRvcyBwcmVlbmNoaWRvcyBubyBmb3JtdWzDoXJpbyBkZSBkZXDDs3NpdG8gc8OjbyB2ZXJkYWRlaXJvcyBlIGF1dMOqbnRpY29zOwoKSUkgLSAgbyBjb250ZcO6ZG8gZGlzcG9uaWJpbGl6YWRvIMOpIGRlIHJlc3BvbnNhYmlsaWRhZGUgZGUgc3VhIGF1dG9yaWE7CgpJSUkgLSBvIGNvbnRlw7pkbyDDqSBvcmlnaW5hbCwgZSBzZSBvIHRyYWJhbGhvIGUvb3UgcGFsYXZyYXMgZGUgb3V0cmFzIHBlc3NvYXMgZm9yYW0gdXRpbGl6YWRvcywgZXN0YXMgZm9yYW0gZGV2aWRhbWVudGUgcmVjb25oZWNpZGFzOwoKSVYgLSBxdWFuZG8gdHJhdGFyLXNlIGRlIG9icmEgY29sZXRpdmEgKG1haXMgZGUgdW0gYXV0b3IpOiB0b2RvcyBvcyBhdXRvcmVzIGVzdMOjbyBjaWVudGVzIGRvIGRlcMOzc2l0byBlIGRlIGFjb3JkbyBjb20gZXN0ZSB0ZXJtbzsKClYgLSBxdWFuZG8gdHJhdGFyLXNlIGRlIFRyYWJhbGhvIGRlIENvbmNsdXPDo28gZGUgQ3Vyc28sIERpc3NlcnRhw6fDo28gb3UgVGVzZTogbyBhcnF1aXZvIGRlcG9zaXRhZG8gY29ycmVzcG9uZGUgw6AgdmVyc8OjbyBmaW5hbCBkbyB0cmFiYWxobzsKClZJIC0gcXVhbmRvIHRyYXRhci1zZSBkZSBUcmFiYWxobyBkZSBDb25jbHVzw6NvIGRlIEN1cnNvLCBEaXNzZXJ0YcOnw6NvIG91IFRlc2U6IGVzdG91IGNpZW50ZSBkZSBxdWUgYSBhbHRlcmHDp8OjbyBkYSBtb2RhbGlkYWRlIGRlIGFjZXNzbyBhbyBkb2N1bWVudG8gYXDDs3MgbyBkZXDDs3NpdG8gZSBhbnRlcyBkZSBmaW5kYXIgbyBwZXLDrW9kbyBkZSBlbWJhcmdvLCBxdWFuZG8gZm9yIGVzY29saGlkbyBhY2Vzc28gcmVzdHJpdG8sIHNlcsOhIHBlcm1pdGlkYSBtZWRpYW50ZSBzb2xpY2l0YcOnw6NvIGRvIChhKSBhdXRvciAoYSkgYW8gU2lzdGVtYSBJbnRlZ3JhZG8gZGUgQmlibGlvdGVjYXMgZGEgVUZQRSAoU0lCL1VGUEUpLgoKIApQYXJhIHRyYWJhbGhvcyBlbSBBY2Vzc28gQWJlcnRvOgoKTmEgcXVhbGlkYWRlIGRlIHRpdHVsYXIgZG9zIGRpcmVpdG9zIGF1dG9yYWlzIGRlIGF1dG9yIHF1ZSByZWNhZW0gc29icmUgZXN0ZSBkb2N1bWVudG8sIGZ1bmRhbWVudGFkbyBuYSBMZWkgZGUgRGlyZWl0byBBdXRvcmFsIG5vIDkuNjEwLCBkZSAxOSBkZSBmZXZlcmVpcm8gZGUgMTk5OCwgYXJ0LiAyOSwgaW5jaXNvIElJSSwgYXV0b3Jpem8gYSBVbml2ZXJzaWRhZGUgRmVkZXJhbCBkZSBQZXJuYW1idWNvIGEgZGlzcG9uaWJpbGl6YXIgZ3JhdHVpdGFtZW50ZSwgc2VtIHJlc3NhcmNpbWVudG8gZG9zIGRpcmVpdG9zIGF1dG9yYWlzLCBwYXJhIGZpbnMgZGUgbGVpdHVyYSwgaW1wcmVzc8OjbyBlL291IGRvd25sb2FkIChhcXVpc2nDp8OjbykgYXRyYXbDqXMgZG8gc2l0ZSBkbyBSZXBvc2l0w7NyaW8gRGlnaXRhbCBkYSBVRlBFIG5vIGVuZGVyZcOnbyBodHRwOi8vd3d3LnJlcG9zaXRvcmlvLnVmcGUuYnIsIGEgcGFydGlyIGRhIGRhdGEgZGUgZGVww7NzaXRvLgoKIApQYXJhIHRyYWJhbGhvcyBlbSBBY2Vzc28gUmVzdHJpdG86CgpOYSBxdWFsaWRhZGUgZGUgdGl0dWxhciBkb3MgZGlyZWl0b3MgYXV0b3JhaXMgZGUgYXV0b3IgcXVlIHJlY2FlbSBzb2JyZSBlc3RlIGRvY3VtZW50bywgZnVuZGFtZW50YWRvIG5hIExlaSBkZSBEaXJlaXRvIEF1dG9yYWwgbm8gOS42MTAgZGUgMTkgZGUgZmV2ZXJlaXJvIGRlIDE5OTgsIGFydC4gMjksIGluY2lzbyBJSUksIGF1dG9yaXpvIGEgVW5pdmVyc2lkYWRlIEZlZGVyYWwgZGUgUGVybmFtYnVjbyBhIGRpc3BvbmliaWxpemFyIGdyYXR1aXRhbWVudGUsIHNlbSByZXNzYXJjaW1lbnRvIGRvcyBkaXJlaXRvcyBhdXRvcmFpcywgcGFyYSBmaW5zIGRlIGxlaXR1cmEsIGltcHJlc3PDo28gZS9vdSBkb3dubG9hZCAoYXF1aXNpw6fDo28pIGF0cmF2w6lzIGRvIHNpdGUgZG8gUmVwb3NpdMOzcmlvIERpZ2l0YWwgZGEgVUZQRSBubyBlbmRlcmXDp28gaHR0cDovL3d3dy5yZXBvc2l0b3Jpby51ZnBlLmJyLCBxdWFuZG8gZmluZGFyIG8gcGVyw61vZG8gZGUgZW1iYXJnbyBjb25kaXplbnRlIGFvIHRpcG8gZGUgZG9jdW1lbnRvLCBjb25mb3JtZSBpbmRpY2FkbyBubyBjYW1wbyBEYXRhIGRlIEVtYmFyZ28uCg==Repositório InstitucionalPUBhttps://repositorio.ufpe.br/oai/requestattena@ufpe.bropendoar:22212024-01-05T05:22:26Repositório Institucional da UFPE - Universidade Federal de Pernambuco (UFPE)false |
dc.title.pt_BR.fl_str_mv |
An analysis of git’s private life and its merge conflicts |
title |
An analysis of git’s private life and its merge conflicts |
spellingShingle |
An analysis of git’s private life and its merge conflicts CUNHA, Marcela Bandeira Collaborative software development Merge conflicts Empirical software engineering Repository mining |
title_short |
An analysis of git’s private life and its merge conflicts |
title_full |
An analysis of git’s private life and its merge conflicts |
title_fullStr |
An analysis of git’s private life and its merge conflicts |
title_full_unstemmed |
An analysis of git’s private life and its merge conflicts |
title_sort |
An analysis of git’s private life and its merge conflicts |
author |
CUNHA, Marcela Bandeira |
author_facet |
CUNHA, Marcela Bandeira |
author_role |
author |
dc.contributor.authorLattes.pt_BR.fl_str_mv |
http://lattes.cnpq.br/7823204701989431 |
dc.contributor.advisorLattes.pt_BR.fl_str_mv |
http://lattes.cnpq.br/9395715443254344 |
dc.contributor.advisor-coLattes.pt_BR.fl_str_mv |
http://lattes.cnpq.br/6629813636801870 |
dc.contributor.author.fl_str_mv |
CUNHA, Marcela Bandeira |
dc.contributor.advisor1.fl_str_mv |
BORBA, Paulo Henrique Monteiro |
dc.contributor.advisor-co1.fl_str_mv |
ACCIOLY, Paola Rodrigues Godoy |
contributor_str_mv |
BORBA, Paulo Henrique Monteiro ACCIOLY, Paola Rodrigues Godoy |
dc.subject.por.fl_str_mv |
Collaborative software development Merge conflicts Empirical software engineering Repository mining |
topic |
Collaborative software development Merge conflicts Empirical software engineering Repository mining |
description |
Collaborative development is an essential practice for the success of most nontriv- ial software projects. However, merge conflicts might occur when a developer integrates, through a remote shared repository, their changes with the changes from other developers. Such conflicts may impair developers’ productivity and introduce unexpected defects. Pre- vious empirical studies have analyzed such conflict characteristics and proposed different approaches to avoid or resolve them. However, these studies are limited to the analysis of code shared in public repositories. This way they ignore local (developer private) reposi- tory actions and, consequently, code integration scenarios that are often omitted from the history of remote shared repositories due to the use of commands such as git rebase, which rewrite Git commit history. These studies might then be examining only part of the actual code integration scenarios and conflicts. To assess that, we aim to shed light on this issue by bringing evidence from an empirical study that analyzes Git command history data extracted from the local repositories of a number of developers. This way we can access hidden integration scenarios that cannot be accessed by analyzing public reposi- tory data as in GitHub based studies. After identifying the visible and hidden integration scenarios, we investigate the relationship between the frequency of developers integrating code and how frequently these scenarios result in conflicts. This way, we can understand if these data are correlated. We analyze 95 Git reflog files from 61 different developers. Our results indicate that hidden code integration scenarios are more frequent than visible ones. We also find higher conflict rates than in previous studies. Our evidence suggests that studies that consider only remote shared repositories might miss integration conflict data by not considering the developer’s local repository actions. Regarding the correlation study, our results indicate a statistically significant relationship between the frequency of developers’ code integration and the frequency of integration scenarios resulting in con- flicts. This relationship is represented by a negative correlation (the higher values of one event are associated with the lower values of the other). From our study sample result, we suggest that if a developer integrates code often, the failed code integration frequency will tend to decrease. |
publishDate |
2023 |
dc.date.accessioned.fl_str_mv |
2023-12-21T17:16:12Z |
dc.date.available.fl_str_mv |
2023-12-21T17:16:12Z |
dc.date.issued.fl_str_mv |
2023-08-31 |
dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
dc.type.driver.fl_str_mv |
info:eu-repo/semantics/masterThesis |
format |
masterThesis |
status_str |
publishedVersion |
dc.identifier.citation.fl_str_mv |
CUNHA, Marcela Bandeira. An analysis of git’s private life and its merge conflicts. 2023. Dissertação (Mestrado em Ciência da Computação) – Universidade Federal de Pernambuco, Recife, 2023. |
dc.identifier.uri.fl_str_mv |
https://repositorio.ufpe.br/handle/123456789/54306 |
dc.identifier.dark.fl_str_mv |
ark:/64986/00130000068b3 |
identifier_str_mv |
CUNHA, Marcela Bandeira. An analysis of git’s private life and its merge conflicts. 2023. Dissertação (Mestrado em Ciência da Computação) – Universidade Federal de Pernambuco, Recife, 2023. ark:/64986/00130000068b3 |
url |
https://repositorio.ufpe.br/handle/123456789/54306 |
dc.language.iso.fl_str_mv |
eng |
language |
eng |
dc.rights.driver.fl_str_mv |
http://creativecommons.org/licenses/by-nc-nd/3.0/br/ info:eu-repo/semantics/openAccess |
rights_invalid_str_mv |
http://creativecommons.org/licenses/by-nc-nd/3.0/br/ |
eu_rights_str_mv |
openAccess |
dc.publisher.none.fl_str_mv |
Universidade Federal de Pernambuco |
dc.publisher.program.fl_str_mv |
Programa de Pos Graduacao em Ciencia da Computacao |
dc.publisher.initials.fl_str_mv |
UFPE |
dc.publisher.country.fl_str_mv |
Brasil |
publisher.none.fl_str_mv |
Universidade Federal de Pernambuco |
dc.source.none.fl_str_mv |
reponame:Repositório Institucional da UFPE instname:Universidade Federal de Pernambuco (UFPE) instacron:UFPE |
instname_str |
Universidade Federal de Pernambuco (UFPE) |
instacron_str |
UFPE |
institution |
UFPE |
reponame_str |
Repositório Institucional da UFPE |
collection |
Repositório Institucional da UFPE |
bitstream.url.fl_str_mv |
https://repositorio.ufpe.br/bitstream/123456789/54306/1/DISSERTA%c3%87%c3%83O%20Marcela%20Bandeira%20Cunha.pdf https://repositorio.ufpe.br/bitstream/123456789/54306/2/license_rdf https://repositorio.ufpe.br/bitstream/123456789/54306/3/license.txt https://repositorio.ufpe.br/bitstream/123456789/54306/4/DISSERTA%c3%87%c3%83O%20Marcela%20Bandeira%20Cunha.pdf.txt https://repositorio.ufpe.br/bitstream/123456789/54306/5/DISSERTA%c3%87%c3%83O%20Marcela%20Bandeira%20Cunha.pdf.jpg |
bitstream.checksum.fl_str_mv |
f00001571ac7db4fb37f7dbd6be7efe1 e39d27027a6cc9cb039ad269a5db8e34 5e89a1613ddc8510c6576f4b23a78973 2da0d9459b4ef67fc17d848051b07c9d cf1ab52b966a97cb1b4f912c6f9cc880 |
bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 MD5 MD5 MD5 |
repository.name.fl_str_mv |
Repositório Institucional da UFPE - Universidade Federal de Pernambuco (UFPE) |
repository.mail.fl_str_mv |
attena@ufpe.br |
_version_ |
1815172737631518720 |