Resolving Higher-Order Conflicts in Edit History Refactoring

When committing source code changes to a version control system, these changes might affect more than one of several tasks connected to the project. This can have a bad impact on analysis of changes. It can also make it difficult to reuse or undo previous changes, or difficult to understand the evol...

Full description

Bibliographic Details
Main Author: Bodemyr, Oskar
Format: Others
Language:English
Published: KTH, Skolan för datavetenskap och kommunikation (CSC) 2016
Subjects:
Online Access:http://urn.kb.se/resolve?urn=urn:nbn:se:kth:diva-196685
Description
Summary:When committing source code changes to a version control system, these changes might affect more than one of several tasks connected to the project. This can have a bad impact on analysis of changes. It can also make it difficult to reuse or undo previous changes, or difficult to understand the evolution of software. With edit history refactoring, the edit history of source code can be reconfigured to help the developer separate commits into smaller commits. Thereby, one can avoid commits that affect more than one task. However, separated commits can have unwanted effects on the source code. The aim of this thesis project is to resolve conflicts that may occur when refactoring an edit history. Changes have been made to Historef, a tool created by Saeki Laboratory at Tokyo Institute of Technology. This tool uses the technique of edit history refactoring. The changes help the tool evaluate possible edit history refactorings in order to suggest one that avoids source code con- flicts. By testing examples of edit histories, one can show that the tool can avoid different types of conflicts and the separated commits can be commited to a version control system without unwanted effects. === När kodändringar laddas upp till ett versionshanteringssystem är det möjligt att dessa ändringar är kopplade till mer än en uppgift i projektet. Det här kan ha en dålig påverkan när man analyserar projektets ändringar, återanvänder tidigare ändringar, eller försöker förstå hur mjukvaran har ändrats över tiden. Med hjälp av edit history refactoring kan kodändringshistorik omstruktureras för att separera kodändringar till mindre ändringar. Då kan man undvika att en ändring på- verkar mer än en uppgift. Däremot kan uppdelningen av ändringar resultera i oönskade effekter på källkoden. Syftet med det här examensarbetet är att undvika konflikter som kan uppstå när man strukturerar om kodändringshistorik. Historef är ett verktyg skapat av Saeki Laboratory vid Tokyo Institute of Technology. Det här verktyget använder sig av tekniken edit history refactoring. Genom att utöka verktygets funktionalitet kan det numera evaluera omstruktureringar av kodändringshistorik för att kunna föreslå en omstrukturering som undviker konflikter. Genom att testa exempel på kodhistorik kan man visa att verktyget nu kan undvika olika typer av konflikter så att dessa ändringar kan laddas upp utan oönskade effekter.