Fixed the bug where the sort order of transactions with equal timestamps
was not stable, i.e. due to the lack of a total order, different merges
produced different sortings and hence messed up transactions which
have already been merged.
Added unit test.
Implemented a quick fix for the issue with a broken branch-off algorithm
which disregarded the transaction boundaries in the undo.data file.
Added unit test.
Implemented a quick fix for the issue with a broken branch-off algorithm
which disregarded the transaction boundaries in the undo.data file.
- Fixed bug #1022, where dependencies were note released when a blocking task
was completed (thanks to Arkady Grudzinsky).
- The Task object now caches ::is_blocked and ::is_blocking Booleans that are
determined on pending.data load.
- Simplified and sped up color rule processing using cached values, reducing
the number of map lookups, and removed loop invariants when the rules are
not defined.
- Simplified urgency calculations given the cached values for blocked/blocking.
- On load, pending.data is scanned for accurate blocked/blocking status
determination.
- Obsoleted and removed complex single-task dependency calculations.
- Sped up 'nag' processing by using cached values..
- Modified the 'show' command to consider color.blocking to be valid.
- Added default config value for color.blocking, and included it in the
precedence list ahead of blocked, as it is more important.
- Updated taskrc.5 man page to include the new color.blocking rule, and its
place in the rule precedence.
- Fixed bug #1023, which applied default.project and default.priority during
modification (thanks to Christoph Lange).
- Added unit tests.
- Added Christoph to the AUTHORS file.
- Added std::string::reserve in high-use locations.
- Used Task::get_date over Task::get where possible.
- Added missing code (bug) for waking up any completed tasks that are freshly
waited.
- Greater use of STL methods for bulk copying.
- Corrected performance measurement. The TDB2::gc requires data to
be loaded first, but load time is measured separately. This resulted
in repeat counting. Now the gc time subtracts any load time that is
accumulated *during* the gc. This is now a fair accounting of the time.
- Removed backlog file processing, which slows down processing. When
2.1 has taskd support, the backlog will be cleared, but until then there
is no point in accumulating transactions.
- Fixed merge, with an egregious hack for now, by creating zero-byte undo.data
file. This goes against the whole TDB2 philosophy, so it is temporary.
- Updated PUNCHLIST.
- Removed old tdb comment from CmdMerge.
- Fixed a bug, or rather a side-effect of more efficient i/o. Now that
a TDB2::GC call does not write out files until the final TDB2::commit,
the GC has the effect of not modifying task IDs based on shuffling tasks
between pending.data and completed.data until the next command. Fixed.
- Implemented the import-yaml.pl external script.
- Added unit tests.
- Fixed problem where the pending tasks were not loaded prior to uuid
verification.
- Fixed a silly bug whereby TDB2::gc, once it loaded the data, wiped the TF2
objects, such that TDB2::commit didn't know there was data to write.
Hmm. Time for a vacation.
- Fixed validation bug whereby recurring child tasks inherited the
parent status ("recurring") instead of the expected "pending".
- Modified 'add' command to code duplicated in Task::validate.
- Cleaned up associated bug.period.t unit test.
- Stubbed the undo implementation in TB2::revert (undo as a name is
already taken), and in the process lose the capability.
- Add detection of <modifications> when running the 'undo' command
and generate an error.
- Corrected maintenance of the _lines vector during TDB2::add_line.
- Implemented TDB2::modify_task undo maintenance.
- Added unit tests for TDB2. Which fail.