My personal patches-in-progress branch of Org. See https://git.tecosaur.net/mirrors/org-mode/compare/main..tec/org-mode:dev.
Find a file
Carsten Dominik c59da3a3dd Add tags matching to clock tables
Adam Elliott writes:

> I have attached a git patch against master that implements a new
> parameter to clock tables, "tags".  This parameter is a tags-query as a
> string and is used to filter the headlines which are consulted when
> building the clock table.
>
> In my search of the archives to see if this feature already existed, I
> found a reference here:
>  http://article.gmane.org/gmane.emacs.orgmode/17304
> suggesting it was difficult.  The patch is not so large, though, so
> perhaps I am missing something.
>
> My rationale in implementing this feature was to keep track of the
> occasional task item that is not billable, yet still makes sense to
> include in the overall project structure.  Of course I could just avoid
> clocking the task item, or manually delete clock lines before generating
> a report, but this feature reduces the chance for error; no doubt there
> are other workflows enabled with this feature as well.  I don't make
> significant use of tags myself, but I know many do.
>
> In order to maintain a sensible report, headlines that don't match the
> tag filter may be included if they have descendants that do.  Any time
> clocked directly on non-matching headlines, however, is excluded.
>
> Specifying even a simple filter noticeably slows down clock table
> generation for non-toy reports, particularly for clock table reports
> with :step.  If there is no filter, though, there is no degradation in
> performance.
>
> Tag filter syntax is the standard one, as described at:
>  http://orgmode.org/manual/Matching-tags-and-properties.html
> Only tags are considered at the moment, although I suspect querying
> against all properties would be possible (if even slower).
>
> Examples:
>
> * development
>  CLOCK: => 1:00
> *** task 1
>    CLOCK: => 1:00
> *** task 2                                              :must:
> ***** task 2a
>      CLOCK: => 1:00
> ***** task 2b                                           :mustnot:
>      CLOCK: => 1:00
>
> Note I am using an unconventional but legal(ish) clock format for
> brevity.  Clock tables are also pruned to only relevant lines.
>
> [1] #+BEGIN: clocktable
> |   | *Total time* | *4:00* |      |      |
> |---+--------------+--------+------+------|
> | 1 | development  | 4:00   |      |      |
> | 2 | task 1       |        | 1:00 |      |
> | 2 | task 2       |        | 2:00 |      |
> | 3 | task 2a      |        |      | 1:00 |
> | 3 | task 2b      |        |      | 1:00 |
>
> [2] #+BEGIN: clocktable :tags "must"
> |   | *Total time* | *2:00* |      |      |
> |---+--------------+--------+------+------|
> | 1 | development  | 2:00   |      |      |
> | 2 | task 2       |        | 2:00 |      |
> | 3 | task 2a      |        |      | 1:00 |
> | 3 | task 2b      |        |      | 1:00 |
>
> [3] #+BEGIN: clocktable :tags "-mustnot"
> |   | *Total time* | *3:00* |      |      |
> |---+--------------+--------+------+------|
> | 1 | development  | 3:00   |      |      |
> | 2 | task 1       |        | 1:00 |      |
> | 2 | task 2       |        | 1:00 |      |
> | 3 | task 2a      |        |      | 1:00 |
>
> [4] #+BEGIN: clocktable :tags "must-mustnot"
> |   | *Total time* | *1:00* |      |      |
> |---+--------------+--------+------+------|
> | 1 | development  | 1:00   |      |      |
> | 2 | task 2       |        | 1:00 |      |
> | 3 | task 2a      |        |      | 1:00 |
>
> [5] #+BEGIN: clocktable :tags "must+mustnot"
> |   | *Total time* | *1:00* |      |      |
> |---+--------------+--------+------+------|
> | 1 | development  | 1:00   |      |      |
> | 2 | task 2       |        | 1:00 |      |
> | 3 | task 2b      |        |      | 1:00 |
>
> As you can see, in examples 2, 4, and 5, the time clocked on
> "development" itself is being removed.  Example 2 illustrates the effect
> of tag inheritance.
>
> Adam
2010-04-23 21:24:19 +02:00
BUGFIXING Intermediate state, I am just trying comiting now. 2008-01-31 16:04:26 +01:00
contrib babel: `org-babel-ref-index-list' now converts trivial lists to scalars 2010-04-21 09:35:13 -06:00
doc Add tags matching to clock tables 2010-04-23 21:24:19 +02:00
EXPERIMENTAL Removed some old, no longer needed files. 2008-12-16 14:08:30 +01:00
lisp Add tags matching to clock tables 2010-04-23 21:24:19 +02:00
ORGWEBPAGE Reflect the removal of the microtype package from the defaults 2010-04-13 08:15:12 +02:00
UTILITIES Add an X11 equivalent to org-mac-idle-seconds. 2009-10-22 15:09:34 +02:00
xemacs Minor patch from Greg Chernov for xemacs/noutline. 2008-04-19 19:07:40 +02:00
.dir-settings.el Add .dir-settings.el file to unify coding styles. 2008-11-20 15:45:22 +01:00
.gitignore Add an X11 equivalent to org-mac-idle-seconds. 2009-10-22 15:09:34 +02:00
ChangeLog Better BATCH compile command 2010-04-18 16:49:58 +02:00
Makefile Better BATCH compile command 2010-04-18 16:49:58 +02:00
README Test. 2010-01-25 18:05:17 +01:00
README_DIST Push version number to 6.35trans 2010-04-15 12:24:55 +02:00
README_GIT Update README file 2010-04-14 15:52:13 +02:00
request-assign-future.txt Release 5.13e 2008-01-31 11:37:24 +01:00

This is the Emacs Org project, an emacs subsystem for organizing your life

The homepage of Org is at http://orgmode.org

This distribution contains:

README
    This file.

README_DIST
    The README file for the distribution (zip and tar files)

README_GIT
    Information about the git repository and how to contribute
    to Org-mode development. 

lisp/
    Directory with all the Emacs Lisp files that make up Org.

doc/
    The documentation files.  org.texi is the source of the
    documentation, org.html and org.pdf are formatted versions of it.

xemacs/
    The xemacs directory contains special code for XEmacs users, in
    particular a port of the GNU Emacs outline.el to XEmacs.  Org-mode
    does not work under XEmacs without this file installed.  It did
    until version 4.37, but no longer.

contrib/
    A directory with third-party additions for Org.  Some really cool
    stuff is in there.

ORGWEBPAGE/
    Directory with the source files for the orgmode.org web page.
    
ChangeLog
    The standard ChangeLog file.

Makefile
    The makefile to compile and install Org, and also for maintenance
    tasks.

request-assign-future.txt
    The form that contributors have to sign and get processed with the
    FSF before contributed changes can be integrated into the Org
    core.  All files in this distribution except the CONTRIB directory
    have copyright assigned to the FSF.

EXPERIMENTAL
    Experimental code, not necessarily FSF copyright.