HomePhorge

Improve detection of no-op edge edits in ApplicationTransactions

Description

Improve detection of no-op edge edits in ApplicationTransactions

Summary:
Ref T4379. When you add a redundant edge, we currently compare the values strictly, using ===. However, the old and new versions of the edge have slightly different member data, because one has been synthetically constructed and one has been read from the database.

Instead, compare only the things we actually care about:

  1. Were any destintations added or removed?
  2. Was any edge data changed?

If the answer to both questions is "no", consider the update a no-op.

Test Plan: In the next diff, I'm making project members use the EDGE transaction type. Before this change, adding an existing project member would generate a transaction with no changes. Now, it is correctly detected as a no-op, while normal transactions continue to work properly.

Reviewers: btrahan

Reviewed By: btrahan

CC: aran

Maniphest Tasks: T4379

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

Details

Provenance
epriestleyAuthored on Feb 10 2014, 2:29 PM
themackabuPushed on Mar 25 2025, 8:07 PM
Parents
rP21de2b1a0c7c: Make Projects a PhabricatorSubscribableInterface, but with restricted defaults
Branches
Unknown
Tags
Unknown

Event Timeline