|
@@ -52,19 +52,42 @@ for commit in repo.iter_commits(ref, paths=path):
|
|
|
diff = commit.diff(commit.parents[0])
|
|
|
files = []
|
|
|
for f in diff:
|
|
|
- p = f.a_blob.path or f.b_blob.path
|
|
|
+ if not f.a_blob:
|
|
|
+ p = f.b_blob.path
|
|
|
+ elif not f.b_blob:
|
|
|
+ p = f.a_blob.path
|
|
|
+ else:
|
|
|
+ continue
|
|
|
+
|
|
|
p2 = re.sub('^' + path + '/', '', p)
|
|
|
if p != p2:
|
|
|
files.append(p2)
|
|
|
|
|
|
fp = Popen(["fmt", "-72"], shell = True, stdin = PIPE, stdout = PIPE)
|
|
|
- fp.stdin.write("\t* %s: %s" % (string.join(files, ",\n\t"), log_text))
|
|
|
+ if files:
|
|
|
+ fp.stdin.write("\t* %s: %s" % (string.join(files, ",\n\t"), log_text))
|
|
|
+ else:
|
|
|
+ fp.stdin.write("\t* %s" % log_text)
|
|
|
fp.stdin.close()
|
|
|
log_text = fp.stdout.read()
|
|
|
del fp
|
|
|
|
|
|
- print "%s %s <%s>\n\n%s%s" % \
|
|
|
+ print "%s %s <%s>\n" % \
|
|
|
(time.strftime("%Y-%m-%d", time.gmtime(date)),
|
|
|
- author.name, author.email, log_text, log_text_remainder)
|
|
|
+ author.name, author.email)
|
|
|
+
|
|
|
+ if path:
|
|
|
+ log_text = re.sub(' ' + path + '/', ' ', log_text)
|
|
|
+ log_text_remainder = re.sub(' ' + path + '/', ' ', log_text_remainder)
|
|
|
+
|
|
|
+ # If the log_text_remainder already begins with a *, then use that as the
|
|
|
+ # changelog text.
|
|
|
+ if re.match('\s+\* ', log_text_remainder):
|
|
|
+ if log_text_remainder[0] == '\n':
|
|
|
+ print log_text_remainder[1:]
|
|
|
+ else:
|
|
|
+ print log_text_remainder
|
|
|
+ else:
|
|
|
+ print "%s%s" % (log_text, log_text_remainder)
|
|
|
|
|
|
# git-changelog ends here
|