Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Metrics] Merge conflict resolution #5394

Closed
billygriffin opened this issue Aug 13, 2018 · 10 comments

Comments

@billygriffin
Copy link
Contributor

commented Aug 13, 2018

With the general goal of reducing friction for people collaborating on software, we want to instrument the app to understand the following:

  • Given that an attempted merge results in a merge conflict, what percentage of those eventually result in a successful merge?

I think we have attempted merges that result in conflicts, so the missing piece here is to be able to understand whether those conflicts eventually get resolved successfully or whether they're just abandoned. A thing we've heard in user research is people saying some version of, "and then I just had to start over because I couldn't resolve the conflict." We obviously want to avoid this, so understanding how common it is when people do get into conflicts will be helpful in us figuring out whether we're making progress here.

The ideal scenario is that anytime a person attempts to merge code from one branch to another, that they're able to do so successfully.

Tasks

cc: @telliott27

@billygriffin billygriffin added this to the 1.4.0+ milestone Aug 13, 2018

@shiftkey shiftkey added the meta label Aug 14, 2018

@shiftkey shiftkey self-assigned this Sep 4, 2018

@shiftkey

This comment has been minimized.

Copy link
Member

commented Sep 4, 2018

Assigning myself to think about this today/tomorrow and see what we can get in for 1.4.0

@shiftkey

This comment has been minimized.

Copy link
Member

commented Sep 7, 2018

De-scoping this from 1.4.0 as the relevant changes in #5550 are not the full solution, and we've not quite talked about the remaining parts of this.

@shiftkey shiftkey modified the milestones: 1.4.0, 1.4.x Sep 7, 2018

@shiftkey shiftkey removed their assignment Sep 7, 2018

@billygriffin

This comment has been minimized.

Copy link
Contributor Author

commented Sep 17, 2018

Since @ampinsk is starting her work on merge conflicts exploration in #5400, I'd love to prioritize getting this in as soon as possible. The remaining parts, as I understand them are:

we think the only thing missing that would resolve #5394 is the eventual disposition of the merges that result in a conflict. In other words, how many of them are resolved "successfully" vs. abandoned? We were thinking a way to determine "successfully" might be if there was a commit in Desktop on that branch after a conflict was hit, but not exactly sure how to instrument that.

Correct - there might be ways to identify these but I believe it's independent of this work (both the merge hint and this PR). We'd need to inspect the .git directory before committing to look for the presence of .git/MERGE_HEAD and .git/MERGE_MSG to indicate the current state of the repository.

To summarize, we need the eventual disposition of an initiated merge. In other words, did it get resolved and merged successfully, or was it abandoned? (are there other possibilities?)

cc: @telliott27 and @shiftkey for anything I might've missed or stated incorrectly

@iAmWillShepherd

This comment has been minimized.

Copy link
Contributor

commented Sep 18, 2018

I think we have attempted merges that result in conflicts, so the missing piece here is to be able to understand whether those conflicts eventually get resolved successfully or whether they're just abandoned

Could you clarify abandoned? Does answering these questions require us to keep track of what step we're on during a merge? If so, what do those steps look like?

I have some ideas of how we could maybe accomplish this, but I want to make sure we're on the same page first.

@billygriffin

This comment has been minimized.

Copy link
Contributor Author

commented Sep 18, 2018

@iAmWillShepherd and I just caught up about this, and here are the three scenarios that we talked through.

  1. I encounter a conflict in Desktop, and I resolve the conflicts elsewhere (independent of where) and then come back to Desktop to commit the eventual resolved changes.
  2. I encounter a conflict in Desktop, and I resolve the conflicts elsewhere (independent of where) and commit the changes outside of Desktop (for example, in Terminal, an editor, etc.)
  3. I encounter a conflict in Desktop, and I am unable to resolve the conflict and I never commit any of the changes (in other words, I had to abandon the merge I was trying to do).

I care more about understanding the % of those that are not 3 more than I do differentiating between 1 and 2 for the moment, although that would be nice as well as a possible next iteration or if it's not too difficult to do.

@iAmWillShepherd

This comment has been minimized.

Copy link
Contributor

commented Sep 18, 2018

I think that we can use the approach @shiftkey suggested, looking for the MERGE_[*] files in .git. Doing this will allow us to answer the general question, are users abandoning a merge when a conflict occurs (question 3 from above). Note that we do not actually care how they resolved the conflict or whether they complete the merge in Desktop or some other tool, we only care if the merge is abandoned. Once we get that baseline, we can iterate on what we inspect/collect to answer more specific questions like questions 1 and 2 above.

@outofambit would you be interested in pairing on this?

@auttakornG

This comment was marked as off-topic.

Copy link

commented Mar 19, 2019

@Zari65

This comment was marked as off-topic.

Copy link

commented Jun 19, 2019

Maybe this will help...thanks!

@portals-thtccs18091993

This comment was marked as off-topic.

Copy link

commented Jul 12, 2019

Toi la nguoi VN toi lam viec cho usa

@portals-thtccs18091993

This comment was marked as off-topic.

Copy link

commented Jul 12, 2019

Toi tao ra su kien toi tao ra phan mem ma toi chang duoc gi , toan gap nhung nguoi tham lam

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
6 participants
You can’t perform that action at this time.