Skip to content
  • Duy Nguyen's avatar
    Make sure refs/rewritten/ is per-worktree · b9317d55
    Duy Nguyen authored and Junio C Hamano's avatar Junio C Hamano committed
    a9be29c9
    
     (sequencer: make refs generated by the `label` command
    worktree-local, 2018-04-25) adds refs/rewritten/ as per-worktree
    reference space. Unfortunately (my bad) there are a couple places that
    need update to make sure it's really per-worktree.
    
     - add_per_worktree_entries_to_dir() is updated to make sure ref listing
       look at per-worktree refs/rewritten/ instead of per-repo one [1]
    
     - common_list[] is updated so that git_path() returns the correct
       location. This includes "rev-parse --git-path".
    
    This mess is created by me. I started trying to fix it with the
    introduction of refs/worktree, where all refs will be per-worktree
    without special treatments. Unfortunate refs/rewritten came before
    refs/worktree so this is all we can do.
    
    This also fixes logs/refs/worktree not being per-worktree.
    
    [1] note that ref listing still works sometimes. For example, if you
        have .git/worktrees/foo/refs/rewritten/bar AND the directory
        .git/worktrees/refs/rewritten, refs/rewritten/bar will show up.
        add_per_worktree_entries_to_dir() is only needed when the directory
        .git/worktrees/refs/rewritten is missing.
    
    Reported-by: default avatarPhillip Wood <phillip.wood123@gmail.com>
    Signed-off-by: default avatarNguyễn Thái Ngọc Duy <pclouds@gmail.com>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    b9317d55