# HG changeset patch # User Matt Harbison # Date 1417032982 18000 # Node ID 72c23fa4f52f04595f3958f7401b7ed290ad0b08 # Parent 83bbedc16b3f71e34fb67007c437a54baf4faeac commit: abort if --addremove is specified, but fails This will be required when subrepo support is added, in order to ensure consistent commits when a subrepo flavor doesn't support addremove. diff -r 83bbedc16b3f -r 72c23fa4f52f mercurial/cmdutil.py --- a/mercurial/cmdutil.py Wed Nov 26 14:27:36 2014 -0500 +++ b/mercurial/cmdutil.py Wed Nov 26 15:16:22 2014 -0500 @@ -2202,7 +2202,9 @@ # extract addremove carefully -- this function can be called from a command # that doesn't support addremove if opts.get('addremove'): - scmutil.addremove(repo, matcher, opts) + if scmutil.addremove(repo, matcher, opts) != 0: + raise util.Abort( + _("failed to mark all new/missing files as added/removed")) return commitfunc(ui, repo, message, matcher, opts) diff -r 83bbedc16b3f -r 72c23fa4f52f tests/test-addremove.t --- a/tests/test-addremove.t Wed Nov 26 14:27:36 2014 -0500 +++ b/tests/test-addremove.t Wed Nov 26 15:16:22 2014 -0500 @@ -79,4 +79,19 @@ $ hg addremove -s 50 adding b adding c + + $ rm c +#if windows + $ hg ci -A -m "c" nonexistant + nonexistant: The system cannot find the file specified + abort: failed to mark all new/missing files as added/removed + [255] +#else + $ hg ci -A -m "c" nonexistant + nonexistant: No such file or directory + abort: failed to mark all new/missing files as added/removed + [255] +#endif + $ hg st + ! c $ cd ..