changeset 35539:d1aae6d4efc5 stable

templatefilters: fix doc of basename() os.path.basename() does NOT strip trailing slashes. > Note that the result of this function is different from the Unix basename > program; where basename for '/foo/bar/' returns 'bar', the basename() > function returns an empty string (''). https://docs.python.org/2.7/library/os.path.html#os.path.basename
author Yuya Nishihara <yuya@tcha.org>
date Sun, 07 Jan 2018 12:07:29 +0900
parents f39cf992216f
children f948c5b3f5c9
files mercurial/templatefilters.py tests/test-command-template.t
diffstat 2 files changed, 7 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/templatefilters.py	Sun Jan 07 15:56:58 2018 +0900
+++ b/mercurial/templatefilters.py	Sun Jan 07 12:07:29 2018 +0900
@@ -90,9 +90,8 @@
 @templatefilter('basename')
 def basename(path):
     """Any text. Treats the text as a path, and returns the last
-    component of the path after splitting by the path separator
-    (ignoring trailing separators). For example, "foo/bar/baz" becomes
-    "baz" and "foo/bar//" becomes "bar".
+    component of the path after splitting by the path separator.
+    For example, "foo/bar/baz" becomes "baz" and "foo/bar//" becomes "".
     """
     return os.path.basename(path)
 
--- a/tests/test-command-template.t	Sun Jan 07 15:56:58 2018 +0900
+++ b/tests/test-command-template.t	Sun Jan 07 12:07:29 2018 +0900
@@ -2218,6 +2218,11 @@
   $ cd ..
   $ rm -rf unstable-hash
 
+Filename filters:
+
+  $ hg debugtemplate '{"foo/bar"|basename}|{"foo/"|basename}|{"foo"|basename}|\n'
+  bar||foo|
+
 Add a dummy commit to make up for the instability of the above:
 
   $ echo a > a