Perspectives On Merge Software Practitioner Conflicts And Resolutions

9m ago
12 Views
1 Downloads
1.29 MB
35 Pages
Last View : 8d ago
Last Download : 3m ago
Upload by : Luis Waller
Transcription

Software Practitioner Perspectives on Merge Conflicts and Resolutions Nicholas Nelson

Why practitioner perspectives matter “You cannot combine tens of conflicting commits it’s not sane.” “I have to jump around between tools and copy and paste version numbers this is why integration matters.” “I’m often dealing with code other people wrote. Nobody can review every pull request. Code is much easier to write than read.” 2

Merge Conflicts and Resolutions Collaborative development requires periodic synchronization of divergent changes. 19% of all merges result in merge conflicts. [Kasi & Sarma 2013, Brun et al. 2011] Resolutions can cause delays, integration errors, workflow disruptions. [Bird et al. 2012, Estler et al. 2014] Resolving merge conflicts is non-trivial. We have focused on techniques, predictions, and automated resolutions. However, practitioner perspectives have largely been ignored. 3

Research Goal & Questions To empirically understand the perspective of practitioners when they approach and perform merge conflict resolutions. RQ1 How do software practitioners approach merge conflicts? RQ2 What unmet needs impact the difficulty of a merge conflict resolution? RQ3 How well do tools meet practitioner needs for merge conflicts? 4

Study Design - Interviews and Surveys Interviews Provided insight into how practitioners approach merge conflicts, and their unmet needs. 10 software practitioners from 7 organizations. Median of 5 years of software development experience. Project Source Project Size Sr. Software Developer Open 1700 6 yrs. Software Engineer Open 1700 P3 3 yrs. Software Engineer Open 1700 P4 10 yrs. Software Developer Open 10 P5 3 yrs. Infrastructure Engineer Closed 10 P6 5 yrs. Software Developer Closed 10 P7 5 yrs. Software Engineer Open 200 P8 25 yrs. Director Open 600 P9 8 yrs. Software Developer Open 600 P10 2 yrs. Software Developer Open 5 Part. Exp. P1 18 yrs. P2 Role 5

Study Design - Interviews and Surveys Survey Validate our results and provided a broader perspective. 162 participants from the software development industry. 74.2% had 6 or more years of software development experience. 6

Results 7

RQ1: How do practitioners approach merge conflicts? F1 Complexity of conflicting lines of code F2 Your knowledge/expertise in area of conflicting code F3 Complexity of the files with conflicts F4 Number of conflicting lines of code F5 Time to resolve a conflict F6 Atomicity of changesets in the conflict F7 Dependencies of conflicting code on other components F8 Number of files in the conflict F9 Non-functional changes (whitespace, renaming, etc.) 8

RQ1: How do practitioners approach merge conflicts? F1 Complexity of conflicting lines of code F2 Your knowledge/expertise in area of conflicting code F3 Complexity of the files with conflicts F4 Number of conflicting lines of code F5 Time to resolve a conflict F6 Atomicity of changesets in the conflict F7 Dependencies of conflicting code on other components F8 Number of files in the conflict F9 Non-functional changes (whitespace, renaming, etc.) 9

RQ1: How do practitioners approach merge conflicts? Top-4 Factors for Difficulty Technical Aspects Complexity of the code (F1, F3) Size of the conflicting changes (F4) “Small is always easy. A 1-line merge conflict is always easier than a 400-line merge conflict, and can be done now.” Social Aspects Expertise in area of conflicting code (F2) 10

RQ1: How do practitioners approach merge conflicts? Top-4 Factors for Difficulty Technical Aspects Complexity of the code (F1, F3) Size of the conflicting changes (F4) Social Aspects Expertise in area of conflicting code (F2) “A lot of what I work on is in my own little area I know what to do But in [unfamiliar parts of code], then I’ll get someone else to resolve the merge conflict for me.” 11

