Homec4science

Implement PhabricatorApplicationTransactionInterface on ManiphestTask

Authored by epriestley <git@epriestley.com> on Jul 18 2014, 00:40.

Description

Implement PhabricatorApplicationTransactionInterface on ManiphestTask

Summary:
Ref T5245. A very long time ago I had this terrible idea that we'd let objects react to edges being added and insert transactions in response.

This turned out to be a clearly bad idea very quickly, for like 15 different reasons. A big issue is that it inverts the responsibilities of editors. It's also just clumsy and messy.

We now have PhabricatorApplicationTransactionInterface instead, which mostly provides a cleaner way to deal with this.

Implement PhabricatorApplicationTransactionInterface, implicitly moving all the attach actions (task/task, task/revision, task/commit, task/mock) to proper edge transactions.

The cost of this is that the inverse edges don't write transactions -- if you attach an object to another object, only the object you were acting on posts a transaction record. This is sort of buggy anyway already. I'll fix this in the next diff.

Test Plan: Attached tasks, revisions and mocks to a task, then detached them.

Reviewers: chad, btrahan, joshuaspence

Reviewed By: joshuaspence

Subscribers: epriestley

Maniphest Tasks: T5245

Differential Revision: https://secure.phabricator.com/D9838

Details

Committed
epriestley <git@epriestley.com>Jul 18 2014, 00:40
Pushed
aubortJan 31 2017, 17:16
Parents
rPH7afb770cbe07: Make edge types modular
Branches
Unknown
Tags
Unknown

Event Timeline

epriestley <git@epriestley.com> committed rPHace1feb70220: Implement PhabricatorApplicationTransactionInterface on ManiphestTask (authored by epriestley <git@epriestley.com>).Jul 18 2014, 00:40