# HG changeset patch # User Yuya Nishihara # Date 1484465595 -32400 # Node ID 897726622877df430f6c9e8399e9a37bb8d55ce4 # Parent 4c0a5a256ae806fab18d56b3c44a8d1c98a40ce0 patch: check length of git index header only if integer is specified Otherwise TypeError would be raised. Follows up d1901c4c8ec0. diff -r 4c0a5a256ae8 -r 897726622877 mercurial/patch.py --- a/mercurial/patch.py Fri Jan 13 20:16:56 2017 -0800 +++ b/mercurial/patch.py Sun Jan 15 16:33:15 2017 +0900 @@ -2184,6 +2184,9 @@ # the hash config could be an integer (for length of hash) or a # word (e.g. short, full, none) hlen = int(hconf) + if hlen < 0 or hlen > 40: + msg = _("invalid length for extendedheader.index: '%d'\n") + ui.warn(msg % hlen) except ValueError: # default value if hconf == 'short' or hconf == '': @@ -2194,9 +2197,6 @@ msg = _("invalid value for extendedheader.index: '%s'\n") ui.warn(msg % hconf) finally: - if hlen < 0 or hlen > 40: - msg = _("invalid length for extendedheader.index: '%d'\n") - ui.warn(msg % hlen) buildopts['index'] = hlen if whitespace: diff -r 4c0a5a256ae8 -r 897726622877 tests/test-diff-unified.t --- a/tests/test-diff-unified.t Fri Jan 13 20:16:56 2017 -0800 +++ b/tests/test-diff-unified.t Sun Jan 15 16:33:15 2017 +0900 @@ -243,6 +243,28 @@ -a +b + $ hg diff --git --config experimental.extendedheader.index=-1 + invalid length for extendedheader.index: '-1' + diff --git a/f1 b/f 1 + rename from f1 + rename to f 1 + --- a/f1 + +++ b/f 1 + @@ -1,1 +1,1 @@ + -a + +b + + $ hg diff --git --config experimental.extendedheader.index=whatever + invalid value for extendedheader.index: 'whatever' + diff --git a/f1 b/f 1 + rename from f1 + rename to f 1 + --- a/f1 + +++ b/f 1 + @@ -1,1 +1,1 @@ + -a + +b + Git diff with noprefix $ hg --config diff.noprefix=True diff --git --nodates