RQ2: What unmet needs impact the difficulty of a merge conflict resolution? N1 How easy is it to understand the code involved in the merge conflict N2 Your expertise in the area of code with the merge conflict N3 The amount of information you have about the conflicting code N4 How well tools present information in an understandable way N5 Changing assumptions within the code N6 Complexity of the project structure N7 Trustworthiness of tools N8 Informativeness of commit messages N9 Project culture N10 Tool support for examining development history 12

RQ2: What unmet needs impact the difficulty of a merge conflict resolution? N1 How easy is it to understand the code involved in the merge conflict N2 Your expertise in the area of code with the merge conflict N3 The amount of information you have about the conflicting code N4 How well tools present information in an understandable way N5 Changing assumptions within the code N6 Complexity of the project structure N7 Trustworthiness of tools N8 Informativeness of commit messages N9 Project culture N10 Tool support for examining development history 13

RQ2: What unmet needs impact the difficulty of a merge conflict resolution? Top-4 Unmet Needs Social Needs Expertise in area of conflicting code (N2) Technical Needs Understandability of code (N1) Contextual information about the conflict (N3) Tool presentation of relevant info (N4) “I’m often dealing with code other people wrote So now I have to go back and do some archaeology to find out what’s going on. Code is much easier to write than read.” 14

RQ2: What unmet needs impact the difficulty of a merge conflict resolution? Top-4 Unmet Needs Social Needs Expertise in area of conflicting code (N2) Technical Needs Understandability of code (N1) Contextual information about the conflict (N3) Tool presentation of relevant info (N4) “You focus on understanding the small change, not the big one. It’s easier to understand get the small change to go with the flow of the bigger change.” 15

RQ2: What unmet needs impact the difficulty of a merge conflict resolution? Closed-Source Practitioners Open-Source Practitioners N1 How easy is it to understand the code involved in the merge conflict N1 How easy is it to understand the code involved in the merge conflict N2 Your expertise in the area of code with the merge conflict N2 Your expertise in the area of code with the merge conflict N3 The amount of information you have about the conflicting code N3 Tool support for examining development history N4 How well tools present information in an understandable way N4 The amount of information you have about the conflicting code N5 Changing assumptions within the code N5 How well tools present information in an understandable way N6 Complexity of the project structure N6 Changing assumptions within the code N7 Trustworthiness of tools N7 Complexity of the project structure N8 Informativeness of commit messages N8 Trustworthiness of tools N9 Project culture N9 Informativeness of commit messages N10 Tool support for examining development history N10 Project culture 16

RQ2: What unmet needs impact the difficulty of a merge conflict resolution? Closed-Source Practitioners Open-Source Practitioners N1 How easy is it to understand the code involved in the merge conflict N1 How easy is it to understand the code involved in the merge conflict N2 Your expertise in the area of code with the merge conflict N2 Your expertise in the area of code with the merge conflict N3 The amount of information you have about the conflicting code N3 Tool support for examining development history N4 How well tools present information in an understandable way N4 The amount of information you have about the conflicting code N5 Changing assumptions within the code N5 How well tools present information in an understandable way N6 Complexity of the project structure N6 Changing assumptions within the code N7 Trustworthiness of tools N7 Complexity of the project structure N8 Informativeness of commit messages N8 Trustworthiness of tools N9 Project culture N9 Informativeness of commit messages N10 Tool support for examining development history N10 Project culture 17

RQ2: What unmet needs impact the difficulty of a merge conflict resolution? Closed-Source Practitioners Open-Source Practitioners N1 How easy is it to understand the code involved in the merge conflict N1 How easy is it to understand the code involved in the merge conflict N2 Your expertise in the area of code with the merge conflict N2 Your expertise in the area of code with the merge conflict N3 The amount of information you have about the conflicting code N3 Tool support for examining development history N4 How well tools present information in an understandable way N4 The amount of information you have about the conflicting code N5 Changing assumptions within the code N5 How well tools present information in an understandable way N6 Complexity of the project structure N6 N7 Trustworthiness of tools N7 N8 Informativeness of commit messages N8 N9 Project culture N9 N10 Tool support for examining development history N10 OSS projects have frequent changes, in goals Changing assumptions within the code and personnel, which requires additional Complexity of the projectexploration. structure support for history This “pain point” has not been addressed by current Trustworthiness of tools merge toolsets. Informativeness of commit messages Project culture 18

