git/builtin
Jeff King a12cbe23ef rev-list: make empty --stdin not an error
When we originally did the series that contains 7ba826290a
(revision: add rev_input_given flag, 2017-08-02) the intent
was that "git rev-list --stdin </dev/null" would similarly
become a successful noop. However, an attempt at the time to
do that did not work[1]. The problem is that rev_input_given
serves two roles:

 - it tells rev-list.c that it should not error out

 - it tells revision.c that it should not have the "default"
   ref kick (e.g., "HEAD" in "git log")

We want to trigger the former, but not the latter. This is
technically possible with a single flag, if we set the flag
only after revision.c's revs->def check. But this introduces
a rather subtle ordering dependency.

Instead, let's keep two flags: one to denote when we got
actual input (which triggers both roles) and one for when we
read stdin (which triggers only the first).

This does mean a caller interested in the first role has to
check both flags, but there's only one such caller. And any
future callers might want to make the distinction anyway
(e.g., if they care less about erroring out, and more about
whether revision.c soaked up our stdin).

In fact, we already keep such a flag internally in
revision.c for this purpose, so this is really just exposing
that to the caller (and the old function-local flag can go
away in favor of our new one).

[1] https://public-inbox.org/git/20170802223416.gwiezhbuxbdmbjzx@sigill.intra.peff.net/

