[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: mailer.py bug fixes

From: C. Michael Pilato <cmpilato_at_collab.net>
Date: 2005-06-24 19:16:26 CEST

Patch applied, tested, and committed as revision r15160. Thanks,
Servatius!

<Servatius.Brandt@fujitsu-siemens.com> writes:

> Hello,
>
> I found some bugs in tools/hook-scripts/mailer/mailer.py. A patch with
> the fixes is included below. It is based on revision 14358 in the
> 1.2.x branch.
>
> The docs in mailer.conf.example talks about "truncate_subject" (with
> underline) but mailer.py looks for "truncate-subject" (with dash).
> Since all other option values use an underline, I fixed this in
> mailer.py for consistency.
>
> generate_content() forgot to set "show_nonmatching_paths" in the "data"
> it passes to the render() method of the TextCommitRenderer. I added it.
>
> When the [maps] section specifies the same mapping specification to be
> used by more than one option (e.g. reply_to = [mail-addresses] and
> to_addr = [mail-addresses]), the script fails. I postponed the removal
> of a map section name from the self._groups list in Config._prep_maps()
> until all map specifications have been processed.
>
> Mappings are only applied when the option value is a single word, e.g.
> "to_addr = sally". When adding another recipient as in
> "to_addr = sally harry", mappings are not applied. This is because
> Config.get() passes the whole string "sally harry" to the mapper
> function. I changed this to apply mappings wordwise.
>
> The "exclude_paths" option is very helpful but not documented in
> mailer.conf.example. I made only changes to mailer.py itself, so please
> update the documentation.
>
> - Servatius
>
>
> Index: mailer.py
> ===================================================================
> --- mailer.py (revision 20)
> +++ mailer.py (working copy)
> @@ -132,7 +132,7 @@
>
> try:
> truncate_subject = int(
> - self.cfg.get('truncate-subject', group, params))
> + self.cfg.get('truncate_subject', group, params))
> except ValueError:
> truncate_subject = 0
>
> @@ -594,6 +594,7 @@
> added_data=generate_list('A', changelist, paths, True),
> removed_data=generate_list('R', changelist, paths, True),
> modified_data=generate_list('M', changelist, paths, True),
> + show_nonmatching_paths=show_nonmatching_paths,
> other_added_data=other_added_data,
> other_removed_data=other_removed_data,
> other_modified_data=other_modified_data,
> @@ -997,7 +998,7 @@
> # apply any mapper
> mapper = getattr(self.maps, option, None)
> if mapper is not None:
> - value = mapper(value)
> + value = " ".join(map(mapper, value.split()))
>
> return value
>
> @@ -1014,6 +1015,8 @@
> def _prep_maps(self):
> "Rewrite the [maps] options into callables that look up values."
>
> + mapsections = []
> +
> for optname, mapvalue in vars(self.maps).items():
> if mapvalue[:1] == '[':
> # a section is acting as a mapping
> @@ -1027,8 +1030,9 @@
> lambda value,
> sect=getattr(self, sectname): getattr(sect,
> value,
> value))
> - # remove the mapping section from consideration as a group
> - self._groups.remove(sectname)
> + # mark for removal when all optnames are done
> + if sectname not in mapsections:
> + mapsections.append(sectname)
>
> # elif test for other mapper types. possible examples:
> # dbm:filename.db
> @@ -1039,6 +1043,11 @@
> else:
> raise UnknownMappingSpec(mapvalue)
>
> + # remove each mapping section from consideration as a group
> + for sectname in mapsections:
> + self._groups.remove(sectname)
> +
> +
> def _prep_groups(self, repos):
> self._group_re = [ ]
>
>
> ------------------------------------------------------------------------
> Servatius Brandt Phone: +49 89 636-41504
> Fujitsu Siemens Computers Fax: +49 89 636-48716
> EP SW AD C++ Email: Servatius.Brandt@fujitsu-siemens.com
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
> For additional commands, e-mail: dev-help@subversion.tigris.org

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Fri Jun 24 19:18:51 2005

This is an archived mail posted to the Subversion Dev mailing list.