append give additional ways to update your Taskwarrior tasks.
undo is there for the errors you catch quickly.
modify early on, and it works. But it’s real easy to make silly mistakes. Time to talk about a
couple extra commands that reduce the impact of little daily blunders.
So let’s say I got a book for work-related learning. I create a task.
$ task add 'Read "Two Scoops of Django"' Created task 201
Oh wait, this a learning task, so I should add the
+learn tag. I’ll use
modify to add the forgotten tag.
$ task 201 modify +learn $ task 201 ls ID Tags Description 201 learn Read "Two Scoops of Django"
So far so good, right? As long as there’s no confusion about what you’re changing,
modify does the right
thing. But a typo? A typo can rewrite your description.
Maybe I’ll add that task to my "WorkSkills" project. What if my fingers forget that the syntax is
It happens. Frequently. Judge me all you want.
$ task 201 modify project WorkSkills $ task 201 ls ID Tags Description 201 learn project WorkSkills
Fortunately I caught it quick, so I can fix my mistake with
task undo reverts the last change you made, and can keep going back through your history one change at a
$ task undo The last modification was made 9/3/2019 Prior Values Current Values description Read "Two Scoops of Django" project WorkSkills entry 2019-09-03 2019-09-03 modified 2019-09-03 2019-09-03 status pending pending tags learn learn uuid 2b9a18c6-e5cd-47e1-a5b1-b1ea9e076369 2b9a18c6-e5cd-47e1-a5b1-b1ea9e076369 The undo command is not reversible. Are you sure you want to revert to the previous state? (yes/no) yes Modified task reverted.
Taskwarrior tells me what values will be affected by an
undo, which I find helpful. Yes, I want to restore
$ task 201 ls ID Tags Description 201 learn Read "Two Scoops of Django"
Whew. All better.
History is a JSON stream in
~/.task/undo.data if you’re curious. I don’t really know how far back it goes,
because I often miss my mistakes until after I made other changes that I’d rather not undo.
My typos tend to happen when I’m on a roll. As a result, I don’t notice them until it’s far too late to
undo. I use
append for quick changes to reduce the risk of a typo making the description unrecognizable.
It behaves the same as
modify for adding and changing properties, but anything interpreted as a description
change gets tacked on the the end of the current description.
Here’s the same project story as before, but with
append instead of
$ task 201 append project WorkSkills $ task 201 ls ID Tags Description 201 learn Read "Two Scoops of Django" project WorkSkills
I still made my mistake, but at least I can find the task by its original description.
But what about bigger changes? Or what about when you change the description and don’t notice until a couple weeks later?
edit command loads the task details into a template, which it sends off to your
$EDITOR. Once written,
Taskwarrior updates the task to reflect changes
✘ characters are just how I show trailing whitespace in Vim with
listchars. Anyways, I added
"WorkSkills" to the "Project" line and fixed the description. There is even a line where I can add an
annotation if I want, but not today. As soon as I save the file and quit my editor, Taskwarrior applies my
$ task 201 ls ID Project Tags Description 201 WorkSkills learn Read "Two Scoops of Django"
I feel better now. I’ve been wanting to mention these commands in the series for a while now. Since February 2018, according to my task list.