Merge branch 'nd/ita-empty-commit'
When new paths were added by "git add -N" to the index, it was enough to circumvent the check by "git commit" to refrain from making an empty commit without "--allow-empty". The same logic prevented "git status" to show such a path as "new file" in the "Changes not staged for commit" section. * nd/ita-empty-commit: commit: don't be fooled by ita entries when creating initial commit commit: fix empty commit creation when there's no changes but ita entries diff: add --ita-[in]visible-in-index diff-lib: allow ita entries treated as "not yet exist in index"
This commit is contained in:
@ -438,7 +438,7 @@ static void wt_status_collect_changed_cb(struct diff_queue_struct *q,
|
||||
|
||||
switch (p->status) {
|
||||
case DIFF_STATUS_ADDED:
|
||||
die("BUG: worktree status add???");
|
||||
d->mode_worktree = p->two->mode;
|
||||
break;
|
||||
|
||||
case DIFF_STATUS_DELETED:
|
||||
@ -548,6 +548,7 @@ static void wt_status_collect_changes_worktree(struct wt_status *s)
|
||||
setup_revisions(0, NULL, &rev, NULL);
|
||||
rev.diffopt.output_format |= DIFF_FORMAT_CALLBACK;
|
||||
DIFF_OPT_SET(&rev.diffopt, DIRTY_SUBMODULES);
|
||||
rev.diffopt.ita_invisible_in_index = 1;
|
||||
if (!s->show_untracked_files)
|
||||
DIFF_OPT_SET(&rev.diffopt, IGNORE_UNTRACKED_IN_SUBMODULES);
|
||||
if (s->ignore_submodule_arg) {
|
||||
@ -571,6 +572,7 @@ static void wt_status_collect_changes_index(struct wt_status *s)
|
||||
setup_revisions(0, NULL, &rev, &opt);
|
||||
|
||||
DIFF_OPT_SET(&rev.diffopt, OVERRIDE_SUBMODULE_CONFIG);
|
||||
rev.diffopt.ita_invisible_in_index = 1;
|
||||
if (s->ignore_submodule_arg) {
|
||||
handle_ignore_submodules_arg(&rev.diffopt, s->ignore_submodule_arg);
|
||||
} else {
|
||||
@ -606,6 +608,8 @@ static void wt_status_collect_changes_initial(struct wt_status *s)
|
||||
|
||||
if (!ce_path_match(ce, &s->pathspec, NULL))
|
||||
continue;
|
||||
if (ce_intent_to_add(ce))
|
||||
continue;
|
||||
it = string_list_insert(&s->change, ce->name);
|
||||
d = it->util;
|
||||
if (!d) {
|
||||
@ -912,6 +916,7 @@ static void wt_longstatus_print_verbose(struct wt_status *s)
|
||||
|
||||
init_revisions(&rev, NULL);
|
||||
DIFF_OPT_SET(&rev.diffopt, ALLOW_TEXTCONV);
|
||||
rev.diffopt.ita_invisible_in_index = 1;
|
||||
|
||||
memset(&opt, 0, sizeof(opt));
|
||||
opt.def = s->is_initial ? EMPTY_TREE_SHA1_HEX : s->reference;
|
||||
|
Reference in New Issue
Block a user