Opened 11 years ago

#454 new misbehavior

Allow to combine multiple transactions into one undo-step

Reported by: westram Owned by: devel
Priority: normal Milestone:
Component: Library (DB) Version: SVN
Keywords: Cc:

Description

Motivation:

  • tree-display operations (e.g. branch-scaling) result in hundreds of transactions, rendering undo impossible
  • ARB often uses "enclosing transactions" where the main reason for the transaction is to provide a single undo-step (e.g. in fast-aligner)
    • such transactions contradict our target of a more fine-granular DB access

Solution:

  • define different undo-collect-states:
    1. normal (traditional way to collect undos)
    2. combined-start (next transaction will be start of combined undo)
    3. combined-continued (2. will switch to 3. after first transaction)
  • prohibit removing undo-steps from undo-stack (in collect-states 2.+3.)
  • add a method to combine multiple consecutive undo-entries (in case of repeated changes of the same DB entries, this will also save memory)
  • whenever "finalizing" the top undo-entry (while closing transaction), combine it with the entry below.

Possible problems:

  • calling GB_undo in state 3 possible?

Change History (0)

Note: See TracTickets for help on using tickets.