Commit graph

62 commits

Author SHA1 Message Date
Paul Beckingham
88ed4d0035 TDB2: Removed obsolete method 2016-01-09 22:33:06 -05:00
Paul Beckingham
641d232dea Copyright: Updated to 2016 2015-12-31 15:06:43 -05:00
Wilhelm Schuermann
6dc30a9a1a TDB2: Move gc() processing to TF2::load_tasks()
Reduce the amount of copies necessary for TDB2::gc() by moving the GC
processing to the Task object source - TF2::load_tasks().

This entangles TDB2 and TF2 more than previously, but leads to huge
performance benefits:
 - "next"   performance test down 21%
 - "list"   performance test down 11%
 - "all"    performance test down  4%
 - "export" performance test down  9%

The "gc" measurement is down 96% for all performance tests.  This is a
result of moving the actual processing into TF2::load_gc() and not
measuring the time taken by that function as "gc" time.
2015-11-09 19:20:57 +01:00
Wilhelm Schuermann
41843d77b0 TDB2: Use efficient data structures for lookup
- Leads to 1-3% improvement across all performance tests.
- _I2U could very likely be further optimized by using a sparse vector,
  or handling the edge cases of this approach ourselves.
2015-11-04 07:52:19 +01:00
Tomas Babej
22368b9a40 Revive TDB2::has and TF2::has methods
This reverts commit fa920f02aa. Methods
found their usage after all.
2015-10-29 20:51:45 -04:00
Paul Beckingham
fa920f02aa TDB2: Removed unused ::has methods 2015-10-28 12:16:46 -04:00
Paul Beckingham
a82558064b Cleanup: Prep for '-Wextra' 2015-10-16 16:27:05 -04:00
Paul Beckingham
e2f504e686 Context: No longer calls Context methods while dtor is running. 2015-09-25 07:57:43 -04:00
Wilhelm Schuermann
4fb9307be5 TDB2: Improve TF2::get(uuid, task) performance
- Improves "task import" performance test on test machine further from
  13s to 1.9s.
- Active only during "task import".  Might be worth using during other
  mass lookups like "task sync", or could even be a good default.
2015-09-22 18:32:03 +02:00
Paul Beckingham
ada6c24789 Virtual Tag: Undocumented, experimental support for 'LATEST' 2015-08-31 12:59:44 -04:00
Paul Beckingham
3e043291f0 Cleanup: Combined File, Path and Directory into FS
- The three objects are related and always travel together, so they are now
  combined.
2015-05-25 10:11:41 -04:00
Tomas Babej
f0cc0151b7 TDB2: Explicitly mark updates done as addition to optimize performance
We are able to avoid loading the completed.data in certain scenarios.
2015-02-28 16:54:09 -05:00
Paul Beckingham
1cfdfbae52 Hooks
- Removed the ability for hooks to add tasks, or modify tasks that are outside
  the context of the current event. This makes hooks a local mechanism that
  operates only on local changes. Modifications/additions coming in via sync
  command are not processed by hooks.
2015-01-31 17:47:58 -05:00
Paul Beckingham
b7ad091d00 Updated copyright to 2015 2015-01-01 00:00:41 -05:00
Paul Beckingham
bfc6e38851 Hooks
- ::onExit now provides a set of all changeѕ tasks to the hook script, in
  read-only form.
2014-09-14 17:04:12 -04:00
Paul Beckingham
7b617a7b6e TDB2
- Consolidated most of the processing in ::add and ::modify into ::update.
2014-09-14 15:25:37 -04:00
Paul Beckingham
1058f045b0 TDB2
- Added ::has methods to determine whether a UUID is known.
2014-09-10 22:54:17 -04:00
Paul Beckingham
6faf6bb678 TDB2
- Now updates the task ID of any new task, therefore avoiding off-by-one
  errors that occur when code calls TDB2::next_id.
2014-08-16 14:20:00 -04:00
Paul Beckingham
523dce8f32 Code Cleanup
- Standardized headers.
2014-02-01 14:33:37 -05:00
Paul Beckingham
8b736934d7 Code Cleanup
- Removed deprecated 'push', 'pull' and 'merge' commands.
2014-01-18 19:12:48 -05:00
Paul Beckingham
8ed92ca498 Copyright
- Bumped copyright to 2014, ready for release.
2014-01-01 13:32:22 -05:00
Paul Beckingham
7a6c534636 Code Cleanup
- Restructured 'undo' code to make backlog rollback more readily implementable.
2013-10-06 11:02:25 -04:00
Paul Beckingham
773b55d374 Code Cleanup
- Removed L10N define.  It served its purpose.
2013-04-07 23:50:51 -04:00
Paul Beckingham
8af0a7f3ba Merge branch 'master' into 2.3.0
Conflicts:
	AUTHORS
	CMakeLists.txt
	INSTALL
	NEWS
	cmake.h.in
	doc/man/task-faq.5.in
	package-config/osx/README
	scripts/utils/verify_l10n
	src/API.h
	src/Config.cpp
	src/Context.cpp
	src/DOM.cpp
	src/Hooks.cpp
	src/TransportShell.h
	src/commands/CmdDiagnostics.cpp
	src/commands/CmdShell.cpp
	src/commands/CmdVersion.cpp
	src/en-US.h
	src/shell/Readline.h
	src/wcwidth6.cpp
	test/CMakeLists.txt
	test/color.uda.t
	test/duration.t.cpp
	test/hook.on-launch.t
	test/template.t
	test/uuid.t
