emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: "Sebastien Vauban" <sva-news-D0wtAvR13HarG/iDocfnWg@public.gmane.org>
To: emacs-orgmode-mXXj517/zsQ@public.gmane.org
Subject: Re: Collaborating with TODO lists and clocks.
Date: Thu, 05 Sep 2013 09:42:12 +0200	[thread overview]
Message-ID: <8638pjiujv.fsf@somewhere.org> (raw)
In-Reply-To: 877gevwwq5.fsf@konixwork.incubateur.ens-lyon.fr

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

  reply	other threads:[~2013-09-05  7:42 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-04-28 18:30 Collaborating with TODO lists and clocks Gareth Smith
2013-04-28 19:27 ` Richard Lawrence
2013-04-29 20:34   ` Gareth Smith
2013-04-30  1:50     ` Richard Lawrence
2013-04-30 18:21       ` Gareth Smith
2013-09-05  7:31       ` Samuel Loury
2013-09-05  7:42         ` Sebastien Vauban [this message]
2013-09-05  8:52           ` Samuel Loury
2013-09-05 11:22             ` Sebastien Vauban
2013-09-05 11:54               ` Thorsten Jolitz
2013-09-05 13:32                 ` Samuel Loury
2013-09-05 13:29               ` Samuel Loury

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=8638pjiujv.fsf@somewhere.org \
    --to=sva-news-d0wtavr13harg/idocfnwg@public.gmane.org \
    --cc=emacs-orgmode-mXXj517/zsQ@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).