Skip to content
  • Johan Herland's avatar
    notes-merge: Don't remove .git/NOTES_MERGE_WORKTREE; it may be the user's cwd · dabba590
    Johan Herland authored and Junio C Hamano's avatar Junio C Hamano committed
    
    
    When a manual notes merge is committed or aborted, we need to remove the
    temporary worktree at .git/NOTES_MERGE_WORKTREE. However, removing the
    entire directory is not good if the user ran the 'git notes merge
    --commit/--abort' from within that directory. On Windows, the directory
    removal would simply fail, while on POSIX systems, users would suddenly
    find themselves in an invalid current directory.
    
    Therefore, instead of deleting the entire directory, we delete everything
    _within_ the directory, and leave the (empty) directory in place.
    
    This would cause a subsequent notes merge to abort, complaining about a
    previous - unfinished - notes merge (due to the presence of
    .git/NOTES_MERGE_WORKTREE), so we also need to adjust this check to only
    trigger when .git/NOTES_MERGE_WORKTREE is non-empty.
    
    Finally, adjust the t3310 manual notes merge testcases to correctly handle
    the existence of an empty .git/NOTES_MERGE_WORKTREE directory.
    
    Inspired-by: default avatarJunio C Hamano <gitster@pobox.com>
    Signed-off-by: default avatarJohan Herland <johan@herland.net>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    dabba590