##// END OF EJS Templates
export: add %m to file format string (first line of the commit message)...
Andrzej Bieniek -
r14986:70e11de6 default
parent child Browse files
Show More
@@ -109,12 +109,13 b' def loglimit(opts):'
109 109 limit = None
110 110 return limit
111 111
112 def makefilename(repo, pat, node,
112 def makefilename(repo, pat, node, desc=None,
113 113 total=None, seqno=None, revwidth=None, pathname=None):
114 114 node_expander = {
115 115 'H': lambda: hex(node),
116 116 'R': lambda: str(repo.changelog.rev(node)),
117 117 'h': lambda: short(node),
118 'm': lambda: re.sub('[^\w]', '_', str(desc))
118 119 }
119 120 expander = {
120 121 '%': lambda: '%',
@@ -154,7 +155,7 b' def makefilename(repo, pat, node,'
154 155 raise util.Abort(_("invalid format spec '%%%s' in output filename") %
155 156 inst.args[0])
156 157
157 def makefileobj(repo, pat, node=None, total=None,
158 def makefileobj(repo, pat, node=None, desc=None, total=None,
158 159 seqno=None, revwidth=None, mode='wb', pathname=None):
159 160
160 161 writable = mode not in ('r', 'rb')
@@ -181,7 +182,7 b' def makefileobj(repo, pat, node=None, to'
181 182 return pat
182 183 if util.safehasattr(pat, 'read') and 'r' in mode:
183 184 return pat
184 return open(makefilename(repo, pat, node, total, seqno, revwidth,
185 return open(makefilename(repo, pat, node, desc, total, seqno, revwidth,
185 186 pathname),
186 187 mode)
187 188
@@ -516,8 +517,10 b" def export(repo, revs, template='hg-%h.p"
516 517
517 518 shouldclose = False
518 519 if not fp:
519 fp = makefileobj(repo, template, node, total=total, seqno=seqno,
520 revwidth=revwidth, mode='ab')
520 desc_lines = ctx.description().rstrip().split('\n')
521 desc = desc_lines[0] #Commit always has a first line.
522 fp = makefileobj(repo, template, node, desc=desc, total=total,
523 seqno=seqno, revwidth=revwidth, mode='ab')
521 524 if fp != template:
522 525 shouldclose = True
523 526 if fp != sys.stdout and util.safehasattr(fp, 'name'):
@@ -2229,6 +2229,7 b' def export(ui, repo, *changesets, **opts'
2229 2229 :``%R``: changeset revision number
2230 2230 :``%b``: basename of the exporting repository
2231 2231 :``%h``: short-form changeset hash (12 hexadecimal digits)
2232 :``%m``: first line of the commit message (only alphanumeric characters)
2232 2233 :``%n``: zero-padded sequence number, starting at 1
2233 2234 :``%r``: zero-padded changeset revision number
2234 2235
@@ -7,7 +7,7 b''
7 7 > hg ci -m "foo-$i"
8 8 > done
9 9
10 $ for out in "%nof%N" "%%%H" "%b-%R" "%h" "%r"; do
10 $ for out in "%nof%N" "%%%H" "%b-%R" "%h" "%r" "%m"; do
11 11 > echo
12 12 > echo "# foo-$out.patch"
13 13 > hg export -v -o "foo-$out.patch" 2:tip
@@ -78,6 +78,19 b''
78 78 foo-10.patch
79 79 foo-11.patch
80 80
81 # foo-%m.patch
82 exporting patches:
83 foo-foo_2.patch
84 foo-foo_3.patch
85 foo-foo_4.patch
86 foo-foo_5.patch
87 foo-foo_6.patch
88 foo-foo_7.patch
89 foo-foo_8.patch
90 foo-foo_9.patch
91 foo-foo_10.patch
92 foo-foo_11.patch
93
81 94 Exporting 4 changesets to a file:
82 95
83 96 $ hg export -o export_internal 1 2 3 4
@@ -108,3 +121,11 b' Exporting revision -2 to a file:'
108 121 foo-9
109 122 +foo-10
110 123
124 Checking if only alphanumeric characters are used in the file name (%m option):
125
126 $ echo "line" >> foo
127 $ hg commit -m " !\"#$%&(,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\`abcdefghijklmnopqrstuvwxyz{|}~"
128 $ hg export -v -o %m.patch tip
129 exporting patch:
130 ____________0123456789_______ABCDEFGHIJKLMNOPQRSTUVWXYZ______abcdefghijklmnopqrstuvwxyz____.patch
131
General Comments 0
You need to be logged in to leave comments. Login now