D3731: templatefilters: rename commonprefix to commondir

martinvonz (Martin von Zweigbergk) phabricator at mercurial-scm.org
Wed Jun 13 22:06:47 UTC 2018


martinvonz created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  Two reasons:
  
  - It makes it clearer that it's not a generic common string prefix (e.g. commonprefix(["bar", "baz"]) is not "ba", but "")
  - If we ever want a filter for generic common string prefix, then the name is now available for that.
  
  "commondir" does not describe the prefix-ness, however. I'm happy to
  rename it "commondirprefix" or "commonprefixdir" if others prefer.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D3731

AFFECTED FILES
  mercurial/templatefilters.py
  tests/test-template-filters.t

CHANGE DETAILS

diff --git a/tests/test-template-filters.t b/tests/test-template-filters.t
--- a/tests/test-template-filters.t
+++ b/tests/test-template-filters.t
@@ -1,23 +1,23 @@
-  $ hg debugtemplate '{""|splitlines|commonprefix}\n'
+  $ hg debugtemplate '{""|splitlines|commondir}\n'
   
-  $ hg debugtemplate '{"foo/bar\nfoo/baz\nfoo/foobar\n"|splitlines|commonprefix}\n'
+  $ hg debugtemplate '{"foo/bar\nfoo/baz\nfoo/foobar\n"|splitlines|commondir}\n'
   foo
-  $ hg debugtemplate '{"foo/bar\nfoo/bar\n"|splitlines|commonprefix}\n'
+  $ hg debugtemplate '{"foo/bar\nfoo/bar\n"|splitlines|commondir}\n'
   foo
-  $ hg debugtemplate '{"/foo/bar\n/foo/bar\n"|splitlines|commonprefix}\n'
+  $ hg debugtemplate '{"/foo/bar\n/foo/bar\n"|splitlines|commondir}\n'
   foo
-  $ hg debugtemplate '{"/foo\n/foo\n"|splitlines|commonprefix}\n'
+  $ hg debugtemplate '{"/foo\n/foo\n"|splitlines|commondir}\n'
   
-  $ hg debugtemplate '{"foo/bar\nbar/baz"|splitlines|commonprefix}\n'
+  $ hg debugtemplate '{"foo/bar\nbar/baz"|splitlines|commondir}\n'
   
-  $ hg debugtemplate '{"foo/bar\nbar/baz\nbar/foo\n"|splitlines|commonprefix}\n'
+  $ hg debugtemplate '{"foo/bar\nbar/baz\nbar/foo\n"|splitlines|commondir}\n'
   
-  $ hg debugtemplate '{"foo/../bar\nfoo/bar"|splitlines|commonprefix}\n'
+  $ hg debugtemplate '{"foo/../bar\nfoo/bar"|splitlines|commondir}\n'
   foo
-  $ hg debugtemplate '{"foo\n/foo"|splitlines|commonprefix}\n'
+  $ hg debugtemplate '{"foo\n/foo"|splitlines|commondir}\n'
   
   $ hg init
-  $ hg log -r null -T '{rev|commonprefix}'
+  $ hg log -r null -T '{rev|commondir}'
   hg: parse error: argument is not a list of text
-  (template filter 'commonprefix' is not compatible with keyword 'rev')
+  (template filter 'commondir' is not compatible with keyword 'rev')
   [255]
diff --git a/mercurial/templatefilters.py b/mercurial/templatefilters.py
--- a/mercurial/templatefilters.py
+++ b/mercurial/templatefilters.py
@@ -99,8 +99,8 @@
     """
     return os.path.basename(path)
 
- at templatefilter('commonprefix')
-def commonprefix(filelist):
+ at templatefilter('commondir')
+def commondir(filelist):
     """List of text. Treats each list item as file name with /
     as path separator and returns the longest common directory
     prefix shared by all list items.



To: martinvonz, #hg-reviewers
Cc: mercurial-devel


More information about the Mercurial-devel mailing list