RQ3: How well do tools meet practitioner needs for merge conflicts? I1 Better usability I2 Better ways of filtering out less relevant information I3 Better ways of exploring project history I4 Better graphical presentation of information I5 Better transparency in tool functionality/operations I6 Better terminology that is more consistent with my other tools 19

RQ3: How well do tools meet practitioner needs for merge conflicts? I1 Better usability I2 Better ways of filtering out less relevant information I3 Better ways of exploring project history I4 Better graphical presentation of information I5 Better transparency in tool functionality/operations I6 Better terminology that is more consistent with my other tools 20

RQ3: How well do tools meet practitioner needs for merge conflicts? Top-3 Tool Improvements Better Usability (I1) Better Filtering of Less-Relevant Information (I2) Average of 2.5 tools for merge conflicts “I have to jump around between tools and copy and paste version numbers this is why integration matters.” Larger projects, larger scalability concerns Better Project History Exploration (I3) Practitioners use workaround, but seamless support is needed 21

RQ3: How well do tools meet practitioner needs for merge conflicts? Top-3 Tool Improvements Better Usability (I1) Average of 2.5 tools for merge conflicts Better Filtering of Less-Relevant Information (I2) “You want to extract the relevant commits. The ones that actually clash Larger projects, larger scalability you want to zoom in on them and concerns understand just enough and don’t waste Better Project History Exploration (I3) time.” Practitioners use workaround, but seamless support is needed 22

RQ3: How well do tools meet practitioner needs for merge conflicts? Top-3 Tool Improvements Better Usability (I1) Better Filtering of Less-Relevant Information (I2) Average of 2.5 tools for merge conflicts Larger projects, larger scalability concerns Better Project History Exploration (I3) “Give me a way to explore the history. To Practitioners use workaround, but seamless support is needed drill down, to go back up, you know? To resurface and understand what happened.” 23

Effectiveness of practitioners’ toolsets in supporting perceived size and complexity of merge conflicts, split along development experience. 24

Effectiveness of practitioners’ toolsets in supporting perceived size and complexity of merge conflicts, split along development experience. 25

Effectiveness of practitioners’ toolsets in supporting perceived size and complexity of merge conflicts, split along development experience. 26

Effectiveness of practitioners’ toolsets in supporting perceived size and complexity of merge conflicts, split along development experience. mean: 4.278 (A1-A3): 0.930 mean: 3.347 (A1-A2): 0.496 mean: 3.782 mean: 2.783 27

Conclusions RQ1 How do software practitioners approach merge conflicts? Practitioners rely on their expertise in the conflicting code to understand and assess the merge conflict. Practitioners rely on simple estimations, rather than precise metrics calculated by tools. 28

Conclusions RQ2 What unmet needs impact the difficulty of a merge conflict resolution? Practitioners have unmet needs along dimensions of: 1. comprehending code snippets in isolation, 2. understanding the code context underlying multiple code snippets that are split across multiple files, and commits, 3. The ability to quickly comprehend the complexity of these code snippets. 29

Conclusions RQ3 How well do tools meet practitioner needs for merge conflicts? Tools are lacking in usability, information filtering, and history exploration support. Practitioners are doing workarounds and using multiple tools to resolve merge conflicts. Tools do not scale to large, complex merge conflicts (especially along the complexity dimension). 30

fin Research supported by NSF grants CCF-1439957, CCF-1553741, CCF-1560526, and IIS-1559657. 31