2013-04-07 17:56:59 -04:00
Paul Beckingham
1dccd29643 Copyright 2013
- Updated copyright notices.
2013-03-04 17:47:12 -05:00
Paul Beckingham
4a6b9e6104 TDB2
- Added an option to bypass backlog recording to TDB2::add and TDB2::modify.
  This is required when handling backlog data, to prevent perpetual syncing.
2012-10-08 17:45:43 -04:00
Paul Beckingham
98d9a367f3 Sync
- Corrected handling of backlog.data after a synch, using TF2::clear_tasks.
2012-10-08 17:43:14 -04:00
Paul Beckingham
337e5557b3 Backlog
- Added backlog handling for add/modify.
2012-10-01 23:30:57 -04:00
Paul Beckingham
79e2c591f1 Bug #1022
- 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.
2012-07-09 01:29:51 -04:00
Paul Beckingham
d59aaa6427 TDB2
- Pushed task lookup by ID and UUID down a level from TDB2 to TF2.  This allows
  reuse at the low level for things like proper dependency evaluation.
2012-07-08 16:04:34 -04:00
Paul Beckingham
cd552231e9 Performance
- Eliminated the 'contents' layer, which was never used to the degree
  anticipated.  This reduces memory footprint significantly.
2012-04-27 01:49:26 -04:00
Paul Beckingham
39998d5cc5 Bug #932
- Fixed bug #932, which fixed change propagation for recurring tasks (thanks to
  Jennifer Cormier).
- Added unit tests, corrected some.
2012-02-20 17:25:31 -05:00
Paul Beckingham
c092b027a6 Code Cleanup
- Removed 'synch_key' tests and file I/O.  Soon, soon...
2012-01-29 17:42:52 -05:00
Paul Beckingham
a262d41828 Backlog
- 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.
2012-01-03 00:55:20 -05:00
Paul Beckingham
6580095002 Copyright
- Year change.
2012-01-02 23:32:10 -05:00
Paul Beckingham
e5303a2180 Deletion
- An already-completed task may now also be deleted.
- Added unit tests.
2011-10-23 23:49:25 -04:00
Federico Hernandez
8116c6a103 License
- moving task from GPL to MIT license
  top level src directory
2011-10-08 00:04:01 +02:00
Paul Beckingham
87d940c46d Bugs #822, #845
- Fixed bug #822, #845, which generated incorrect IDs (thanks to Matt Kraai and
  Michelle Crane).
2011-09-29 00:00:36 -04:00
Paul Beckingham
195c7d5142 TDB2
- Added TDB2::all_tasks as a helper function to load and combine tasks
  from pending and completed.
2011-09-05 10:45:58 -04:00
Paul Beckingham
eb992d3523 TDB2
- Implemented TDB2::gc.  Probably with a few really nasty bugs, to
  provide nice entertainment for the rest of the weekend.
2011-09-03 12:56:26 -04:00
Paul Beckingham
3d1a5acafb TDB2
- Implemented high-level TDB2::id and TDB2:uuid that delegates to TF2.
- Fixed a bug in TDB2::modify that failed to properly overwrite a task.
2011-09-03 11:17:12 -04:00
Paul Beckingham
63eb22fc7e TDB2 Merge
- Migrated TDB::merge to TDB2::merge.
- Removed obsoleted code from TDB.
- Modified unit tests for merge to use export instead of export.csv.
2011-09-01 23:48:35 -04:00
Paul Beckingham
b09351c517 Task Validation
- 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.
2011-08-31 01:34:59 -04:00
Paul Beckingham
c1f33a23d3 Undo
- 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.
2011-08-30 00:42:04 -04:00
Paul Beckingham
0f627bd44e TDB2
- Added TDB2::clear and TF2::clear methods.
2011-08-28 08:13:41 -04:00
Paul Beckingham
e127f33e3a TDB2::siblings
- TDB2 helper function to locate sibling tasks.
2011-08-26 01:58:07 -04:00
Paul Beckingham
60ca284e3a TDB2::get
- Implemented high-level accessors for tasks, by ID and UUID.  This
  permits full DOM implementation.
2011-08-25 22:13:47 -04:00
Paul Beckingham
fb6dc5058f TDB2
- Full implementation of TDB2::add, which includes pending/completed, undo
  and backlog.
- Removed obsolete TF2::commitUndo, which is no longer necessary.
- Added File::truncate method, to allow a TDB2 shortcut.
2011-08-25 00:29:54 -04:00
Paul Beckingham
1dc2257156 TDB2 Conversion
- Migrated several commands over to use TDB2.  Have to start somewhere.
2011-08-23 00:47:46 -04:00
Paul Beckingham
e573801517 TDB2 - Diagnostics
- Added a diagnostic dump of the TDB2 state in debug mode.
- Added a call to TDB2::dump at the start of TDB2::commit.
- Removed unnecessary calls to TDB2::dump.
2011-08-22 23:04:38 -04:00