A command that has to deal with input/output that may contain LF
needs to offer the "-z" (--nul-terminated-records) option, and if it
does not support separate --nul-terminated-{input,output} options,
the "-z" option should govern both input and output.  A caller that
uses "-z" knows that the paths it feeds to these commands as input
may have LF that cannot be expressed in LF delimited input format,
and the output from these commands do contain the same paths, so
there is no way for their output to be expressed unambiguously for
an input that requires "-z".

Unfortunately, "git check-attr -z" was broken and ignored the option
on the output side.  This is a backward-incompatible fix, so we may
need to add a "checkAttr.brokenZ" configuration to allow people to
keep the existing breakage on top of these fixes, and then flip the
default at Git 2.0 boundary (sometime early next year).

Credit goes to Eric Sunshine for finding this discrepancy
($gmane/230158).

Junio C Hamano (4):
  check-ignore: the name of the character is NUL, not NULL
  check-attr: the name of the character is NUL, not NULL
  check-ignore -z: a single -z should apply to both input and output
  check-attr -z: a single -z should apply to both input and output

 Documentation/git-check-attr.txt |  9 +++++++--
 builtin/check-attr.c             | 20 ++++++++++++++------
 builtin/check-ignore.c           | 12 ++++++------
 3 files changed, 27 insertions(+), 14 deletions(-)

-- 
1.8.3.2-911-g2c4daa5

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to