4a3ce47 worktree: prune duplicate entries referencing same worktree path

2 files Authored by Eric Sunshine 3 years ago, Committed by Junio C Hamano 3 years ago,
    worktree: prune duplicate entries referencing same worktree path
    
    A fundamental restriction of linked working trees is that there must
    only ever be a single worktree associated with a particular path, thus
    "git worktree add" explicitly disallows creation of a new worktree at
    the same location as an existing registered worktree. Nevertheless,
    users can still "shoot themselves in the foot" by mucking with
    administrative files in .git/worktree/<id>/. Worse, "git worktree move"
    is careless[1] and allows a worktree to be moved atop a registered but
    missing worktree (which can happen, for instance, if the worktree is on
    removable media). For instance:
    
        $ git clone foo.git
        $ cd foo
        $ git worktree add ../bar
        $ git worktree add ../baz
        $ rm -rf ../bar
        $ git worktree move ../baz ../bar
        $ git worktree list
        .../foo beefd00f [master]
        .../bar beefd00f [bar]
        .../bar beefd00f [baz]
    
    Help users recover from this form of corruption by teaching "git
    worktree prune" to detect when multiple worktrees are associated with
    the same path.
    
    [1]: A subsequent commit will fix "git worktree move" validation to be
         more strict.
    
    Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    
        
file modified
+43 -6
file modified
+12 -0