Skip to content

chainsaw extension, with chainsaw-update command

Georges Racinet requested to merge topic/default/hgext-chainsaw into branch/default

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)

Merge request reports