sillsdev / chorus

End-user collaboration library via 3-way xml merging and hg dvcs under the hood
6 stars 26 forks source link

Chorus fails to resolve merge conflict when syncing in Language Forge #294

Closed josephmyers closed 2 years ago

josephmyers commented 2 years ago

log.txt

Above is the log output from LfMerge. It's referencing SIL.ChorusPlugin.LfMergeBridge v3.8.0-beta*. It also references SIL.Chorus.ChorusMerge v5.0.0-beta0030, but I'm not exactly sure how that reference is being used. Here's the exception captured from Chorus:

2022-09-02T06:17:24.4077801Z Error:Sync failure: Chorus.sync.Synchronizer+SynchronizationException: Unable to complete the send/receive.
 ---> System.ApplicationException: warning: conflicts during merge.
merging General/LanguageProject.langproj incomplete! (edit conflicts, then use 'hg resolve --mark')
warning: conflicts during merge.
merging Linguistics/Lexicon/Lexicon_06.lexdb incomplete! (edit conflicts, then use 'hg resolve --mark')

   at Chorus.VcsDrivers.Mercurial.HgRepository.Merge(String localRepositoryPath, String revisionNumber)
   at Chorus.sync.Synchronizer.MergeTwoChangeSets(Revision head, Revision theirHead)
   at Chorus.sync.Synchronizer.MergeHeads()
   --- End of inner exception stack trace ---
   at Chorus.sync.Synchronizer.ExplainAndThrow(Exception exception, WhatToDo whatToDo, String explanation, Object[] args)
   at Chorus.sync.Synchronizer.MergeHeads()
   at Chorus.sync.Synchronizer.MergeHeadsOrRollbackAndThrow(HgRepository repo, Revision workingRevBeforeSync)
   at Chorus.sync.Synchronizer.SyncNow(SyncOptions options)

My test case is as follows:

megahirt commented 2 years ago

My understanding of how Chorus works is that it should apply a "you win" policy whenever a merge conflict arises. So the fact that the merge conflict cannot be resolved by Chorus (or so it seems) is a bug to me.

ermshiperete commented 2 years ago

Is this solved by #297?

josephmyers commented 2 years ago

It is, thanks