[PATCH V5] update: warn if cwd was deleted

Stanislau Hlebik stash at fb.com
Tue Oct 25 09:19:08 EDT 2016


The fix is not that important so I think it’s fine to revert it if it causes troubles.

On 10/24/16, 11:20 PM, "Danek Duvall" <danek.duvall at oracle.com> wrote:

    Stanislau Hlebik wrote:
    
    > diff --git a/tests/test-rebase-scenario-global.t b/tests/test-rebase-scenario-global.t
    > --- a/tests/test-rebase-scenario-global.t
    > +++ b/tests/test-rebase-scenario-global.t
    > @@ -758,6 +758,8 @@
    >    $ hg commit -m 'second source with subdir'
    >    $ hg rebase -b . -d 1 --traceback
    >    rebasing 2:779a07b1b7a0 "first source commit"
    > +  current directory was removed
    > +  (consider changing to repo root: $TESTTMP/cwd-vanish)
    >    rebasing 3:a7d6f3a00bf3 "second source with subdir" (tip)
    >    saved backup bundle to $TESTTMP/cwd-vanish/.hg/strip-backup/779a07b1b7a0-853e0073-backup.hg (glob)
    >  
    > diff --git a/tests/test-update-names.t b/tests/test-update-names.t
    > --- a/tests/test-update-names.t
    > +++ b/tests/test-update-names.t
    > @@ -72,3 +72,15 @@
    >    $ cd ..
    >  
    >  #endif
    > +
    > +Test that warning is printed if cwd is deleted during update
    > +  $ hg init r4 && cd r4
    > +  $ mkdir dir
    > +  $ cd dir
    > +  $ echo a > a
    > +  $ echo b > b
    > +  $ hg add a b
    > +  $ hg ci -m "file and dir"
    > +  $ hg up -q null
    > +  current directory was removed
    > +  (consider changing to repo root: $TESTTMP/r1/r4)
    
    So these tests are causing problems on Solaris.  Our rmdir() returns EINVAL
    when trying to remove the cwd, even if you're not specifically trying to
    remove "." (at least on ZFS).  That error is caught silently handled
    elsewhere, though it does leave the directory behind once the command is
    complete.  But it does mean that when we get to the getcwd(), the directory
    is still there, so the error doesn't happen.
    
    I'm not entirely sure what to do here.  I'm also not really sure what the
    driver for this fix was, so I'm not sure if suggesting something like
    dropping the warning in favor of silently chdir()ing to the repo root would
    be sufficient.
    
    Thoughts?
    
    Thanks,
    Danek
    



More information about the Mercurial-devel mailing list