Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Register
  • Sign in
  • mercurial-devel mercurial-devel
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Merge requests 29
    • Merge requests 29
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Jobs
  • Commits
Collapse sidebar

Due to a massive storm of spam, registration on this instance now requires explicit administrator approval. Sorry for the added friction, we're also looking into automatic filtering options.

  • mercurialmercurial
  • mercurial-develmercurial-devel
  • Merge requests
  • !375

Draft: chainsaw extension, with chainsaw-update command

  • Review changes

  • Download
  • Patches
  • Plain diff
Open Georges Racinet requested to merge topic/default/hgext-chainsaw into branch/default Jan 05, 2023
  • Overview 26
  • Commits 2
  • Pipelines 1
  • Changes 2

This is a first glance at the chainsaw-update command that I've been thinking about for a long time.

Not following the formal review process at this stage, the intent is that people can provide early feedback.

I believe everything is explained at length, perhaps with too much redundancy, but let met summarize:

  • The chainsaw extension would be the place to be for tools that are very useful in some well-defined circumstances and absolutely not to be used otherwise. The slogan is "don't use a chainsaw to cut your food"
  • hg chainsaw-update is intended for CI bots and deployment scripts. It ensures that a given repository exists at the prescribed path and revision, up to date with respect to the prescribed remote no matter what, pulling only what is necessary.

More ideas for hg chainsaw-update:

  • Work around the problem with exact pulls on tags (hg pull -r mytag && hg update mytag almost never works). This one is on my minimal list of features.
  • Reclone on failure by default (actually already hinted at in the docstring)
  • Take several remotes, and fallback if one fails (+ round-robin option)
Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: topic/default/hgext-chainsaw