[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] Collaborating with TODO lists and clocks.
From: |
Sebastien Vauban |
Subject: |
Re: [O] Collaborating with TODO lists and clocks. |
Date: |
Thu, 05 Sep 2013 09:42:12 +0200 |
User-agent: |
Gnus/5.130006 (Ma Gnus v0.6) Emacs/24.3.50 (windows-nt) |
Samuel Loury wrote:
> I recently encountered the issues of having to collaborate with other
> persons on the same task (all of us would need at some point to clock
> into this task).
>
> I thought that changing the value of the variable org-clock-string could
> help, but I have not tried it yet. Let me explain why it could help:
>
> It is for the time being set to "CLOCK:", but imagine that the user A
> set it to "CLOCK-A:" and the user B set it to "CLOCK-B:" (in their
> respective .emacs files), then after some time a clocked task would then
> look like:
>
> * Do something
> CLOCK-A: [2013-09-05 Thu 07:55]--[2013-09-05 Thu 08:46] => 0:51
> CLOCK-A: [2013-09-04 Wed 09:05]--[2013-09-04 Wed 09:41] => 0:36
> CLOCK-B: [2013-09-04 Wed 08:00]--[2013-09-04 Wed 09:03] => 1:03
>
> Then the agenda for each user would report only the time spent by
> himself.
>
> The time spent by each participant is clearly separated.
>
> There are some problems with doing so:
> - I don't know yet how to configure a report showing the time spent by
> every body,
> - I am not sure the clock time sum would work.
> - grepping for "CLOCK:" on org sources shows:
> --8<---------------cut here---------------start------------->8---
> ./lisp/org-clock.el:782: (while (re-search-forward "CLOCK:
> \\(\\[.*?\\]\\)$" nil t)
> ./lisp/org.el:851: (defcustom org-clock-string "CLOCK:"
> ./lisp/org.el:8501: (while (re-search-forward "^[
> \t]*CLOCK:.*$" nil t)
> ./lisp/org.el:15007: (defconst org-clock-drawer-start-re "^[ \t]*:CLOCK:[
> \t]*$"
> ./lisp/org.el:15578: (while (looking-at "^[
> \t]*\\(:CLOCK:\\|:LOGBOOK:\\|CLOCK:\\|:END:\\)")
> ./lisp/org.el:15579: (if (member (match-string 1) '("CLOCK:" ":END:"))
> ./lisp/org.el:17278: (looking-at "^[ \t]*CLOCK:")))
> --8<---------------cut here---------------end--------------->8---
> Those look like "hard coded" "CLOCK:" instead of using
> org-clock-string. They would need to be fixed.
>
> What do you think of this solution? Has anyone already use a solution
> like this?
>
> Best,
>
> PS: I have tried changing the org-clock-into-drawer variable to be
> "CLOCK-A" and "CLOCK-B" so that the task would then look like
> * Do something
> :CLOCK-A:
> CLOCK: [2013-09-05 Thu 07:55]--[2013-09-05 Thu 08:46] => 0:51
> CLOCK: [2013-09-04 Wed 09:05]--[2013-09-04 Wed 09:41] => 0:36
> :END:
> :CLOCK-B:
> CLOCK: [2013-09-04 Wed 08:00]--[2013-09-04 Wed 09:03] => 1:03
> :END:
> But it needs org-drawers to contain the values for each collaborators
> for it to work (and then should be maintained) and the folding mechanism
> did not seem to work for those special drawers.
Having thought about that in the past, I had thought of adding "tags" after
clock lines, such as:
--8<---------------cut here---------------start------------->8---
CLOCK: [2013-09-05 Thu 07:55]--[2013-09-05 Thu 08:46] => 0:51 :userA:
CLOCK: [2013-09-04 Wed 09:05]--[2013-09-04 Wed 09:41] => 0:36 :devB:
--8<---------------cut here---------------end--------------->8---
Though, having separate CLOCK drawers would even be better for Git merges,
such as (keeping the idea of pseudo-tags):
--8<---------------cut here---------------start------------->8---
:CLOCK:userA:
CLOCK: [2013-09-05 Thu 07:55]--[2013-09-05 Thu 08:46] => 0:51
CLOCK: [2013-09-04 Wed 09:05]--[2013-09-04 Wed 09:41] => 0:36
:END:
:CLOCK:devB:
CLOCK: [2013-09-04 Wed 08:00]--[2013-09-04 Wed 09:03] => 1:03
:END:
--8<---------------cut here---------------end--------------->8---
But, of course, a lot of development is required to make this become usable:
- clocking reports (`R') must be updated with the knowledge of the current
user
- clock checking functions (`v c') must be enhanced to ignore clocks from
other users
- etc.
Best regards,
Seb
--
Sebastien Vauban