changeset 28815:44611ad4fbd9

crecord: check for untracked arguments hg commit tracked untracked -- fails complaining about untracked prior to this commit, hg commit -i tracked untracked -- did not fail This is corrected by calling the refactored localrepo.checkcommitpatterns
author timeless <timeless@mozdev.org>
date Wed, 06 Apr 2016 18:19:36 +0000
parents 1f65f291a5b7
children f4a42bb7c2ec
files mercurial/cmdutil.py tests/test-commit-interactive.t
diffstat 2 files changed, 21 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/cmdutil.py	Wed Apr 06 18:08:38 2016 +0000
+++ b/mercurial/cmdutil.py	Wed Apr 06 18:19:36 2016 +0000
@@ -135,12 +135,24 @@
         """
 
         checkunfinished(repo, commit=True)
-        merge = len(repo[None].parents()) > 1
+        wctx = repo[None]
+        merge = len(wctx.parents()) > 1
         if merge:
             raise error.Abort(_('cannot partially commit a merge '
                                '(use "hg commit" instead)'))
 
+        def fail(f, msg):
+            raise error.Abort('%s: %s' % (f, msg))
+
+        force = opts.get('force')
+        if not force:
+            vdirs = []
+            match.explicitdir = vdirs.append
+            match.bad = fail
+
         status = repo.status(match=match)
+        if not force:
+            repo.checkcommitpatterns(wctx, vdirs, match, status, fail)
         diffopts = patch.difffeatureopts(ui, opts=opts, whitespace=True)
         diffopts.nodates = True
         diffopts.git = True
--- a/tests/test-commit-interactive.t	Wed Apr 06 18:08:38 2016 +0000
+++ b/tests/test-commit-interactive.t	Wed Apr 06 18:19:36 2016 +0000
@@ -59,6 +59,14 @@
   
   
 
+Abort for untracked
+
+  $ touch untracked
+  $ hg commit -i -m should-fail empty-rw untracked
+  abort: untracked: file not tracked!
+  [255]
+  $ rm untracked
+
 Record empty file
 
   $ hg commit -i -d '0 0' -m empty empty-rw<<EOF