I have a question: Why does --dirty code path also not call git-update-index and instead does setup_work_tree(); prepare_repo_settings(the_repository); the_repository->settings.command_requires_full_index = 0; repo_read_index(the_repository); refresh_index(...); fd = repo_hold_locked_index(...); if (0 <= fd) repo_update_index_if_able(the_repository, &index_lock); I assume they are equivalent? The commit which introduced this -- bb571486ae93d02746c4bcc8032bde306f6d399a (describe: Refresh the index when run with --dirty) seems to be for the same objective as mu patch. Is this something you would like to see addressed? Thanks