Changes since v1: - Spelling fixes. - Explained how "git reset -- $pathspec" in bare repo is broken. - Provided motivation for replacement of switch by if-else - Fixed argv/argc handling by removing use of argc. - Replaced "don't refresh index on --quiet" patch by one that just inlines update_index_refresh() - Incorporated fixes from Junio's repo - Provided some motivation for "replace switch by if-else" amd moved the patch later in the series. Thanks for reviewing! Martin von Zweigbergk (19): reset $pathspec: no need to discard index reset $pathspec: exit with code 0 if successful reset.c: pass pathspec around instead of (prefix, argv) pair reset: don't allow "git reset -- $pathspec" in bare repo reset.c: extract function for parsing arguments reset.c: remove unnecessary variable 'i' reset.c: extract function for updating {ORIG_,}HEAD reset.c: share call to die_if_unmerged_cache() reset --keep: only write index file once reset: avoid redundant error message reset.c: replace switch by if-else reset.c: move update_index_refresh() call out of read_from_tree() reset.c: move lock, write and commit out of update_index_refresh() reset [--mixed]: only write index file once reset.c: finish entire cmd_reset() whether or not pathspec is given reset.c: inline update_index_refresh() reset $sha1 $pathspec: require $sha1 only to be treeish reset: allow reset on unborn branch reset [--mixed]: use diff-based reset whether or not pathspec was given builtin/reset.c | 283 +++++++++++++++++++---------------------- t/t2013-checkout-submodule.sh | 2 +- t/t7102-reset.sh | 26 +++- t/t7106-reset-unborn-branch.sh | 52 ++++++++ 4 files changed, 203 insertions(+), 160 deletions(-) create mode 100755 t/t7106-reset-unborn-branch.sh -- 1.8.1.1.454.gce43f05 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html