Git Blame Scalability

 |  Login

Show simple item record

dc.contributor Aalto-yliopisto fi
dc.contributor Aalto University en
dc.contributor.advisor Sandberg, Magnus
dc.contributor.author Raula, Olli
dc.date.accessioned 2018-06-01T11:35:09Z
dc.date.available 2018-06-01T11:35:09Z
dc.date.issued 2018-05-14
dc.identifier.uri https://aaltodoc.aalto.fi/handle/123456789/31553
dc.description.abstract Version control systems are a critical part of software projects today. Version control systems keep track of changes as well as allow simultaneous developing and browsing the history. Blame is a view in Git, which is the most used version control system, allowing the user to see who has changed which line and when. Blame is also used in literature to learn more from open-source repositories. The problem in Git Blame is that it is very slow with large files that have undergone many changes. The Blame for 80000 line file with 8000 commits takes over one minute to generate. Git blame is used quite often, so the slow speed makes it unusable. The main goal of this thesis was to develop a program that reduces blame generation time by using previous blames to generate the requested blame quickly. Particularly, this thesis sought answers for the following research questions: Is it possible to generate blames properly from the intermediate result? How does the amount of caching speed up the process? How much data needs be stored and how long it takes? Which caching level is best for production? The developed program functioned well. It was found that the blame generation time can be dropped to one-tenth by the caching doubling the used disc-space from the plain Git repository. The disc space usage can be tuned in favor of the Blame speed. With maximum caching, the blame speed with large files was below one percent of the standard Git Blame. The disc space usage and initialization time are not too high and the maximum level of the caching is the best for the production. The limitations of the developed program are needed initialization time and used disk space. Further studies could aim to make incremental blame generation even faster. en
dc.description.abstract Versionhallintajärjestelmät ovat kriittinen osa nykypäivän ohjelmistoprojekteja. Versionhallintajärjestelmät pivävät kirjaa muutoksista ja mahdollistavat yhtäaikaisen kehityksen ja historian tutkimisen. Blame joka on näkymä Gitissä, maailman käytetyimmässä versionhallintajärjestelmässä, näyttää tiedot tuoreimmasta muutoksesta jokaiselta riviltä. Blamea käytetään myös kirjallisuudessa tutkittaessa avoimen koodin ohjelmistojen muodostumista. Git Blamen ongelma on sen hitaus suurilla ja paljon muokatuilla tiedostoilla. Blamen generointi tiedostosta jossa on 80000 riviä ja 8000 muutosta kestää yli minuutin. Git Blamea käytetään usein, joten hitaus aiheuttaa oikeita ongelmia. Tämän diplomityön tavoitteena oli kehittää ohjelma joka lyhentää Blamen generoimiseen tarvittavaa aikaa käyttämällä aiemmin tallennettuja Blameja generoidakseen tarvittavan Blamen nopeasti. Tarkemmat tutkimuskysymykset ovat: Onko tämä generointi aiemmin tallennetuista Blameista toimiva tapa? Kuinka paljon välimuistitus nopeuttaa prosessia? Kuinka paljon dataa pitää tallentaa ja paljonko se vie aikaa? Mikä on sopiva välimuistitustaso tuotantokäytössä? Tällä tavalla voidaan Blamen generointiin tarvittava aika pudottaa kymmenesosaan tuplaamalla levytilan käyttö. Levytilan käyttöä voidaan säätää nopeuden kustannuksella. Täydellä välimuistituksella Blamen käyttämä aika isoilla tiedostoilla putoaa alle sadasosaan verrattuna standardi Git Blameen. Levytilan käyttö ja valmisteluaika eivät olleet liian isoja, joten korkein välimuistitustaso on paras tuotannossa. Heikkoudet kehitetyssä ohjelmassa ovat tarvittava levytila ja valmisteluajan tarve. fi
dc.format.extent 9+42
dc.format.mimetype application/pdf en
dc.language.iso en en
dc.title Git Blame Scalability en
dc.title Git Blamen nopeus fi
dc.type G2 Pro gradu, diplomityö fi
dc.contributor.school Perustieteiden korkeakoulu fi
dc.subject.keyword git en
dc.subject.keyword blame en
dc.subject.keyword annotate en
dc.subject.keyword versionhallinta fi
dc.subject.keyword suorituskyky fi
dc.subject.keyword välimuistitus fi
dc.identifier.urn URN:NBN:fi:aalto-201806012980
dc.programme.major Ohjelmistotekniikka fi
dc.programme.mcode SCI3042 fi
dc.type.ontasot Master's thesis en
dc.type.ontasot Diplomityö fi
dc.contributor.supervisor Hirvisalo, Vesa
dc.programme Master’s Programme in Computer, Communication and Information Sciences fi
local.aalto.electroniconly yes
local.aalto.openaccess yes


Files in this item

This item appears in the following Collection(s)

Show simple item record

Search archive


Advanced Search

article-iconSubmit a publication

Browse

My Account