Git Blame scalability

dc.contributorAalto-yliopistofi
dc.contributorAalto Universityen
dc.contributor.advisorSandberg, Magnus
dc.contributor.authorRaula, Olli
dc.contributor.schoolPerustieteiden korkeakoulufi
dc.contributor.supervisorHirvisalo, Vesa
dc.date.accessioned2018-06-01T11:35:09Z
dc.date.available2018-06-01T11:35:09Z
dc.date.issued2018-05-14
dc.description.abstractVersion 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.abstractVersionhallintajä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.extent9+42
dc.format.mimetypeapplication/pdfen
dc.identifier.urihttps://aaltodoc.aalto.fi/handle/123456789/31553
dc.identifier.urnURN:NBN:fi:aalto-201806012980
dc.language.isoenen
dc.programmeMaster's Programme in Computer, Communication and Information Sciencesfi
dc.programme.majorOhjelmistotekniikkafi
dc.programme.mcodeSCI3042fi
dc.subject.keywordgiten
dc.subject.keywordblameen
dc.subject.keywordannotateen
dc.subject.keywordversionhallintafi
dc.subject.keywordsuorituskykyfi
dc.subject.keywordvälimuistitusfi
dc.titleGit Blame scalabilityen
dc.titleGit Blamen nopeusfi
dc.typeG2 Pro gradu, diplomityöfi
dc.type.ontasotMaster's thesisen
dc.type.ontasotDiplomityöfi
local.aalto.electroniconlyyes
local.aalto.openaccessyes

Files

Original bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
master_Raula_Olli_2018.pdf
Size:
51.81 MB
Format:
Adobe Portable Document Format