Skip to content

Native modules: Mercurial bookmark or branch and Jujutsu repository state (#364) - #374

Draft
raiseCatError wants to merge 1 commit into
release/v0.18.0from
feature/vcs-hg-jj
Draft

raiseCatError wants to merge 1 commit into
release/v0.18.0from
feature/vcs-hg-jj

Conversation

@raiseCatError

Copy link
Copy Markdown
Owner

The "Jujutsu / Mercurial" candidate from the #364 coverage matrix. Independent of #370 (different pack and capability file); based on release/v0.18.0.

  • vcs.hg: the nearest .hg directory, searched upward from the working directory. Mercurial-only repositories have no Git root, so the search is its own: it stops at home when it starts below it and is bounded to 32 levels. Reads .hg/branch (absent = default) and .hg/bookmarks.current; oversized or symlinked files are not names. hg is never run; hgrc and hooks are never read.
  • vcs.jj: marks a Jujutsu repository, whether Git is colocated, and main vs. secondary workspace (.jj/repo is the store or a pointer file). jj's protobuf working-copy state and operation log are not parsed, so no change id or bookmark is guessed; jj is never run.
  • nmsh.vcs becomes "Version control extras" with hg and jj modules. They start hidden (no demand until chosen) and are recommended when .hg/.jj exists.

Tests: upward search without a Git root, the home boundary (a .hg above home is not found; one at home is), bookmark-only-on-demand, oversized/symlinked metadata, jj main/secondary/colocated, declarative rendering (hg feature-x, jj · colocated, nothing outside a repository), default visibility.

…tate, without running hg or jj

- vcs.hg: the nearest .hg directory, found upward from the working
  directory (Mercurial-only repositories have no Git root, so the search is
  its own: it stops at home when it starts below it, and is bounded to 32
  levels). .hg/branch (absent means `default`) and .hg/bookmarks.current;
  oversized or symlinked files are not names. hgrc and hooks are never read.
- vcs.jj: marks a Jujutsu repository, whether Git is colocated, and whether
  this is the main workspace (.jj/repo is the store) or a secondary one
  (.jj/repo is a pointer file). jj's protobuf working-copy state and
  operation log are not parsed, so no change id or bookmark is guessed.
- nmsh.vcs (now "Version control extras") gains hg and jj modules; they
  start hidden like other non-cloud pack modules, so nothing is demanded
  until a person chooses them, and are recommended when .hg or .jj exists.

This branch has not been deployed

No deployments
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