Summary Questions? RQ1: Difficulties in Assessing Merge Conflicts F1 Complexity of conflicting lines of code F2 Your knowledge/expertise in area of conflicting code F3 Complexity of the files with conflicts F4 Number of conflicting lines of code RQ3: Merge Conflict Tool Improvements I1 Better usability I2 Better ways of filtering out less relevant information I3 Better ways of exploring project history RQ2: Unmet Needs in Resolving Merge Conflicts N1 How easy is it to understand the code involved in the merge conflict N2 Your expertise in the area of code with the merge conflict N3 The amount of information you have about the conflicting code N4 How well tools present information in an understandable way 32

Survey Participants Merge Toolsets (Top 10) Tool # of Participants Description Git 37 Version Control System Vim/vi 17 Text Editor Text Editor (unspecified) 14 Text Editor Git Diff 11 Diffing Tool GitHub 11 Website Eclipse 10 IDE KDiff3 9 Diff & Merge Meld 8 Diff & Merge SourceTree 8 Git/Hg Desktop Client Sublime Text 7 Text Editor 33

Survey Participants 34

Terminology Merge Conflict Merge conflicts are a scenario in which two copies of the same codebase diverge and cannot be automatically merged, thus requiring human intervention to resolve. This definition excludes other types of conflicts that exist within software projects (i.e. social conflicts or semantic conflicts, such as build or test failures). 35

10 software practitioners from 7 organizations. Median of 5 years of software development experience. 5 Part. Exp. Role Project Source Project Size P1 18 yrs. Sr. Software Developer Open 1700 P2 6 yrs. Software Engineer Open 1700 P3 3 yrs. Software Engineer Open 1700 P4 10 yrs. Software Developer Open 10 P5 3 yrs. Infrastructure Engineer .

Related Documents:

(2) Merge Outlook PST File: Shoviv PST Merge tool allows you to merge two or more PST files of a similar folder into a new single PST file. In Merge option, this tool merges together all similar folder from multiple PST files like inbox, contacts, notes, calendars, sent items, tasks, drafts, journals, to-do list etc. (3) Merge Outlook PST File .

2015, October SharePoint Document and Mail Merge 1.0.0.2 Support for PowerPoint documents. 2015, November SharePoint Document and Mail Merge 1.0.0.3 Support to display Images for Image Hyperlinks Images (Word). 2015, November SharePoint Document and Mail Merge 1.0.0.4 Support to Merge multiple SharePoint list data into 1 Single Word Document (Choose to merge multiple Word documents to 1 single .

and Mail Merge 4.0.0.0 Added Mail Merge feature to merge and send mail. Updated Icons. Performance enhancements. Custom Header Option added. 2019, January SharePoint Document and Mail Merge 5.0.0.0 Selecting multiple templates in one go while doing document m

with mail merge include bulk labels, letters, envelopes, and emails. There are three documents involved in the mail merge process: 1. Your main document in Word – Example: Pre-merge Letter.docx and Pre-merge Envelope.docx 2. Your data source in

Word 2013 Click on W1323 Mail Merge Data.docx then click on [Open] to open the Mail Merge Recipients dialog box Click on [OK] to confirm that this is the correct mailing list and it is in the desired format Notice the file path of your list Mail Merge 1 : , Mail Merge.

Merge Angle 45 or 30 Degrees 45 or 30 Degrees 45 or 30 Degrees 45 Degree Direction Merge / Diverge Merge / Diverge Merge / Diverge Merge / Diverge Ambient Temperature 5 - 176 F 5 - 176 F 5 - 176 F 5 - 176 F Drive Data Rated Voltage 400V / 50HZ /

Merge Templates: When looking at merge templates you are looking at what most other programs call "document automation". Start with a Word or WordPerfect document and add merge fields. Time Matters supports basic merge templates, and even lets you bring in data from a primary d

Conga Mail Merge: Tutorial Prior to using the Mail Merge window, you need to format your document/letter. Step 1: Replace all Microsoft Word mail merge fields with Conga fields A. Go to the attached Excel sheet with a list of Conga Fields B. Copy the merge field that you need to use C. Go to your word document and click on Insert Quick Parts Field