[PATCH V2] purge: avoid duplicate output for --print (issue4092)

Anurag Goel anurag.dsps at gmail.com
Mon Feb 24 19:03:36 CST 2014


# HG changeset patch
# User anuraggoel <anurag.dsps at gmail.com>
# Date 1393290021 -19800
#      Tue Feb 25 06:30:21 2014 +0530
# Node ID 6f3220a878ae0610ac44728bbbd3e3617eb3c0bf
# Parent  aa021ece4506f5e962c8d87ab58ab594a0105ced
purge: avoid duplicate output for --print (issue4092)

Now "hg purge -p" commands avoids printiing duplication of filenames.

Second patch is the test coverage of first patch which tells that '-p'
does not depend on whether ui.verbose is configured or not,that means it
is independent of '-v'.

diff -r aa021ece4506 -r 6f3220a878ae hgext/purge.py
--- a/hgext/purge.py	Thu Feb 20 00:46:13 2014 -0600
+++ b/hgext/purge.py	Tue Feb 25 06:30:21 2014 +0530
@@ -101,10 +101,12 @@
     status = repo.status(match=match, ignored=opts['all'], unknown=True)
 
     for f in sorted(status[4] + status[5]):
-        ui.note(_('removing file %s\n') % f)
+        if act:
+            ui.note(_('removing file %s\n') % f)
         remove(removefile, f)
 
     for f in sorted(directories, reverse=True):
         if match(f) and not os.listdir(repo.wjoin(f)):
-            ui.note(_('removing directory %s\n') % f)
+            if act:
+                ui.note(_('removing directory %s\n') % f)
             remove(os.rmdir, f)
diff -r aa021ece4506 -r 6f3220a878ae tests/test-purge.t
--- a/tests/test-purge.t	Thu Feb 20 00:46:13 2014 -0600
+++ b/tests/test-purge.t	Tue Feb 25 06:30:21 2014 +0530
@@ -21,7 +21,7 @@
 delete an empty directory
 
   $ mkdir empty_dir
-  $ hg purge -p
+  $ hg purge -p -v
   empty_dir
   $ hg purge -v
   removing directory empty_dir
@@ -34,7 +34,7 @@
   $ mkdir untracked_dir
   $ touch untracked_dir/untracked_file1
   $ touch untracked_dir/untracked_file2
-  $ hg purge -p
+  $ hg purge -p -v
   untracked_dir/untracked_file1
   untracked_dir/untracked_file2
   $ hg purge -v
@@ -54,7 +54,7 @@
   > f= 'untracked_file_readonly'
   > os.chmod(f, stat.S_IMODE(os.stat(f).st_mode) & ~stat.S_IWRITE)
   > EOF
-  $ hg purge -p
+  $ hg purge -p -v
   untracked_file
   untracked_file_readonly
   $ hg purge -v
@@ -67,7 +67,7 @@
 delete an untracked file in a tracked directory
 
   $ touch directory/untracked_file
-  $ hg purge -p
+  $ hg purge -p -v
   directory/untracked_file
   $ hg purge -v
   removing file directory/untracked_file
@@ -78,7 +78,7 @@
 delete nested directories
 
   $ mkdir -p untracked_directory/nested_directory
-  $ hg purge -p
+  $ hg purge -p -v
   untracked_directory/nested_directory
   $ hg purge -v
   removing directory untracked_directory/nested_directory
@@ -91,7 +91,7 @@
 
   $ mkdir -p untracked_directory/nested_directory
   $ cd directory
-  $ hg purge -p
+  $ hg purge -p -v
   untracked_directory/nested_directory
   $ hg purge -v
   removing directory untracked_directory/nested_directory
@@ -106,7 +106,7 @@
   $ mkdir -p untracked_directory/nested_directory
   $ touch directory/untracked_file
   $ cd directory
-  $ hg purge -p ../untracked_directory
+  $ hg purge -p -v ../untracked_directory
   untracked_directory/nested_directory
   $ hg purge -v ../untracked_directory
   removing directory untracked_directory/nested_directory
@@ -122,13 +122,13 @@
 skip ignored files if --all not specified
 
   $ touch ignored
-  $ hg purge -p
+  $ hg purge -p -v
   $ hg purge -v
   $ ls
   directory
   ignored
   r1
-  $ hg purge -p --all
+  $ hg purge -p -v --all
   ignored
   $ hg purge -v --all
   removing file ignored
@@ -143,13 +143,13 @@
 
 hide error messages to avoid changing the output when the text changes
 
-  $ hg purge -p 2> /dev/null
+  $ hg purge -p -v 2> /dev/null
   untracked_file
   $ hg st
   ! r1
   ? untracked_file
 
-  $ hg purge -p
+  $ hg purge -p -v
   untracked_file
   $ hg purge -v 2> /dev/null
   removing file untracked_file
@@ -165,7 +165,7 @@
   $ echo directory >> .hgignore
   $ hg ci -m 'ignore directory'
   $ touch untracked_file
-  $ hg purge -p
+  $ hg purge -p -v
   untracked_file
   $ hg purge -v
   removing file untracked_file
@@ -173,7 +173,7 @@
 skip excluded files
 
   $ touch excluded_file
-  $ hg purge -p -X excluded_file
+  $ hg purge -p -v -X excluded_file
   $ hg purge -v -X excluded_file
   $ ls
   directory
@@ -185,7 +185,7 @@
 
   $ mkdir excluded_dir
   $ touch excluded_dir/file
-  $ hg purge -p -X excluded_dir
+  $ hg purge -p -v -X excluded_dir
   $ hg purge -v -X excluded_dir
   $ ls
   directory
@@ -198,7 +198,7 @@
 skip excluded empty dirs
 
   $ mkdir excluded_dir
-  $ hg purge -p -X excluded_dir
+  $ hg purge -p -v -X excluded_dir
   $ hg purge -v -X excluded_dir
   $ ls
   directory
@@ -212,7 +212,7 @@
   $ touch .svn/foo
   $ mkdir directory/.svn
   $ touch directory/.svn/foo
-  $ hg purge -p -X .svn -X '*/.svn'
-  $ hg purge -p -X re:.*.svn
+  $ hg purge -p -v -X .svn -X '*/.svn'
+  $ hg purge -p -v -X re:.*.svn
 
   $ cd ..


More information about the Mercurial-devel mailing list