Skip to content

Preparatory refactors to supporting octopus merges - #131

Merged
mbarbin merged 6 commits into
mainfrom
hide-node-kind
Jan 26, 2026
Merged

mbarbin merged 6 commits into
mainfrom
hide-node-kind

Conversation

@mbarbin

@mbarbin mbarbin commented Jan 26, 2026

Copy link
Copy Markdown
Owner

This PR introduces refactor only as prerequisite to later on implement support for octopus merge nodes. At the tip of the PR the support is still not implemented, this is a pre-refactoring branch only. The implementation of the actual support is left out of scope for future work.

Breaking changes in the API:

  • Make the Node_kind.t type abstract
  • Make Log.Line type abstract

Motivation

As it turns out, octopus merge nodes are a bit less rare than I originally thought and I have encountered several repos now that contains them, which I'd like to support with volgo-vcs. Sorry, my bad.

As a prerequisite, we are going to constrain the signature and what is exposed of the nodes, and in particular make the node kind an abstract type.

Graph algorithms are still possible to write in vcs user land by matching on the shape of the node parents list, or making them generic in term of that same list.

As it turns out, octopus merge nodes are a bit less rare than I originally
thought and I have encountered several repos now that contains them, which I'd
like to support with vcs.

As a prerequisite, we are going to constrain the signature and what is exposed
of the nodes, and in particular make the node kind an abstract type.

Graph algorithm are still possible to write by matching on the shape of the node
parents list, or making them generic in term of that same list.
@mbarbin
mbarbin merged commit 44dfee2 into main Jan 26, 2026
12 of 13 checks passed
@mbarbin
mbarbin deleted the hide-node-kind branch January 26, 2026 08:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant