Commit graph

153 commits

Author SHA1 Message Date
Wilhelm Schuermann
8f8ad813cd Task: Remove std::map inheritance, clean up interface
- Make the Task object's interface more explicit by removing the
  std::map inheritance.
- Using this more explicit interface, remove unneeded ctors in order to
  allow the compiler to "Do The Right Thing"(tm).
  This leads to a performance improvement of 12% in the "add"
  performance test, and 7% for "import".
2015-11-04 20:33:52 +01:00
Paul Beckingham
d23d0fafb7 Revert "TDB2: Converted from strtoul to std::stoul"
This reverts commit bdfd22ad88.
2015-11-02 18:41:57 -05:00
Paul Beckingham
bdfd22ad88 TDB2: Converted from strtoul to std::stoul 2015-11-01 21:31:10 -05:00
Paul Beckingham
5c8b7148b4 Task: Moved include to top of list, per flint++ recommendation 2015-11-01 19:59:10 -05: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
fb280edbc2 TND2: Migrated from Date to ISO8601d 2015-10-03 15:27:23 -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
Tomas Babej
ab40fae67e TDB2: Only ever update task if it differs from original 2015-09-05 17:20:20 -04:00
Paul Beckingham
ada6c24789 Virtual Tag: Undocumented, experimental support for 'LATEST' 2015-08-31 12:59:44 -04:00
Paul Beckingham
b1839adf97 TW-1664: Notify of waiting→pending promotion
- Thanks to Daniel Shahaf.
2015-08-23 16:59:22 -04:00
Paul Beckingham
2a621a4367 TW-1636: UUID with numeric-only first segment is not parsed properly
- Switched Nibbler::getUUID to Nibbler::getPartialUUID, which caused partial
  UUID mathcing to fail sometimes.
- Changed precedence to search for UUID before ID, which solves the numeric
  UUID problem.
2015-08-08 00:49:54 -04:00
Paul Beckingham
78170e0fd4 Signal: Removed useless attempt to trap SIGKILL 2015-08-04 22:31:01 -04:00
Paul Beckingham
758df84539 Context: Now obeys command DNA
- Applying a context filter is now performed only when a command requests it.
2015-08-02 10:08:04 -04:00
Wilhelm Schuermann
e95167a984 Plumbing: Use variadic templates for format()
- Use variadic templates, with a slight twist for properly supporting
  Taskwarrior's l10n strings.
- Adjust code that relied on implicit type conversion which led to
  problems with template instantiation.
- Move some functionality out of format() in order to keep it generic.
2015-06-07 20:54:02 +02:00
Paul Beckingham
e8d04bdce6 C++11: N1984 auto 2015-05-24 13:36:26 -04:00
Paul Beckingham
e74c6963a9 C++11: Cleaned up program framework with range-based for 2015-05-11 17:50:53 -04:00
Paul Beckingham
c346cf9395 Portability: Use fcntl instead of flock
- POSIX file locking mechanism, eliminating platform-specific code.
2015-05-02 11:47:39 -04:00
Wilhelm Schuermann
c830b4b669 TW-1287: default.* values applied to synced tasks
- Tasks that arrive through "task sync" no longer have defaults applied
  to them.
2015-04-02 13:39:20 +02:00
Wilhelm Schuermann
7a64c19641 Resolve most compiler warnings 2015-03-29 22:05:38 +02:00
Wilhelm Schuermann
9e6c6ecb93 TW-1583: Invalid ID displayed after done/delete
- Fix completed/deleted tasks getting an ID when GC is going to be run,
  previously resulting in invalid IDs being displayed in reports that
  show non-pending tasks.

A side effect of this fix is that it is sometimes not possible to
filter by ID when running a report right after calling done/delete.
This problem existed before; this change makes it happen on the first
report instead of the second, so it is more consistently broken.
Commands that modify tasks are not affected, making this an annoying
yet harmless defect.
2015-03-28 10:36:58 +01:00
Wilhelm Schuermann
d2e6c90446 TW-1581: Wrong urgency after done/delete command
- TDB2::dependency_scan() is run before GC, so we need to check both
  tasks in a dependency chain for their status before setting the
  blocking/blocked flag to true.
2015-03-26 18:43:58 +01:00
Wilhelm Schuermann
4f75652ccb TW-1580: "modified" attribute not updated
- Make all local modifications update the "modified" attribute.
- As per design, the user cannot overwrite this attribute; neither
  can hooks.
2015-03-23 15:55:47 +01:00
Paul Beckingham
96185cbd61 Merge branch '2.4.2' of ssh://git.tasktools.org/tm/task into 2.4.2 2015-03-02 16:17:09 -05:00
Paul Beckingham
7665d13d42 Duration
- Removed legacy duration value mapping, which causes much performance
  degradation.
2015-03-02 16:16:39 -05:00
Paul Beckingham
01feec568b Merge branch '2.4.2' of ssh://git.tasktools.org/tm/task into 2.4.2 2015-03-02 09:35:45 -05:00
Paul Beckingham
104aeb3905 TDB2
- Commented and reorganized for threading.
2015-03-02 09:33:57 -05: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
547d9edb55 TW-1484
- TW-1484 The 'history' and 'ghistory' reports do not obey rc.color.label.
2015-01-10 15:49:42 -05:00
Paul Beckingham
b7ad091d00 Updated copyright to 2015 2015-01-01 00:00:41 -05:00
Paul Beckingham
23e2719e1a TDB2
- Restored blank line for clarity, now that duplicate debug messages are allowed.
2014-10-19 01:31:03 -04:00
Paul Beckingham
1a5fb437a5 Task
- Upgrades legacy recur values.
2014-10-07 00:24:03 -04: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
d0fd3bac4a TDB2
- ::update must call validate(false) to ensure metadata exists for the 'modify'
  case, then later call validate() to add defaults for the 'add' case.
2014-09-14 16:36:32 -04:00
Paul Beckingham
ab72cdad4d Hooks
- Stubbed new ::onAdd and ::onModify interfaces.
2014-09-14 15:42:47 -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
21be0e3e94 TDB2
- Combined add and modify operations in ::add, in case the hook processing
  generates modifications.
2014-09-14 15:07:40 -04:00
Paul Beckingham
ac833c183a TDB2
- TDB2::add no longer assumes that adding one task results in only one task
  begin added, as hook processing may expand the set.
2014-09-14 14:56:54 -04:00
Paul Beckingham
f3c035d2b8 TDB2
- Removed hook processing that is now in the wrong place.
2014-09-14 14:20:30 -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
05ba58c56f TDB2
- Disabled hook processing while processing hooks. This is because both ::add
  and ::modify can each add or modify tasks, and there is the potential for
  infinite recursion.
2014-09-09 23:37:29 -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
6209529aaa TDB2
- In debug mode, if any TF2 objects are dirty, they speak up.
2014-08-09 20:26:51 -04:00
Paul Beckingham
0825ce3c56 TDB2
- Updated ID:UUID mapping on ::add, which is the first part of the fix for
  TW-1389.
2014-08-06 10:45:15 -04:00
Paul Beckingham
68436d0d50 TDB2
- Integrated hooks to TF2::add_task and TF2::modify_task.
2014-05-13 22:06:19 -04:00
Paul Beckingham
d52eebaa66 Bug TW-1288
- TW-1288 Added missing locking for task modifications (thanks to Kosta H,
          Ralph Bean, Adam Coddington).
2014-03-11 23:28:57 -04:00
Jochen Sprickerhof
4ae8431f96 Bug TD-45
- TD-45 Fix preprocessor define.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2014-03-06 18:26:39 -05:00