Patchwork tests: handle deleted .hg directory (git 2.2.0 and higher) (issue4585)

login
register
mail settings
Submitter Mathias De Maré
Date April 2, 2015, 6:26 a.m.
Message ID <85219d6ece678fdc82f4.1427956009@mathias-Latitude-E6540>
Download mbox | patch
Permalink /patch/8450/
State Accepted
Commit 866057e3090e560f6f25a135dffb5c904ff3f9de
Headers show

Comments

Mathias De Maré - April 2, 2015, 6:26 a.m.
# HG changeset patch
# User Mathias De Maré <mathias.demare@gmail.com>
# Date 1427955513 -7200
#      Thu Apr 02 08:18:33 2015 +0200
# Node ID 85219d6ece678fdc82f49006aeda26e6e21ed220
# Parent  37a2b446985f2ef77b9690a0548c8630828b7412
tests: handle deleted .hg directory (git 2.2.0 and higher) (issue4585)

In git 2.2.0 and higher, removing files and directories is changed:
removing an object that does not exist returns success rather than failure.
As a result, even though .hg/hgrc does not exist, success is returned
and the .hg/ directory is removed.

To handle this correctly, use 'rm -rf' to allow successful removing
for all git versions.

The exact changeset where this was introduced in git:
1054af7d04aef64378d69a0496b45cdbf6a0bef2
wrapper.c: remove/unlink_or_warn: simplify, treat ENOENT as success
Augie Fackler - April 2, 2015, 1:46 p.m.
On Thu, Apr 02, 2015 at 08:26:49AM +0200, mathias.demare@gmail.com wrote:
> # HG changeset patch
> # User Mathias De Maré <mathias.demare@gmail.com>
> # Date 1427955513 -7200
> #      Thu Apr 02 08:18:33 2015 +0200
> # Node ID 85219d6ece678fdc82f49006aeda26e6e21ed220
> # Parent  37a2b446985f2ef77b9690a0548c8630828b7412
> tests: handle deleted .hg directory (git 2.2.0 and higher) (issue4585)

Queued this, many thanks.

>
> In git 2.2.0 and higher, removing files and directories is changed:
> removing an object that does not exist returns success rather than failure.
> As a result, even though .hg/hgrc does not exist, success is returned
> and the .hg/ directory is removed.
>
> To handle this correctly, use 'rm -rf' to allow successful removing
> for all git versions.
>
> The exact changeset where this was introduced in git:
> 1054af7d04aef64378d69a0496b45cdbf6a0bef2
> wrapper.c: remove/unlink_or_warn: simplify, treat ENOENT as success
>
> diff -r 37a2b446985f -r 85219d6ece67 tests/test-subrepo-git.t
> --- a/tests/test-subrepo-git.t	Wed Apr 01 20:38:36 2015 -0500
> +++ b/tests/test-subrepo-git.t	Thu Apr 02 08:18:33 2015 +0200
> @@ -1002,7 +1002,7 @@
>    $ cd s
>    $ rm snake.python
>  (remove leftover .hg so Mercurial doesn't look for a root here)
> -  $ rm -r .hg
> +  $ rm -rf .hg
>    $ hg status --subrepos --all .
>    R snake.python
>    ? barfoo
Matt Mackall - April 2, 2015, 4:26 p.m.
On Thu, 2015-04-02 at 08:26 +0200, mathias.demare@gmail.com wrote:
> # HG changeset patch
> # User Mathias De Maré <mathias.demare@gmail.com>
> # Date 1427955513 -7200
> #      Thu Apr 02 08:18:33 2015 +0200
> # Node ID 85219d6ece678fdc82f49006aeda26e6e21ed220
> # Parent  37a2b446985f2ef77b9690a0548c8630828b7412
> tests: handle deleted .hg directory (git 2.2.0 and higher) (issue4585)

Queued for default, thanks.

Patch

diff -r 37a2b446985f -r 85219d6ece67 tests/test-subrepo-git.t
--- a/tests/test-subrepo-git.t	Wed Apr 01 20:38:36 2015 -0500
+++ b/tests/test-subrepo-git.t	Thu Apr 02 08:18:33 2015 +0200
@@ -1002,7 +1002,7 @@ 
   $ cd s
   $ rm snake.python
 (remove leftover .hg so Mercurial doesn't look for a root here)
-  $ rm -r .hg
+  $ rm -rf .hg
   $ hg status --subrepos --all .
   R snake.python
   ? barfoo