unisonweb/unison

externally updated `_head` isn't detected in `ucm`

Open

#886 opened on Oct 23, 2019

View on GitHub
 (0 comments) (0 reactions) (0 assignees)Haskell (304 forks)batch import
bugcodebase-manager / ucmhelp wanted

Repository metrics

Stars
 (6,624 stars)
PR merge metrics
 (Avg merge 10d 2h) (5 merged PRs in 30d)

Description

This can cause weirdness if there are two instances of ucm running backed by the same codebase.

I think the code to do anything about it is commented out (which we should fix) but there is code to display a warning, which also isn't firing.

If the external change leaves multiple heads, ucm should first:

  • issue a message to the console, including the short hashes of the previous loopstate root hash, and of the newly detected heads (see reflog implementation for example of printing short hashes).
  • merge the multiple heads (Branch.merge?)

Then (multiple heads or single head), ucm should:

  • write the external change to the reflog
  • update LoopState

Contributor guide