Filter Taskwarrior:如何找到依赖于特定任务的任务?

Filter Taskwarrior:如何找到依赖于特定任务的任务?,filter,taskwarrior,Filter,Taskwarrior,我如何在不阅读所有任务信息的情况下找出哪些任务依赖于特定任务 繁殖 系统 版本 $ task --version 2.5.1 .taskrc # Taskwarrior program configuration file. # Files data.location=~/.task alias.cal=calendar rc.date.iso=Y-M-D default.command=ready journal.info=no rc.regex=on 以下是我为测试目的创建的任务:

我如何在不阅读所有任务信息的情况下找出哪些任务依赖于特定任务

繁殖 系统 版本

$ task --version
2.5.1
.taskrc

# Taskwarrior program configuration file.

# Files
data.location=~/.task

alias.cal=calendar
rc.date.iso=Y-M-D

default.command=ready
journal.info=no
rc.regex=on
以下是我为测试目的创建的任务:

$ task list

ID Age  Description                           Urg 
 1 2min Something to do                          0
 2 1min first do this                            0
 3 1min do this whenever you feel like it        0

3 tasks
创建从任务1到任务2的依赖关系:

目标 现在我想找到依赖于task#2的task,它应该是task#1

审判 不幸的是,这不会导致任何匹配:

$ task list depends:2
No matches.
建议? 你将如何处理这个问题?
通过脚本解析taskwarrior输出看起来有点过分。

您可以使用此taskwarrior钩子脚本向任务添加“块”属性:

您可以使用此taskwarrior钩子脚本添加“块”任务的属性:

您有正确的命令,但实际遇到了一个问题:
depends
属性不适用于“short id”

如果改用UUID,它将起作用。使用
task\u uuid
将id解析为uuid

$task--版本
2.5.1
#创建任务
$task rc.data.location:添加--要做的事情
$task rc.data.location:添加--首先执行此操作
$task rc.data.location:add--随时都可以这样做
$task rc.data.location:列表
身份证年龄描述
1-要做的事1.8
2-首先执行此操作1.8
3-只要你愿意就这样做1.8
3项任务
#设置依赖项
$task rc.data.location:1修改依赖项:2
修改任务1“要做的事情”。
修改了1个任务。
#使用depends:UUID进行查询
$task rc.data.location:list“依赖:$(task rc.data.location:\u get 2.uuid)”
身份证年龄描述
1-D要做的事情-3.2
1任务
#使用depends:SHORT-ID进行查询
#尽管有文档记录,但这不起作用。可能是个虫子
$task rc.data.location:list“依赖:$(task rc.data.location:\u get 2.id)”
没有火柴。
通过试用进行小范围修正,以查找被阻止的任务 没有
blocked
属性,您正在使用
ready
报告

$任务被阻止:2
[任务就绪(已阻止:2)]
ready
报告将过滤掉我们正在寻找的内容,
blocked
报告就是我们需要的。要取消对此的标记,这些只是有用的默认报告,它们在
task all
的顶部有预设的过滤器

$ task show filter | grep -e 'blocked' -e 'ready'                                                                                                                                                                                                                                             
report.blocked.filter   status:pending +BLOCKED
report.ready.filter     +READY
report.unblocked.filter status:pending -BLOCKED
被阻止的任务将具有虚拟标记
+被阻止
,该标记与
+就绪
互斥

blocked
属性不存在,请使用
task\u列
显示可用属性(例如
取决于
)。不幸的是,CLI解析器可能正试图应用过滤器
blocked:2
,结果忽略了它。对于您的工作流,有用的命令是
task blocked“depends:$(task\u get 2.uuid)”
。建议编写shell函数以使其更易于使用:

#!/bin/bash
# Untested but gets the point across
function task_blocked {
  blocker=$1
  shift
  task blocked depends:$(task _get ${blocker}.uuid) "$@"
}

# Find tasks of project "foo" that are blocked on task 2
task_blocked 2 project:foo
# What about other project that is also impacted
task_blocked 2 project:bar

您使用了正确的命令,但实际遇到了一个问题:
depends
属性不适用于“short id”

如果改用UUID,它将起作用。使用
task\u uuid
将id解析为uuid

$task--版本
2.5.1
#创建任务
$task rc.data.location:添加--要做的事情
$task rc.data.location:添加--首先执行此操作
$task rc.data.location:add--随时都可以这样做
$task rc.data.location:列表
身份证年龄描述
1-要做的事1.8
2-首先执行此操作1.8
3-只要你愿意就这样做1.8
3项任务
#设置依赖项
$task rc.data.location:1修改依赖项:2
修改任务1“要做的事情”。
修改了1个任务。
#使用depends:UUID进行查询
$task rc.data.location:list“依赖:$(task rc.data.location:\u get 2.uuid)”
身份证年龄描述
1-D要做的事情-3.2
1任务
#使用depends:SHORT-ID进行查询
#尽管有文档记录,但这不起作用。可能是个虫子
$task rc.data.location:list“依赖:$(task rc.data.location:\u get 2.id)”
没有火柴。
通过试用进行小范围修正,以查找被阻止的任务 没有
blocked
属性,您正在使用
ready
报告

$任务被阻止:2
[任务就绪(已阻止:2)]
ready
报告将过滤掉我们正在寻找的内容,
blocked
报告就是我们需要的。要取消对此的标记,这些只是有用的默认报告,它们在
task all
的顶部有预设的过滤器

$ task show filter | grep -e 'blocked' -e 'ready'                                                                                                                                                                                                                                             
report.blocked.filter   status:pending +BLOCKED
report.ready.filter     +READY
report.unblocked.filter status:pending -BLOCKED
被阻止的任务将具有虚拟标记
+被阻止
,该标记与
+就绪
互斥

blocked
属性不存在,请使用
task\u列
显示可用属性(例如
取决于
)。不幸的是,CLI解析器可能正试图应用过滤器
blocked:2
,结果忽略了它。对于您的工作流,有用的命令是
task blocked“depends:$(task\u get 2.uuid)”
。建议编写shell函数以使其更易于使用:

#!/bin/bash
# Untested but gets the point across
function task_blocked {
  blocker=$1
  shift
  task blocked depends:$(task _get ${blocker}.uuid) "$@"
}

# Find tasks of project "foo" that are blocked on task 2
task_blocked 2 project:foo
# What about other project that is also impacted
task_blocked 2 project:bar

谢谢,这是我做的,但是对于我想要完成的事情来说,这似乎太复杂了。我设法使用任务主题来追踪我必须追踪的依赖项。谢谢,我完成了这项工作,但对于我想要完成的事情来说,它似乎太复杂了。我设法使用任务主题来追踪我必须追踪的依赖项。哇,非常感谢!这只是一个非常好的解决方法。虽然我不知怎么地放弃了taskwarrior,但我想再换一次,它很好地避开了你的路。哇,非常感谢!这只是一个非常好的解决方法。虽然我不知怎么地放弃了taskwarrior,但我想再换一次,它很好地避开了你的路。