chiark
/
gitweb
/
~mdw
/
stgit
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add import -p option
[stgit]
/
stgit
/
commands
/
common.py
diff --git
a/stgit/commands/common.py
b/stgit/commands/common.py
index d64cce13336dd91ea097cd1e1f3db381ef054d1b..0d39148e17d50058c7fdb97cf3aee87bd3206835 100644
(file)
--- a/
stgit/commands/common.py
+++ b/
stgit/commands/common.py
@@
-323,7
+323,7
@@
def post_rebase(crt_series, applied, nopush, merged):
#
def __end_descr(line):
return re.match('---\s*$', line) or re.match('diff -', line) or \
#
def __end_descr(line):
return re.match('---\s*$', line) or re.match('diff -', line) or \
- re.match('Index: ', line)
+ re.match('Index: ', line)
or re.match('--- \w', line)
def __split_descr_diff(string):
"""Return the description and the diff from the given string
def __split_descr_diff(string):
"""Return the description and the diff from the given string
@@
-355,6
+355,7
@@
def __parse_description(descr):
lasthdr = 0
end = len(descr_lines)
lasthdr = 0
end = len(descr_lines)
+ descr_strip = 0
# Parse the patch header
for pos in range(0, end):
# Parse the patch header
for pos in range(0, end):
@@
-374,12
+375,16
@@
def __parse_description(descr):
if subject:
break
# get the subject
if subject:
break
# get the subject
- subject = descr_lines[pos]
+ subject = descr_lines[pos][descr_strip:]
+ if re.match('commit [\da-f]{40}$', subject):
+ # 'git show' output, look for the real subject
+ subject = ''
+ descr_strip = 4
lasthdr = pos + 1
# get the body
if lasthdr < end:
lasthdr = pos + 1
# get the body
if lasthdr < end:
- body =
reduce(lambda x, y: x + '\n' + y, descr_lines[lasthdr:], ''
)
+ body =
'\n' + '\n'.join(l[descr_strip:] for l in descr_lines[lasthdr:]
)
return (subject + body, authname, authemail, authdate)
return (subject + body, authname, authemail, authdate)
@@
-405,7
+410,8
@@
def parse_mail(msg):
authname = authemail = None
# '\n\t' can be found on multi-line headers
authname = authemail = None
# '\n\t' can be found on multi-line headers
- descr = __decode_header(msg['subject']).replace('\n\t', ' ')
+ descr = __decode_header(msg['subject'])
+ descr = re.sub('\n[ \t]*', ' ', descr)
authdate = msg['date']
# remove the '[*PATCH*]' expression in the subject
authdate = msg['date']
# remove the '[*PATCH*]' expression in the subject