# HG changeset patch # User Nicolas Dumazet # Date 1279590080 -32400 # Node ID 52dc5022d8fb7be825e53cad4f8e48c8c9089d9d # Parent fda0e478fb7945b15110738885b8f54bcf2ff576 hg: provide an useful error message when run from a deleted directory diff --git a/hg b/hg --- a/hg +++ b/hg @@ -21,6 +21,13 @@ import mercurial.util import mercurial.dispatch +try: + import os + os.getcwd() +except OSError: + sys.stderr.write("abort: current working directory does not exist\n") + sys.exit(-1) + for fp in (sys.stdin, sys.stdout, sys.stderr): mercurial.util.set_binary(fp) diff --git a/tests/test-remove-cwd b/tests/test-remove-cwd new file mode 100755 --- /dev/null +++ b/tests/test-remove-cwd @@ -0,0 +1,12 @@ +hg init foo +cd foo +mkdir a +touch a/a +hg ci -Am"add all" +cd a + +hg up null +echo % run hg from removed directory +hg -v --traceback st + +exit 0 diff --git a/tests/test-remove-cwd.out b/tests/test-remove-cwd.out new file mode 100644 --- /dev/null +++ b/tests/test-remove-cwd.out @@ -0,0 +1,5 @@ +adding a/a +0 files updated, 0 files merged, 1 files removed, 0 files unresolved +% run hg from removed directory +'import site' failed; use -v for traceback +abort: current working directory does not exist