Tay Ray Chuan <rctay89@xxxxxxxxx> writes: > In particular, show that --short and --porcelain, while implying > --dry-run, do not return the same exit code as --dry-run. This is due to > the wt_status.commitable flag being set only when a long status is > requested. I am not sure if --short/--porcelain should even be accepted by "git commit" in the first place. It used to be that "git status" and "git commit" were the same program in a different guise and "git status <anything>" were merely a "git commit --dry-run <anything>", but the recent push is in the direction of making them totally separate in the end-user's minds. So if we want a proper fix, I would actually think that these options should *error out* at the command line parser level, way before checking if there is anything to commit. > No fix is provided here; with [1], it should be trivial to fix though - > just a matter of calling wt_status_mark_commitable(). > > [1] http://article.gmane.org/gmane.comp.version-control.git/242489 > > Signed-off-by: Tay Ray Chuan <rctay89@xxxxxxxxx> > --- > t/t7501-commit.sh | 36 ++++++++++++++++++++++++++++++++++++ > 1 file changed, 36 insertions(+) > > diff --git a/t/t7501-commit.sh b/t/t7501-commit.sh > index 94eec83..d58b097 100755 > --- a/t/t7501-commit.sh > +++ b/t/t7501-commit.sh > @@ -61,11 +61,47 @@ test_expect_success 'nothing to commit' ' > test_must_fail git commit -m initial > ' > > +test_expect_success '--dry-run fails with nothing to commit' ' > + test_must_fail git commit -m initial --dry-run > +' > + > +test_expect_success '--short fails with nothing to commit' ' > + test_must_fail git commit -m initial --short > +' > + > +test_expect_success '--porcelain fails with nothing to commit' ' > + test_must_fail git commit -m initial --porcelain > +' > + > +test_expect_success '--long fails with nothing to commit' ' > + test_must_fail git commit -m initial --long > +' > + > test_expect_success 'setup: non-initial commit' ' > echo bongo bongo bongo >file && > git commit -m next -a > ' > > +test_expect_success '--dry-run with stuff to commit returns ok' ' > + echo bongo bongo bongo >>file && > + git commit -m next -a --dry-run > +' > + > +test_expect_failure '--short with stuff to commit returns ok' ' > + echo bongo bongo bongo >>file && > + git commit -m next -a --short > +' > + > +test_expect_failure '--porcelain with stuff to commit returns ok' ' > + echo bongo bongo bongo >>file && > + git commit -m next -a --porcelain > +' > + > +test_expect_success '--long with stuff to commit returns ok' ' > + echo bongo bongo bongo >>file && > + git commit -m next -a --long > +' > + > test_expect_success 'commit message from non-existing file' ' > echo more bongo: bongo bongo bongo bongo >file && > test_must_fail git commit -F gah -a -- 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