Page MenuHomePhabricator

Make Differential email subject more configurable.

Authored by talshiri on May 31 2014, 2:41 AM.
Referenced Files
Unknown Object (File)
Sun, May 28, 2:31 AM
Unknown Object (File)
Sat, May 27, 9:25 PM
Unknown Object (File)
Fri, May 26, 3:01 AM
Unknown Object (File)
Thu, May 18, 1:44 AM
Unknown Object (File)
Thu, May 18, 12:33 AM
Unknown Object (File)
Thu, May 18, 12:21 AM
Unknown Object (File)
Wed, May 17, 12:45 PM
Unknown Object (File)
Sun, May 14, 7:17 AM
"Like" token, awarded by kaya.



We wanted a bit more information in our differential email subjects, so we've made it parameterized.
Moving forward, it may make sense to merge subject-prefix and subject-vary into this, but I was hesitant of introducing that large
of a change before discussing this further.

Test Plan

tested locally

Diff Detail

rP Phabricator
Lint Passed
Tests Passed
Build Status
Buildable 2189
Build 2193: [Placeholder Plan] Wait for 30 Seconds

Event Timeline

talshiri retitled this revision from to Make Differential email subject more configurable..
talshiri updated this object.
talshiri edited the test plan for this revision. (Show Details)
talshiri added a reviewer: epriestley.

Offhand, here are some issues with this:

  • Repository may be empty (e.g., copy/paste an arbitrary diff).
  • Branch may be empty (e.g., arc diff --raw) or meaningless (SVN, detached HEAD).
  • Branch is the branch the diff is on, not the upstream branch it was branched from, so in normal/suggested usage it's meaningless (e.g., the branch name will be something like headers, which is redundant with the subject).
  • This will break threading in some clients by altering "Thread-Topic" during the thread.
  • This will break threading in some clients by altering the subject during the thread.
  • This will break threading in some clients by altering sections of the subject not contained inside square brackets during the thread, under some configurations.
  • This does not respect the "Vary Subjects" mail configuration setting, and will thus break some clients which would otherwise work properly.

Overall, I'm really hesitant about this. We also do "multiplexing" in the Editor right now (which is really "demultiplexing") and I'd like to move that to the daemon queue, but this makes it more difficult.

We also haven't had other requests for this.

I think your best bet might be to patch this locally. I think you only need to adjust $subject ('Thread-Topic' is not normally visible to users):

$branch = nonempty($object->getActiveDiff()->getBranch(), '-');
$repository = $object->getRepository() ? $object->getRepository()->getName() : '-';
$subject = "[{$repository}/{$branch}] {$subject}";

Not ideal, but probably not really a whole ton of work to keep in sync with the upstream.


This uses {$...}, but the actual parser uses ${...}.


Particularly, this may fatal.

talshiri edited edge metadata.

Don't modify Topic
Don't die if no repo/branch are defined

Moved things to getMailSubjectPrefix, which is slightly more useful and doesn't add an extra variable.

  • if repo name doesn't exist, use the basename of the source path
epriestley edited edge metadata.

Just pushing this out of my queue, see T5244. I have no plans to bring these changes upstream.

This revision now requires changes to proceed.Nov 23 2015, 3:39 PM