Hi,
In these patches, I added the kind of change (aka ''action'') information
to each file entry in the TracRevisionLog changelog output format.
That's a small change, but as it mixes some refactorings (patches 1 and 2)
and the feature (patch 3), I think it's good to present it here first.
-- Christian
# HG changeset patch
# User [EMAIL PROTECTED]
# Node ID 1dfa8af34948fe6cb48de183cb78dc57d545507a
# Parent 4ad62f821aaa5d242aba946e0c1c97cb3fcfd0a1
Refactoring log_changelog.cs to use the ClearSilver ''with'' command.
diff -r 4ad62f821aaa -r 1dfa8af34948 templates/log_changelog.cs
--- a/templates/log_changelog.cs Wed Mar 1 11:41:51 2006 +0100
+++ b/templates/log_changelog.cs Wed Mar 1 12:08:55 2006 +0100
@@ -5,10 +5,12 @@
# <?cs var:trac.time ?>
#
<?cs each:item = $log.items ?>
-<?cs var:log.changes[item.rev].date ?> <?cs
- var:log.changes[item.rev].author ?> [<?cs var:item.rev ?>]
-<?cs each:file = $log.changes[item.rev].files ?>
+<?cs with:changeset = log.changes[item.rev] ?>
+<?cs var:changeset.date ?> <?cs
+ var:changeset.author ?> [<?cs var:item.rev ?>]
+<?cs each:file = $changeset.files ?>
* <?cs var:file ?>:<?cs
/each ?>
-<?cs var:log.changes[item.rev].message ?>
+<?cs var:changeset.message ?>
+<?cs /with ?>
<?cs /each ?>
# HG changeset patch
# User [EMAIL PROTECTED]
# Node ID 3db75e82897e327025b52bdf84580c2f11c670bc
# Parent 1dfa8af34948fe6cb48de183cb78dc57d545507a
Move the information specific to the changelog format out of the generic `get_changes` function.
diff -r 1dfa8af34948 -r 3db75e82897e trac/versioncontrol/web_ui/log.py
--- a/trac/versioncontrol/web_ui/log.py Wed Mar 1 12:08:55 2006 +0100
+++ b/trac/versioncontrol/web_ui/log.py Wed Mar 1 14:27:08 2006 +0100
@@ -157,8 +157,8 @@ class LogModule(Component):
req.hdf['log.items'] = info
- changes = get_changes(self.env, repos, [i['rev'] for i in info],
- verbose, req, format)
+ revs = [i['rev'] for i in info]
+ changes = get_changes(self.env, repos, revs, verbose, req, format)
if format == 'rss':
# Get the email addresses of all known users
email_map = {}
@@ -176,9 +176,15 @@ class LogModule(Component):
cs['author'] = author_email
cs['date'] = util.http_date(cs['date_seconds'])
elif format == 'changelog':
- for cs in changes.values():
+ for rev in revs:
+ changeset = repos.get_changeset(rev)
+ cs = changes[rev]
cs['message'] = '\n'.join(['\t' + m for m in
- cs['message'].split('\n')])
+ changeset.message.split('\n')])
+ files = []
+ for path, kind, chg, bpath, brev in changeset.get_changes():
+ files.append(chg == Changeset.DELETE and bpath or path)
+ cs['files'] = files
req.hdf['log.changes'] = changes
if req.args.get('format') == 'changelog':
diff -r 1dfa8af34948 -r 3db75e82897e trac/versioncontrol/web_ui/util.py
--- a/trac/versioncontrol/web_ui/util.py Wed Mar 1 12:08:55 2006 +0100
+++ b/trac/versioncontrol/web_ui/util.py Wed Mar 1 14:27:08 2006 +0100
@@ -33,19 +33,15 @@ def get_changes(env, repos, revs, full=N
changeset = repos.get_changeset(rev)
message = changeset.message or '--'
shortlog = wiki_to_oneliner(message, env, db, shorten=True)
- if format == 'changelog':
- files = [change[0] for change in changeset.get_changes()]
+ if full:
+ message = wiki_to_html(message, env, req, db,
+ absurls=(format == 'rss'),
+ escape_newlines=True)
else:
- files = None
- if full:
- message = wiki_to_html(message, env, req, db,
- absurls=(format == 'rss'),
- escape_newlines=True)
- else:
- message = shortlog
- if format == 'rss':
- shortlog = rss_title(shortlog)
- message = str(message)
+ message = shortlog
+ if format == 'rss':
+ shortlog = rss_title(shortlog)
+ message = str(message)
changes[rev] = {
'date_seconds': changeset.date,
'date': format_datetime(changeset.date),
@@ -53,7 +49,6 @@ def get_changes(env, repos, revs, full=N
'author': changeset.author or 'anonymous',
'message': message,
'shortlog': shortlog,
- 'files': files
}
return changes
# HG changeset patch
# User [EMAIL PROTECTED]
# Node ID 72623bb7b5c9c375d334dd45e721563ee1c3f722
# Parent 3db75e82897e327025b52bdf84580c2f11c670bc
Adding ''action'' information to the text changelog format of the TracRevisionLog
diff -r 3db75e82897e -r 72623bb7b5c9 templates/log_changelog.cs
--- a/templates/log_changelog.cs Wed Mar 1 14:27:08 2006 +0100
+++ b/templates/log_changelog.cs Wed Mar 1 14:27:56 2006 +0100
@@ -7,10 +7,19 @@
<?cs each:item = $log.items ?>
<?cs with:changeset = log.changes[item.rev] ?>
<?cs var:changeset.date ?> <?cs
- var:changeset.author ?> [<?cs var:item.rev ?>]
-<?cs each:file = $changeset.files ?>
- * <?cs var:file ?>:<?cs
-/each ?>
+ var:changeset.author ?> [<?cs var:item.rev ?>]<?cs
+ set:idx = 0 ?><?cs
+ each:file = changeset.files ?>
+ * <?cs var:file ?> (<?cs
+ set:action = changeset.actions[idx] ?><?cs
+ if:action == 'add' ?>added<?cs
+ elif:action == 'delete' ?>deleted<?cs
+ elif:action == 'copy' ?>copied<?cs
+ elif:action == 'move' ?>moved<?cs
+ elif:action == 'edit' ?>modified<?cs
+ /if ?>)<?cs
+ set:idx = idx + 1 ?><?cs
+ /each ?>
<?cs var:changeset.message ?>
<?cs /with ?>
<?cs /each ?>
diff -r 3db75e82897e -r 72623bb7b5c9 trac/versioncontrol/web_ui/log.py
--- a/trac/versioncontrol/web_ui/log.py Wed Mar 1 14:27:08 2006 +0100
+++ b/trac/versioncontrol/web_ui/log.py Wed Mar 1 14:27:56 2006 +0100
@@ -182,9 +182,12 @@ class LogModule(Component):
cs['message'] = '\n'.join(['\t' + m for m in
changeset.message.split('\n')])
files = []
+ actions = []
for path, kind, chg, bpath, brev in changeset.get_changes():
files.append(chg == Changeset.DELETE and bpath or path)
+ actions.append(chg)
cs['files'] = files
+ cs['actions'] = actions
req.hdf['log.changes'] = changes
if req.args.get('format') == 'changelog':
_______________________________________________
Trac-dev mailing list
[email protected]
http://lists.edgewall.com/mailman/listinfo/trac-dev