Merge branch 'ak/commit-only-allow-empty'
"git commit --allow-empty --only" (no pathspec) with dirty index ought to be an acceptable way to create a new commit that does not change any paths, but it was forbidden, perhaps because nobody needed it so far. * ak/commit-only-allow-empty: commit: remove 'Clever' message for --only --amend commit: make --only --allow-empty work without paths
This commit is contained in:
		@ -265,7 +265,8 @@ FROM UPSTREAM REBASE" section in linkgit:git-rebase[1].)
 | 
				
			|||||||
	If this option is specified together with `--amend`, then
 | 
						If this option is specified together with `--amend`, then
 | 
				
			||||||
	no paths need to be specified, which can be used to amend
 | 
						no paths need to be specified, which can be used to amend
 | 
				
			||||||
	the last commit without committing changes that have
 | 
						the last commit without committing changes that have
 | 
				
			||||||
	already been staged.
 | 
						already been staged. If used together with `--allow-empty`
 | 
				
			||||||
 | 
						paths are also not required, and an empty commit will be created.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-u[<mode>]::
 | 
					-u[<mode>]::
 | 
				
			||||||
--untracked-files[=<mode>]::
 | 
					--untracked-files[=<mode>]::
 | 
				
			||||||
 | 
				
			|||||||
@ -1206,10 +1206,8 @@ static int parse_and_validate_options(int argc, const char *argv[],
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	if (also + only + all + interactive > 1)
 | 
						if (also + only + all + interactive > 1)
 | 
				
			||||||
		die(_("Only one of --include/--only/--all/--interactive/--patch can be used."));
 | 
							die(_("Only one of --include/--only/--all/--interactive/--patch can be used."));
 | 
				
			||||||
	if (argc == 0 && (also || (only && !amend)))
 | 
						if (argc == 0 && (also || (only && !amend && !allow_empty)))
 | 
				
			||||||
		die(_("No paths with --include/--only does not make sense."));
 | 
							die(_("No paths with --include/--only does not make sense."));
 | 
				
			||||||
	if (argc == 0 && only && amend)
 | 
					 | 
				
			||||||
		only_include_assumed = _("Clever... amending the last one with dirty index.");
 | 
					 | 
				
			||||||
	if (argc > 0 && !also && !only)
 | 
						if (argc > 0 && !also && !only)
 | 
				
			||||||
		only_include_assumed = _("Explicit paths specified without -i or -o; assuming --only paths...");
 | 
							only_include_assumed = _("Explicit paths specified without -i or -o; assuming --only paths...");
 | 
				
			||||||
	if (!cleanup_arg || !strcmp(cleanup_arg, "default"))
 | 
						if (!cleanup_arg || !strcmp(cleanup_arg, "default"))
 | 
				
			||||||
 | 
				
			|||||||
@ -155,6 +155,15 @@ test_expect_success 'amend --only ignores staged contents' '
 | 
				
			|||||||
	git diff --exit-code
 | 
						git diff --exit-code
 | 
				
			||||||
'
 | 
					'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test_expect_success 'allow-empty --only ignores staged contents' '
 | 
				
			||||||
 | 
						echo changed-again >file &&
 | 
				
			||||||
 | 
						git add file &&
 | 
				
			||||||
 | 
						git commit --allow-empty --only -m "empty" &&
 | 
				
			||||||
 | 
						git cat-file blob HEAD:file >file.actual &&
 | 
				
			||||||
 | 
						test_cmp file.expect file.actual &&
 | 
				
			||||||
 | 
						git diff --exit-code
 | 
				
			||||||
 | 
					'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
test_expect_success 'set up editor' '
 | 
					test_expect_success 'set up editor' '
 | 
				
			||||||
	cat >editor <<-\EOF &&
 | 
						cat >editor <<-\EOF &&
 | 
				
			||||||
	#!/bin/sh
 | 
						#!/bin/sh
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user