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

Automatic conflict resolution seems broken/disabled #155

Open
BalzGuenat opened this issue May 20, 2019 · 7 comments
Open

Automatic conflict resolution seems broken/disabled #155

BalzGuenat opened this issue May 20, 2019 · 7 comments
Labels

Comments

@BalzGuenat
Copy link

# self.retryacceptincludingnextchangesets(changeEntry, changeentries)

The above line was commented out at some point. Seems to me like that broke (or rather disabled) the automatic conflict resolution. Why was it commented out? How else is the resolution supposed to work?

@WtfJoke
Copy link
Member

WtfJoke commented May 26, 2019

We thought with the changes of the accept command it shouldnt occur anymore and therefore commented the code out.

So currently there is no automatic conflict resolution and should be rather done manually 😅

@BalzGuenat
Copy link
Author

Hm, not sure if that is practical, unless I'm missing something...

I'm currently trying to migrate a ~3000 change set history and end up having to resolve conflicts every few minutes. To resolve each properly, I'd have to unaccept change sets, create a new branch at the merge base, manually accept and commit all changes up to the merge, start the merge in git, accept the merge change set, commit the merge, then finally let rtc2git continue. But still not fully automatically, because it now complains because it tries to accept change sets that are already accepted.

Is this the current intended way to resolve conflicts?

What I'm doing currently is

  • Instead of keeping tabs locally, I ask the server, which change sets are actually accepted, so I don't try to accept change sets already in the workspace.
  • Simply ignore conflicts in the workspace and treat them like successful accepts. (I check the exit code.) The merge change set will usually be accepted soon after anyway. The resulting Git history might not be as clean as could be.

@gpflaum
Copy link

gpflaum commented May 27, 2019

@BalzGuenat Are you using a history file? You are very likely to have conflicts if you don't use a history file.

@BalzGuenat
Copy link
Author

BalzGuenat commented May 28, 2019 via email

@areebrtc
Copy link

I am also facing same issue as conflicts are more frequent in my case. Just after each 50-70 change sets conflict occurs and accept start to fail.

What strategy are you following @BalzGuenat to resolve your conflicts? Does enabling autoconflict resolution solves this problem ?

@WtfJoke
Copy link
Member

WtfJoke commented May 31, 2019

I think when we commented the code out we decided to wait, until somebody is having the need of this conflict resolution.

I wont mind to uncomment this line.
Just when I looked at the code I remember, that I also didnt like how to revert the changesets (using discard), usually it led to problems. I probably would leave that block commented.

* Instead of keeping tabs locally

What do you mean by that?

@WtfJoke WtfJoke added the bug label May 31, 2019
@BalzGuenat
Copy link
Author

@areebrtc My "strategy" is to just treat a change set that, when accepted, leads to conflicts, the same as any other change set. That is, I ignore conflicts and let them get resolved when eventually the change set with the merges gets accepted. This won't look perfect in the git history but it's good enough for me.

One problem I found when I activated the conflict resolution was that I had lots of issues (read: required manual intervention) with change sets trying to be accepted that were already accepted as part of conflict resolution. That's why I went with my current "dumb" strategy.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants