Todd Zullinger <tmz@xxxxxxxxx> writes: >> I wonder if this line in 3320 is doing what it meant to do: >> >> test_must_fail git notes merge z 2>&1 >out && test_i18ngrep >> "Automatic notes merge failed" out && grep -v "A notes merge into >> refs/notes/x is already in-progress in" out > > That's a fine question. I only grepped for 2>&1 >/dev/null. Dropping > /dev/null, as you did only turns up that test as an additional hit. > > I think, based on a very cursory reading of the test, that it's > intending to direct stderr and stdout to the file out. The test gets > lucky that the code in builtin/notes.c directs the error message to > stdout: > > printf(_("Automatic notes merge failed. Fix conflicts in %s and " > "commit the result with 'git notes merge --commit', or " > "abort the merge with 'git notes merge --abort'.\n"), > git_path(NOTES_MERGE_WORKTREE)); > > Perhaps that should be using fprintf(stderr, ...) instead? (And the > test redirection corrected as well, of course.) If that seems > correct, I can submit the trivial patch for that as well, while I'm on > the subject. The message goes to the standard output stream since it was introduced in 809f38c8 ("git notes merge: Manual conflict resolution, part 1/2", 2010-11-09) and 6abb3655 ("git notes merge: Manual conflict resolution, part 2/2", 2010-11-09). I do think it makes more sense to send it to the standard error stream, but just in case if the original author thinks of a reason why it shouldn't, let's summon Johan and ask his input. Thanks.