Helped-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2018-08-22 14:44:50 -07:00
..
add.c Merge branch 'ma/lockfile-cleanup' 2018-05-30 14:04:05 +09:00
am.c Merge branch 'nd/complete-config-vars' 2018-06-25 13:22:38 -07:00
annotate.c
apply.c
archive.c
bisect--helper.c
blame.c Merge branch 'sb/blame-color' 2018-07-24 14:50:51 -07:00
branch.c Merge branch 'jk/branch-l-0-deprecation' 2018-07-18 12:20:31 -07:00
bundle.c
cat-file.c Merge branch 'sb/object-store-grafts' 2018-07-18 12:20:28 -07:00
check-attr.c
check-ignore.c
check-mailmap.c
check-ref-format.c
checkout-index.c
checkout.c Merge branch 'sb/object-store-grafts' 2018-07-18 12:20:28 -07:00
clean.c help: add --config to list all available config 2018-05-29 14:51:28 +09:00
clone.c Merge branch 'jt/partial-clone-fsck-connectivity' 2018-07-24 14:50:47 -07:00
column.c column: fix off-by-one default width 2018-05-13 10:45:05 +09:00
commit-graph.c commit-graph: implement "--append" option 2018-04-11 10:43:02 +09:00
commit-tree.c object-store: move object access functions to object-store.h 2018-05-16 11:42:03 +09:00
commit.c Merge branch 'sb/object-store-grafts' 2018-07-18 12:20:28 -07:00
config.c Merge branch 'tb/config-default' 2018-07-24 14:50:46 -07:00
count-objects.c packfile: convert has_sha1_pack to object_id 2018-05-02 13:59:49 +09:00
credential.c
describe.c Merge branch 'sb/object-store-grafts' 2018-07-18 12:20:28 -07:00
diff-files.c
diff-index.c
diff-tree.c
diff.c Merge branch 'nd/diff-apply-ita' 2018-06-25 13:22:36 -07:00
difftool.c Merge branch 'sb/object-store-grafts' 2018-07-18 12:20:28 -07:00
fast-export.c Merge branch 'sb/object-store-grafts' 2018-07-18 12:20:28 -07:00
fetch-pack.c Merge branch 'bw/protocol-v2' 2018-05-08 15:59:16 +09:00
fetch.c Merge branch 'jt/connectivity-check-after-unshallow' 2018-07-24 14:50:44 -07:00
fmt-merge-msg.c object-store: move object access functions to object-store.h 2018-05-16 11:42:03 +09:00
for-each-ref.c
fsck.c Merge branch 'bc/object-id' 2018-05-30 14:04:10 +09:00
gc.c Merge branch 'ma/lockfile-cleanup' 2018-05-30 14:04:05 +09:00
get-tar-commit-id.c
grep.c builtin/grep.c: add '--column' option to 'git-grep(1)' 2018-06-22 12:59:02 -07:00
hash-object.c Merge branch 'sb/object-store-grafts' 2018-07-18 12:20:28 -07:00
help.c Merge branch 'nd/command-list' 2018-06-01 15:06:37 +09:00
index-pack.c Merge branch 'jk/index-pack-maint' 2018-06-13 12:50:46 -07:00
init-db.c Merge branch 'rd/init-typo' 2018-06-01 15:06:40 +09:00
interpret-trailers.c
log.c Merge branch 'xy/format-patch-prereq-patch-id-fix' 2018-07-18 12:20:29 -07:00
ls-files.c Merge branch 'nd/use-opt-int-set-f' 2018-06-01 15:06:38 +09:00
ls-remote.c Merge branch 'bw/server-options' 2018-05-23 14:38:15 +09:00
ls-tree.c object-store: move object access functions to object-store.h 2018-05-16 11:42:03 +09:00
mailinfo.c
mailsplit.c
merge-base.c
merge-file.c
merge-index.c
merge-ours.c
merge-recursive.c
merge-tree.c Merge branch 'sb/object-store-grafts' 2018-07-18 12:20:28 -07:00
merge.c Merge branch 'sb/object-store-grafts' 2018-07-18 12:20:28 -07:00
mktag.c object-store: move object access functions to object-store.h 2018-05-16 11:42:03 +09:00
mktree.c object-store: move object access functions to object-store.h 2018-05-16 11:42:03 +09:00
mv.c Merge branch 'ma/lockfile-cleanup' 2018-05-30 14:04:05 +09:00
name-rev.c name-rev: use commit-slab for rev-name instead of commit->util 2018-05-21 14:07:20 +09:00
notes.c Merge branch 'sb/object-store-grafts' 2018-07-18 12:20:28 -07:00
pack-objects.c Merge branch 'jt/remove-pack-bitmap-global' 2018-07-18 12:20:30 -07:00
pack-redundant.c pack-redundant: convert linked lists to use struct object_id 2018-05-02 13:59:50 +09:00
pack-refs.c refs: add repository argument to get_main_ref_store 2018-04-12 11:38:56 +09:00
patch-id.c
prune-packed.c packfile: convert has_sha1_pack to object_id 2018-05-02 13:59:49 +09:00
prune.c shallow: add repository argument to is_repository_shallow 2018-05-18 08:13:10 +09:00
pull.c Merge branch 'sb/object-store-grafts' 2018-07-18 12:20:28 -07:00
push.c transport: convert transport_push to take a struct refspec 2018-05-18 06:19:44 +09:00
read-tree.c lock_file: move static locks into functions 2018-05-10 14:55:40 +09:00
rebase--helper.c rebase -i: introduce --rebase-merges=[no-]rebase-cousins 2018-04-26 12:28:43 +09:00
receive-pack.c Merge branch 'hs/push-cert-check-cleanup' 2018-07-24 14:50:48 -07:00
reflog.c Merge branch 'sb/object-store-grafts' 2018-07-18 12:20:28 -07:00
remote-ext.c
remote-fd.c
remote.c Merge branch 'sb/object-store-grafts' 2018-07-18 12:20:28 -07:00
repack.c repack: add --keep-pack option 2018-04-16 13:52:29 +09:00
replace.c Merge branch 'sb/object-store-grafts' 2018-07-18 12:20:28 -07:00
rerere.c
reset.c Merge branch 'sb/object-store-grafts' 2018-07-18 12:20:28 -07:00
rev-list.c rev-list: make empty --stdin not an error 2018-08-22 14:44:50 -07:00
rev-parse.c Merge branch 'sb/object-store-grafts' 2018-07-18 12:20:28 -07:00
revert.c
rm.c Merge branch 'ma/lockfile-cleanup' 2018-05-30 14:04:05 +09:00
send-pack.c Merge branch 'ms/send-pack-honor-config' 2018-06-28 12:53:30 -07:00
serve.c
shortlog.c Merge branch 'ps/contains-id-error-message' 2018-04-10 16:28:20 +09:00
show-branch.c show-branch: note about its object flags usage 2018-05-21 14:07:20 +09:00
show-index.c make show-index a builtin 2018-05-29 00:28:22 +09:00
show-ref.c object-store: move object access functions to object-store.h 2018-05-16 11:42:03 +09:00
stripspace.c
submodule--helper.c Merge branch 'ao/config-from-gitmodules' 2018-07-18 12:20:31 -07:00
symbolic-ref.c
tag.c Merge branch 'sb/object-store-grafts' 2018-07-18 12:20:28 -07:00
unpack-file.c object-store: move object access functions to object-store.h 2018-05-16 11:42:03 +09:00
unpack-objects.c Merge branch 'sb/object-store-grafts' 2018-07-18 12:20:28 -07:00
update-index.c Merge branch 'js/use-bug-macro' 2018-05-30 14:04:07 +09:00
update-ref.c update-ref --stdin: use skip_prefix() 2018-06-04 12:26:01 +09:00
update-server-info.c
upload-archive.c
upload-pack.c Merge branch 'bw/protocol-v2' 2018-05-08 15:59:16 +09:00
var.c
verify-commit.c object-store: move object access functions to object-store.h 2018-05-16 11:42:03 +09:00
verify-pack.c
verify-tag.c ref-filter: use "struct object_id" consistently 2018-04-09 06:14:45 +09:00
worktree.c Merge branch 'tg/worktree-add-existing-branch' 2018-05-23 14:38:18 +09:00
write-tree.c