narrow: import experimental extension from narrowhg revision cb51d673e9c5

Authored by durin42.

Description

narrow: import experimental extension from narrowhg revision cb51d673e9c5

Adjustments:

  • renamed src to hgext/narrow
  • marked extension experimental
  • added correct copyright header where it was missing
  • updated hgrc extension enable line in library.sh
  • renamed library.sh to narrow-library.sh
  • dropped all files from repo root as they're not interesting
  • dropped test-pyflakes.t, test-check-code.t and test-check-py3-compat.t
  • renamed remaining tests to all be test-narrow-* when they didn't already
  • fixed test-narrow-expanddirstate.t to refer to narrow and not narrowhg
  • fixed tests that wanted update -C . instead of merge --abort
  • corrected a two-space indent in narrowspec.py
  • added a missing _() in narrowcommands.py
  • fixed imports to pass the import checker
  • narrow only adds its --include and --exclude to clone if sparse isn't enabled to avoid breaking test-duplicateoptions.py. This is a kludge, and we'll need to come up with a better solution in the future.

These were more or less the minimum to import something that would
pass tests and not create a bunch of files we'll never use.

Changes I intend to make as followups:

  • rework the test-narrow-*-tree.t tests to use the new testcases functionality in run-tests.py
  • remove lots of monkeypatches of core things

Differential Revision: https://phab.mercurial-scm.org/D1974

Details