01_user_documentation:06_graph:05_derivation:02_transaction
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| 01_user_documentation:06_graph:05_derivation:02_transaction [2025/05/28 13:55] – sophiewachtel | 01_user_documentation:06_graph:05_derivation:02_transaction [2025/11/03 05:34] (current) – gaetan | ||
|---|---|---|---|
| Line 4: | Line 4: | ||
| Not sure if this should be a section or a " | Not sure if this should be a section or a " | ||
| - | Transactions act as buffers for operations on the project graph. Each transaction maintains a set of **queues**, where each queue holds a list of modifications to be applied to the graph. | + | Transactions act as buffers for operations on the project graph. Each transaction maintains a set of **queues**, where each queue holds a list of modifications to be applied to the graph. When any **RGG method** is executed, GroIMP automatically creates a transaction if one does not already exist. All subsequent graph modifications during that operation are pushed into the current transaction' |
| - | When any **RGG method** is executed, GroIMP automatically creates a transaction if one does not already exist. All subsequent graph modifications during that operation are pushed into the current transaction' | + | ====== |
| - | + | ||
| - | + | ||
| - | All transactions are **logged** in a transaction cache, which allows the following: | + | |
| - | + | ||
| - | * **Undo** — You can traverse the log in reverse to undo previous operations by reversing the transactions. | + | |
| - | * **Redo** — Undone transactions can be reapplied, restoring the graph to its former state. | + | |
| - | + | ||
| - | + | ||
| - | Once a new transaction is initiated (e.g. by): | + | |
| - | + | ||
| - | * Running a new RGG function, | + | |
| - | * Modifying an object through the attribute editor, | + | |
| - | * Adding an object via the menu, | + | |
| - | + | ||
| - | the previous redo history is **discarded**. That means GroIMP does **not** support branching histories like version control systems. | + | |
| - | + | ||
| - | **Example of an unsupported sequence: | + | |
| - | + | ||
| - | - Undo → Apply new operation → Redo ❌ | + | |
| - | + | ||
| - | After a new operation is applied following an undo, the redo path is no longer available. | + | |
| - | + | ||
| - | ====== ====== | + | |
| {{namespace>: | {{namespace>: | ||
01_user_documentation/06_graph/05_derivation/02_transaction.1748433314.txt.gz · Last modified: 2025/05/28 13:55 by sophiewachtel
