This task originally focused narrowly on generated code.
Recently, changesets in Differential have "attributes". There is a large set of behaviors which attributes should expand to handle. Generally, "attributes" mean that arc can specify these behaviors per-changeset with client-side rules, and Differential/Diffusion can optionally also specify these behaviors with rules.
- Generated Code: See PHI64. arc should be able to mark arbitrary changesets as "generated" so they are folded at display time.
- Third-Party Code: See PHI1007. This is exactly the same as "generated" code, it just should say "This is third party code..." instead of "This is generated code...".
- Context: See PHI675. By default, arc uploads files with full context. There are several levels of complexity here, but one desirable outcome is likely to let arc selectively send large files with less context (i.e., produce a low-context diff if a change includes a couple of lines in a 10MB text file).
- Tab Widths: See T2495. arc could have rules to say "this file uses 17-space tabstops".
- Syntax Highlighting: arc could have rules to say "by default, highlight this file as though it were python source code".
- Encoding: arc could have rules to say "by default, render this file as encoded with Shift-JIS".
- Whitespace: If whitespace options survive PHI723, arc could have rules to say "show / don't show whitespace changes for this file".
- "Don't Hide this Deleted File": See PHI985, where an install would like Differential to show deleted files by default. Although I don't think this use case is very marginal, it might be reasonable to have an "always show this changeset" flag that's stronger than other behaviors like the "generated" attribute and the default behavior for deleted files. You could then configure arc to set this flag on every changeset if you want "always show deleted files" as a behavior.