commit 0e33f8e0becf732ab33b3ce78c026790a651a5f9 from: Stefan Sperling date: Wed Sep 01 14:34:33 2021 UTC disable ignore lists during status walks used by rebase and histedit Fixes rebase of gotwebd branch which added a new directory which is also matched by .gitignore rules on the branch. commit - 4c662b1dc9113e3f0bbf38b33e085977f6452e27 commit + 0e33f8e0becf732ab33b3ce78c026790a651a5f9 blob - e51b31591be4a61c6c86bf3ebe0f6e6fdd563947 blob + 45d01283724d60b70477b3bdbdb99e791571c59e --- lib/worktree.c +++ lib/worktree.c @@ -3605,12 +3605,12 @@ static const struct got_error * report_single_file_status(const char *path, const char *ondisk_path, struct got_fileindex *fileindex, got_worktree_status_cb status_cb, void *status_arg, struct got_repository *repo, int report_unchanged, - struct got_pathlist_head *ignores) + struct got_pathlist_head *ignores, int no_ignores) { struct got_fileindex_entry *ie; struct stat sb; - if (match_ignores(ignores, path)) + if (!no_ignores && match_ignores(ignores, path)) return NULL; ie = got_fileindex_entry_get(fileindex, path, strlen(path)); @@ -3717,7 +3717,7 @@ worktree_status(struct got_worktree *worktree, const c } err = report_single_file_status(path, ondisk_path, fileindex, status_cb, status_arg, repo, - report_unchanged, &ignores); + report_unchanged, &ignores, no_ignores); } } else { fdiff_cb.diff_old_new = status_old_new; @@ -6380,14 +6380,14 @@ rebase_commit(struct got_object_id **new_commit_id, struct got_pathlist_entry *pe; TAILQ_FOREACH(pe, merged_paths, entry) { err = worktree_status(worktree, pe->path, fileindex, - repo, collect_commitables, &cc_arg, NULL, NULL, 0, + repo, collect_commitables, &cc_arg, NULL, NULL, 1, 0); if (err) goto done; } } else { err = worktree_status(worktree, "", fileindex, repo, - collect_commitables, &cc_arg, NULL, NULL, 0, 0); + collect_commitables, &cc_arg, NULL, NULL, 1, 0); if (err) goto done; }