857e3aee83def1166646b3cf14c4b37f99fbaa7f
Summary: Ref T2222. Five very small improvements: - I hit this exception and it took a bit to understand which transaction was causing problems. Add an `Exception` subclass which does a better job of making the message debuggable. - The `oldValue` of a transaction may be `null`, legitimately (for example, changing the `repositoryPHID` for a revision from `null` to some valid PHID). Do a check to see if `setOldValue()` has been called, instead of a check for a `null` value. - Add an additional check for the other case (shouldn't have a value, but does). - When we're not generating a value, don't bother calling the code to generate it. The best case scenario is that it has no effect; any effect it might have (changing the value) is always wrong. - Maniphest didn't fall back to the parent correctly when computing this flag, so it got the wrong result for `CustomField` transactions. Test Plan: Resolved the issue I was hitting more easily, made updates to a `null`-valued custom field, and applied other normal sorts of transactions successfully. Reviewers: btrahan Reviewed By: btrahan CC: aran Maniphest Tasks: T4557, T2222 Differential Revision: https://secure.phabricator.com/D8401
Phabricator is an open source collection of web applications which help software companies build better software. Phabricator includes applications for: - reviewing and auditing source code; - hosting and browsing repositories; - assembling a party to venture forth; - tracking bugs; - hiding stuff from coworkers; and - also some other things. You can learn more about the project (and find links to documentation and resources) here: http://phabricator.org/ Phabricator is developed and maintained by Phacility. The first version of Phabricator was originally built at Facebook. LICENSE Phabricator is released under the Apache 2.0 license except as otherwise noted.
Description
Languages
PHP
93.4%
JavaScript
4.1%
CSS
2.4%