sapling/mercurial
Simon Heimberg d11bb41a51 commands: hg debuginstall checks missing templates (issue4151)
Missing templates where not reported as a problem, only an empty bracket
were shown as indication of no found template directory:
  $ hg debuginstall
  *...some lines*
  checking templates ()...
  *...some lines*
  no problems detected

Now the problem is reported and extended with some information. The style
of the messages is adapted to the other messages of debuginstall.

When no templates directories exist, it writes:
  $ hg debuginstall
  *...some lines*
  checking templates ()...
   no template directories found
   (templates seem to have been installed incorrectly)
  *...some lines*
  1 problems detected, please check your install!

When the template map is not found, it writes:
  $ hg debuginstall
  *...some lines*
  checking templates (/path/to/mercurial/templates)...
   template 'default' not found
   (templates seem to have been installed incorrectly)
  *...some lines*
  1 problems detected, please check your install!

When the template map is buggy the message is the same as before. The error
message is shown before the line "(templates seem ...)".


No test is added because testing this failure is complicated. It would
require to modify the templates directory of the mercurial installation,
or to monkey patch a function (os.listdir or any from mercurial.templater)
by a test extension.
2014-01-27 11:17:07 +01:00
..
help doc: fix mistake about matching against directories in "pattern.txt" 2014-01-30 15:03:36 +09:00
hgweb merge with stable 2014-02-05 18:09:07 -06:00
httpclient httpclient: apply upstream revision da7579b034a4 to fix SSL problems (issue4038) 2013-09-18 14:45:28 -04:00
pure pack_dirstate: only invalidate mtime for files written in the last second 2013-08-17 20:48:49 -07:00
templates hgweb: infinite scroll support for coal style 2014-01-08 00:47:45 +09:00
__init__.py
ancestor.py cleanup: move stdlib imports to their own import statement 2013-11-06 16:48:06 -05:00
archival.py archive: raise error.Abort if the file pattern matches no files 2013-03-21 22:09:15 +01:00
base85.c base85: cast Py_ssize_t values to int (issue3481) 2012-06-04 16:59:34 +02:00
bdiff.c bdiff: avoid a memory error on malloc failure 2013-10-30 16:03:42 -05:00
bookmarks.py push: move bookmarks exchange in the exchange module 2014-01-30 17:46:51 -08:00
branchmap.py branchmap: use set for update code 2014-01-06 15:19:31 -08:00
bundlerepo.py bundlerevlog: extract 'baserevision' method 2013-08-26 16:50:31 -07:00
byterange.py byterange: remove now-unused sys import 2013-02-09 07:44:22 -06:00
changegroup.py bundle: fix performance regression when bundling file changes (issue4031) 2013-09-07 21:20:00 +02:00
changelog.py branchmap: cache open/closed branch head information 2013-09-16 01:08:29 -07:00
cmdutil.py revset: added baseset class (still empty) to improve revset performance 2014-01-21 11:39:26 -08:00
commands.py commands: hg debuginstall checks missing templates (issue4151) 2014-01-27 11:17:07 +01:00
commandserver.py localrepo: prevent to copy repo local config, copy baseui instead 2013-11-11 22:59:26 +01:00
config.py config: discard "%unset" values defined in the other files read in previously 2013-04-26 23:36:12 +09:00
context.py changectx: increase perf of walk function 2014-01-14 13:49:19 -08:00
copies.py diff: search beyond ancestor when detecting renames 2013-11-16 15:46:29 -05:00
dagparser.py en-us: labeled 2012-08-17 13:58:18 -07:00
dagutil.py discovery: enforce filtering into revlogbaseddag._internalizeall 2013-11-15 23:27:39 -05:00
demandimport.py demandimport: allow extensions to import own modules by absolute name 2013-10-05 01:02:22 +09:00
dicthelpers.py dicthelpers.diff: compare against default for missing values 2013-04-10 12:31:07 -07:00
diffhelpers.c diffhelpers: use Py_ssize_t in testhunk() 2012-05-12 14:00:51 +02:00
dirs.c dirs: use mutable strings internally 2013-04-10 15:08:28 -07:00
dirstate.py rebase: do not crash in panic when cwd disapear in the process (issue4121) 2014-01-31 15:13:15 -08:00
discovery.py discovery: cleanup of variable names and comments 2014-02-06 02:17:48 +01:00
dispatch.py dispatch: make "_checkshellalias()" invoke "findcmd()" with "strict=True" 2014-01-29 23:47:54 +09:00
encoding.py tests: stabilize doctest output 2013-01-15 02:59:14 +01:00
error.py hgweb: show correct error message for i18n environment 2013-02-15 18:07:14 +09:00
exchange.py push: move bookmarks exchange in the exchange module 2014-01-30 17:46:51 -08:00
exewrapper.c exewrapper: adapt for legacy HackableMercurial 2012-08-07 11:04:41 +02:00
extensions.py help: use full name of extensions to look up them for keyword search 2013-09-23 20:23:25 +09:00
fancyopts.py cleanup: move stdlib imports to their own import statement 2013-11-06 16:48:06 -05:00
filelog.py filelog: use super() for calling base functions 2013-05-01 10:39:37 -07:00
filemerge.py ui: merge prompt text components into a singe string 2013-05-22 17:31:43 -05:00
fileset.py merge with stable 2014-01-01 18:28:40 -05:00
formatter.py formatter: add condwrite method 2012-11-03 14:37:50 -05:00
graphmod.py graphmod: don't try to visit nullrev (issue3772) 2013-01-23 00:20:26 -06:00
hbisect.py bisect: report "both good and bad" as such, not as "not directly related" 2013-11-10 18:51:21 +01:00
help.py cleanup: move stdlib imports to their own import statement 2013-11-06 16:48:06 -05:00
hg.py hg.openpath: use url.islocal to tell if the path is local (issue3624) 2014-02-03 14:53:44 -08:00
hook.py blackbox: do not translate the log messages 2013-02-13 12:51:30 -08:00
httpconnection.py httpconnection: properly inject ssl_wrap_socket into httpclient (issue4038) 2013-09-20 09:16:07 -04:00
httppeer.py httppeer: avoid large dumps when we don't see an hgweb repo 2013-02-17 14:41:31 -06:00
i18n.py i18n: use getattr instead of hasattr 2011-07-25 20:46:30 -05:00
ignore.py ignore: process hgignore files in deterministic order 2012-12-17 15:57:02 -08:00
keepalive.py check-code: check for spaces around = for named parameters 2013-10-03 14:50:47 +02:00
localrepo.py localrepo: give a sigh of relief when getting lock after waiting for it 2014-02-06 01:55:09 +01:00
lock.py localrepo: give a sigh of relief when getting lock after waiting for it 2014-02-06 01:55:09 +01:00
lsprof.py profiling: replace '+' markup of nested lines with indentation 2013-02-08 22:54:48 +01:00
lsprofcalltree.py drop unused imports 2009-05-14 15:35:46 +02:00
mail.py python2.4: fix imports of sub-packages of the email package 2013-09-24 15:10:32 -04:00
manifest.py manifest: increase lrucache from 3 to 4 2013-11-11 16:35:12 -08:00
match.py pathutil: tease out a new library to break an import cycle from canonpath use 2013-11-06 18:19:04 -05:00
mdiff.py cleanup: move stdlib imports to their own import statement 2013-11-06 16:48:06 -05:00
merge.py merge: consider successor changesets for a bare update 2014-01-15 16:41:18 -06:00
minirst.py minirst: do not add a 2nd empty paragraph 2013-11-04 10:23:06 +01:00
mpatch.c mpatch: rewrite pointer overflow checks 2013-12-11 18:33:42 -06:00
node.py Update license to GPLv2+ 2010-01-19 22:20:08 -06:00
obsolete.py obsolete: clarify documentation for succcessorssets 2014-01-15 18:14:12 -06:00
osutil.c osutil: tab damage, how i hate thee 2012-12-03 13:17:01 -08:00
parser.py en-us: labeled 2012-08-17 13:58:18 -07:00
parsers.c parsers: fix 'unsigned expression is always true' warning (issue4142) 2014-01-23 19:08:26 +01:00
patch.py patch: ensure valid git diffs if source/destination file is missing (issue4046) 2013-10-13 08:38:30 -04:00
pathencode.c pathencode: fix hashmangle short dir limit (issue3958) 2013-06-19 22:34:34 -07:00
pathutil.py pathutil: tease out a new library to break an import cycle from canonpath use 2013-11-06 18:19:04 -05:00
peer.py peer: delete double definition of method peer 2012-07-28 22:36:22 +02:00
phases.py rebase: fix rebase aborts when 'tip-1' is public (issue4082) 2013-11-04 19:59:00 -08:00
posix.py util: remove unused realpath (issue4063) 2013-12-29 13:54:04 +00:00
pushkey.py pushkey: do not exchange obsole markers if feature is disabled 2012-07-28 13:33:06 +02:00
pvec.py pvec: use the correct name for an identifier 2013-04-12 17:20:09 -07:00
py3kcompat.py spelling: relies 2012-08-17 13:58:18 -07:00
repair.py strip: add faster revlog strip computation 2013-11-11 16:42:49 -08:00
repoview.py filter: add a comment so that people do not forget to update subsettable 2013-12-24 17:44:23 -05:00
revlog.py revlog: move file writing to a separate function 2013-11-26 12:58:27 -08:00
revset.py revset: added intersection to baseset class 2014-01-24 16:57:44 -08:00
scmposix.py scmutil: split platform-specific bits into their own modules 2013-02-12 11:36:21 -06:00
scmutil.py revset: added baseset class (still empty) to improve revset performance 2014-01-21 11:39:26 -08:00
scmwindows.py scmutil: fix NameError on windows 2013-02-21 13:16:02 -06:00
setdiscovery.py cleanup: move stdlib imports to their own import statement 2013-11-06 16:48:06 -05:00
similar.py cleanup: eradicate long lines 2012-05-12 15:54:54 +02:00
simplemerge.py cleanup: "raise SomeException()" -> "raise SomeException" 2012-05-12 16:00:58 +02:00
sshpeer.py sshpeer: mark _validrepo internal 2013-07-16 11:18:16 -05:00
sshserver.py sshserver: avoid a multi-dot attribute lookup in a hot loop 2012-09-14 12:09:44 -07:00
sslutil.py sslutil: backed out changeset 2cb59fd7ebb6 (issue4038) 2013-09-18 14:40:17 -04:00
statichttprepo.py statichttprepo.httprangeheader: implement readlines 2013-11-17 13:31:18 -08:00
store.py store: use "vfs.exists()" instead of "os.path.exists()" 2013-10-15 00:51:05 +09:00
strutil.py Update license to GPLv2+ 2010-01-19 22:20:08 -06:00
subrepo.py subrepo: make it possible to update to hidden subrepo revisions 2013-11-24 02:17:17 +01:00
tags.py tags: write tag overwriting history also into tag cache file (issue3911) 2013-08-28 22:09:53 +09:00
templatefilters.py merge with stable 2013-10-09 14:15:34 -07:00
templatekw.py templatekw: allow tagtypes other than global in getlatesttags 2013-12-23 14:14:31 +01:00
templater.py template: fix shortest(node) function in pure mercurial 2014-02-05 20:22:28 -08:00
transaction.py transaction: take journal file path relative to vfs to use file API via vfs 2013-11-12 16:23:52 +09:00
treediscovery.py discovery: stop using nodemap for membership testing 2013-11-15 23:28:43 -05:00
ui.py ui: add "extractchoices()" to share the logic to extract choices from prompt 2013-12-02 00:50:29 +09:00
unionrepo.py unionrevlog: extract 'baserevision' and 'baserevdiff' methods 2013-08-26 17:11:01 -07:00
url.py url: added authuri when login information is requested (issue3209) 2014-01-15 16:46:20 -08:00
util.h util.h: backout cb07828e14e0 and 7d902369e960 for big-endian breakage 2013-09-30 12:36:26 -07:00
util.py util.url: add an 'islocal' method 2014-02-03 14:47:41 -08:00
verify.py clfilter: verify logic should be unfiltered 2012-10-08 17:08:52 +02:00
win32.py windows: check target type before actual unlinking to follow POSIX semantics 2013-05-07 05:04:11 +09:00
windows.py util: remove unused realpath (issue4063) 2013-12-29 13:54:04 +00:00
wireproto.py clone: move file stream walk to a separate function 2013-05-01 10:38:41 -07:00
worker.py cleanup: move stdlib imports to their own import statement 2013-11-06 16:48:06 -05:00