[PATCH V3] update: warn if cwd was deleted
timeless
timeless at gmail.com
Wed Sep 7 15:35:11 EDT 2016
There should probably be a colon after "root"
On Sep 5, 2016 6:33 AM, "Stanislau Hlebik" <stash at fb.com> wrote:
> # HG changeset patch
> # User Stanislau Hlebik <stash at fb.com>
> # Date 1473071480 25200
> # Mon Sep 05 03:31:20 2016 -0700
> # Node ID b43aa94306b8f50852a8176afec3839aa3826467
> # Parent f148bfa40489269be2e48046734f81065129847a
> update: warn if cwd was deleted
>
> During update directories are deleted as soon as they have no entries.
> But if current working directory is deleted then it cause problems
> in complex commands like 'hg split'. This commit adds a warning
> that will help users figure the problem faster.
>
> diff --git a/mercurial/merge.py b/mercurial/merge.py
> --- a/mercurial/merge.py
> +++ b/mercurial/merge.py
> @@ -1043,7 +1043,20 @@
> repo.ui.note(_("removing %s\n") % f)
> audit(f)
> try:
> - unlink(wjoin(f), ignoremissing=True)
> + try:
> + cwd = os.getcwd()
> + except OSError:
> + cwd = None
> + path = wjoin(f)
> + unlink(path, ignoremissing=True)
> + try:
> + os.getcwd()
> + except OSError:
> + # Print a warning if cwd was deleted
> + if cwd and path.startswith(cwd):
> + repo.ui.warn(_("cwd was deleted - consider "
> + "changing cwd to repo root %s\n") %
> + repo.root)
> except OSError as inst:
> repo.ui.warn(_("update failed to remove %s: %s!\n") %
> (f, inst.strerror))
> 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,7 @@
> $ hg commit -m 'second source with subdir'
> $ hg rebase -b . -d 1 --traceback
> rebasing 2:779a07b1b7a0 "first source commit"
> + cwd was deleted - consider changing cwd to repo root * (glob)
> 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,14 @@
> $ 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
> + cwd was deleted - consider changing cwd to repo root * (glob)
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at mercurial-scm.org
> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.mercurial-scm.org/pipermail/mercurial-devel/attachments/20160907/4e129f03/attachment.html>
More information about the Mercurial-devel
mailing list