author | John Kozak <jk@thameslighter.net> |
Fri, 14 Dec 2018 13:07:34 +0000 (2018-12-14) | |
changeset 94 | c34c3ad7a25d |
parent 22 | 88f126b2dd08 |
permissions | -rwxr-xr-x |
22
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
1 |
Date: Sun, 06 Jan 2008 00:46:30 -0500 |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
2 |
From: Dmitriy Morozov <morozov@cs.duke.edu> |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
3 |
To: Mirko Friedenhagen <mirko@friedenhagen.de> |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
4 |
Subject: Re: hg ishow fails in clone of Artemis-repo |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
5 |
Message-ID: <20080106054630.GB12219@cs.duke.edu> |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
6 |
References: <D08973FE-D4D3-471D-A0E3-4CE2C4C4677F@friedenhagen.de> <20080104233436.GA1930@cs.duke.edu> <312C0172-3EF2-488A-A993-CF56C183F9A0@friedenhagen.de> <20080105124708.GA7043@cs.duke.edu> <8B223BED-8A46-4129-A4F3-76B50A890874@friedenhagen.de> <20080106054557.GA12219@cs.duke.edu> |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
7 |
Mime-Version: 1.0 |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
8 |
Content-Type: multipart/mixed; boundary="oyUTqETQ0mS9luUI" |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
9 |
Content-Disposition: inline |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
10 |
In-Reply-To: <20080106054557.GA12219@cs.duke.edu> |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
11 |
User-Agent: Mutt/1.4.2.2i |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
12 |
Status: RO |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
13 |
Content-Length: 9448 |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
14 |
Lines: 306 |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
15 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
16 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
17 |
--oyUTqETQ0mS9luUI |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
18 |
Content-Type: text/plain; charset=koi8-r |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
19 |
Content-Disposition: inline |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
20 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
21 |
Forgot the attachment. Dmitriy |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
22 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
23 |
On Sun, Jan 06, 2008 at 12:45:57AM -0500, Dmitriy Morozov wrote: |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
24 |
>Hi, Mirko, |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
25 |
> |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
26 |
>Very strange. I still don't see what the problem is. Try the attached |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
27 |
>version of artemis.py. It's not really a fix: it's the fix of the |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
28 |
>immediate problem, but if you try to use -d flag of ilist, the problem |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
29 |
>will come back. Meanwhile, I'll think about it some more. |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
30 |
> |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
31 |
>Best, |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
32 |
>Dmitriy |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
33 |
> |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
34 |
>On Sat, Jan 05, 2008 at 10:18:01PM +0100, Mirko Friedenhagen wrote: |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
35 |
>>Am 05.01.2008 um 13:47 schrieb Dmitriy Morozov: |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
36 |
>> |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
37 |
>>>Hi, Mirko, |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
38 |
>>> |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
39 |
>>>I'm unable to replicate the problem with mercrial/crew. Can you send |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
40 |
>>>me util.py (i.e., mercurial/util.py) from the repository that you are |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
41 |
>>>actually using? |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
42 |
>>I did not alter anything in it, see the diff between my local branch |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
43 |
>>and default: |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
44 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
45 |
--oyUTqETQ0mS9luUI |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
46 |
Content-Type: text/plain; charset=koi8-r |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
47 |
Content-Disposition: attachment; filename="artemis.py" |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
48 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
49 |
# Author: Dmitriy Morozov <hg@foxcub.org>, 2007 |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
50 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
51 |
"""A very simple and lightweight issue tracker for Mercurial.""" |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
52 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
53 |
from mercurial import hg, util |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
54 |
from mercurial.i18n import _ |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
55 |
import os, time, random, mailbox, glob, socket, ConfigParser |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
56 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
57 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
58 |
state = {'new': 'new', 'fixed': 'fixed'} |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
59 |
state['default'] = state['new'] |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
60 |
issues_dir = ".issues" |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
61 |
filter_prefix = ".filter" |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
62 |
date_format = '%a, %d %b %Y %H:%M:%S %Z' |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
63 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
64 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
65 |
def ilist(ui, repo, **opts): |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
66 |
"""List issues associated with the project""" |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
67 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
68 |
# Process options |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
69 |
show_all = opts['all'] |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
70 |
properties = [] |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
71 |
match_date, date_match = False, lambda x: True |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
72 |
if opts['date']: |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
73 |
match_date, date_match = True, util.matchdate(opts['date']) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
74 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
75 |
# Find issues |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
76 |
issues_path = os.path.join(repo.root, issues_dir) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
77 |
if not os.path.exists(issues_path): return |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
78 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
79 |
issues = glob.glob(os.path.join(issues_path, '*')) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
80 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
81 |
# Process filter |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
82 |
if opts['filter']: |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
83 |
filters = glob.glob(os.path.join(issues_path, filter_prefix + '*')) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
84 |
config = ConfigParser.SafeConfigParser() |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
85 |
config.read(filters) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
86 |
if not config.has_section(opts['filter']): |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
87 |
ui.warning('No filter %s defined\n', opts['filter']) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
88 |
else: |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
89 |
properties += config.items(opts['filter']) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
90 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
91 |
_get_properties(opts['property']) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
92 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
93 |
for issue in issues: |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
94 |
mbox = mailbox.mbox(issue) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
95 |
property_match = True |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
96 |
for property,value in properties: |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
97 |
property_match = property_match and (mbox[0][property] == value) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
98 |
if not show_all and (not properties or not property_match) and (properties or mbox[0]['State'].upper() == state['fixed'].upper()): continue |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
99 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
100 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
101 |
if match_date and not date_match(util.parsedate(mbox[0]['date'], [date_format])[0]): continue |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
102 |
ui.write("%s (%d) [%s]: %s\n" % (issue[len(issues_path)+1:], # +1 for trailing / |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
103 |
len(mbox)-1, # number of replies (-1 for self) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
104 |
mbox[0]['State'], |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
105 |
mbox[0]['Subject'])) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
106 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
107 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
108 |
def iadd(ui, repo, id = None, comment = 0): |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
109 |
"""Adds a new issue, or comment to an existing issue ID or its comment COMMENT""" |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
110 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
111 |
comment = int(comment) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
112 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
113 |
# First, make sure issues have a directory |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
114 |
issues_path = os.path.join(repo.root, issues_dir) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
115 |
if not os.path.exists(issues_path): os.mkdir(issues_path) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
116 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
117 |
if id: |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
118 |
issue_fn, issue_id = _find_issue(ui, repo, id) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
119 |
if not issue_fn: |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
120 |
ui.warn('No such issue\n') |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
121 |
return |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
122 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
123 |
user = ui.username() |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
124 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
125 |
default_issue_text = "From: %s\nDate: %s\n" % (user, time.strftime(date_format)) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
126 |
if not id: |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
127 |
default_issue_text += "State: %s\n" % state['default'] |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
128 |
default_issue_text += "Subject: brief description\n\n" |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
129 |
default_issue_text += "Detailed description." |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
130 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
131 |
issue = ui.edit(default_issue_text, user) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
132 |
if issue.strip() == '': |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
133 |
ui.warn('Empty issue, ignoring\n') |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
134 |
return |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
135 |
if issue.strip() == default_issue_text: |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
136 |
ui.warn('Unchanged issue text, ignoring\n') |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
137 |
return |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
138 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
139 |
# Create the message |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
140 |
msg = mailbox.mboxMessage(issue) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
141 |
msg.set_from('artemis', True) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
142 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
143 |
# Pick random filename |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
144 |
if not id: |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
145 |
issue_fn = issues_path |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
146 |
while os.path.exists(issue_fn): |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
147 |
issue_id = _random_id() |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
148 |
issue_fn = os.path.join(issues_path, issue_id) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
149 |
# else: issue_fn already set |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
150 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
151 |
# Add message to the mailbox |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
152 |
mbox = mailbox.mbox(issue_fn) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
153 |
if id and comment not in mbox: |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
154 |
ui.warn('No such comment number in mailbox, commenting on the issue itself\n') |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
155 |
if not id: |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
156 |
msg.add_header('Message-Id', "<%s-0-artemis@%s>" % (issue_id, socket.gethostname())) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
157 |
else: |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
158 |
msg.add_header('Message-Id', "<%s-%s-artemis@%s>" % (issue_id, _random_id(), socket.gethostname())) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
159 |
msg.add_header('References', mbox[(comment < len(mbox) and comment) or 0]['Message-Id']) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
160 |
mbox.add(msg) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
161 |
mbox.close() |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
162 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
163 |
# If adding issue, add the new mailbox to the repository |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
164 |
if not id: |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
165 |
repo.add([issue_fn[(len(repo.root)+1):]]) # +1 for the trailing / |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
166 |
ui.status('Added new issue %s\n' % issue_id) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
167 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
168 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
169 |
def ishow(ui, repo, id, comment = 0, **opts): |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
170 |
"""Shows issue ID, or possibly its comment COMMENT""" |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
171 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
172 |
comment = int(comment) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
173 |
issue, id = _find_issue(ui, repo, id) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
174 |
if not issue: return |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
175 |
mbox = mailbox.mbox(issue) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
176 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
177 |
if opts['all']: |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
178 |
ui.write('='*70 + '\n') |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
179 |
for i in xrange(len(mbox)): |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
180 |
_write_message(ui, mbox[i], i) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
181 |
ui.write('-'*70 + '\n') |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
182 |
return |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
183 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
184 |
_show_mbox(ui, mbox, comment) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
185 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
186 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
187 |
def iupdate(ui, repo, id, **opts): |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
188 |
"""Update properties of issue ID""" |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
189 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
190 |
issue, id = _find_issue(ui, repo, id) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
191 |
if not issue: return |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
192 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
193 |
properties = _get_properties(opts['property']) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
194 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
195 |
# Read the issue |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
196 |
mbox = mailbox.mbox(issue) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
197 |
msg = mbox[0] |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
198 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
199 |
# Fix the properties |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
200 |
properties_text = '' |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
201 |
for property, value in properties: |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
202 |
msg.replace_header(property, value) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
203 |
properties_text += '%s=%s\n' % (property, value) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
204 |
mbox[0] = msg |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
205 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
206 |
# Write down a comment about updated properties |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
207 |
if properties and not opts['no_property_comment']: |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
208 |
user = ui.username() |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
209 |
properties_text = "From: %s\nDate: %s\nSubject: properties changes (%s)\n\n%s" % \ |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
210 |
(user, time.strftime(date_format), |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
211 |
_pretty_list(list(set([property for property, value in properties]))), |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
212 |
properties_text) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
213 |
msg = mailbox.mboxMessage(properties_text) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
214 |
msg.add_header('Message-Id', "<%s-%s-artemis@%s>" % (id, _random_id(), socket.gethostname())) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
215 |
msg.add_header('References', mbox[0]['Message-Id']) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
216 |
msg.set_from('artemis', True) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
217 |
mbox.add(msg) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
218 |
mbox.flush() |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
219 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
220 |
# Show updated message |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
221 |
_show_mbox(ui, mbox, 0) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
222 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
223 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
224 |
def _find_issue(ui, repo, id): |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
225 |
issues_path = os.path.join(repo.root, issues_dir) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
226 |
if not os.path.exists(issues_path): return False |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
227 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
228 |
issues = glob.glob(os.path.join(issues_path, id + '*')) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
229 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
230 |
if len(issues) == 0: |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
231 |
return False, 0 |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
232 |
elif len(issues) > 1: |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
233 |
ui.status("Multiple choices:\n") |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
234 |
for i in issues: ui.status(' ', i[len(issues_path)+1:], '\n') |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
235 |
return False, 0 |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
236 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
237 |
return issues[0], issues[0][len(issues_path)+1:] |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
238 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
239 |
def _get_properties(property_list): |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
240 |
return [p.split('=') for p in property_list] |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
241 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
242 |
def _write_message(ui, message, index = 0): |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
243 |
if index: ui.write("Comment: %d\n" % index) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
244 |
if ui.verbose: |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
245 |
ui.write(message.as_string().strip() + '\n') |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
246 |
else: |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
247 |
if 'From' in message: ui.write('From: %s\n' % message['From']) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
248 |
if 'Date' in message: ui.write('Date: %s\n' % message['Date']) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
249 |
if 'Subject' in message: ui.write('Subject: %s\n' % message['Subject']) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
250 |
if 'State' in message: ui.write('State: %s\n' % message['State']) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
251 |
ui.write('\n' + message.get_payload().strip() + '\n') |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
252 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
253 |
def _show_mbox(ui, mbox, comment): |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
254 |
# Output the issue (or comment) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
255 |
if comment >= len(mbox): |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
256 |
comment = 0 |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
257 |
ui.warn('Comment out of range, showing the issue itself\n') |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
258 |
msg = mbox[comment] |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
259 |
ui.write('='*70 + '\n') |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
260 |
if comment: |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
261 |
ui.write('Subject: %s\n' % mbox[0]['Subject']) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
262 |
ui.write('State: %s\n' % mbox[0]['State']) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
263 |
ui.write('-'*70 + '\n') |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
264 |
_write_message(ui, msg, comment) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
265 |
ui.write('-'*70 + '\n') |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
266 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
267 |
# Read the mailbox into the messages and children dictionaries |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
268 |
messages = {} |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
269 |
children = {} |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
270 |
for i in xrange(len(mbox)): |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
271 |
m = mbox[i] |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
272 |
messages[m['Message-Id']] = (i,m) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
273 |
children.setdefault(m['References'], []).append(m['Message-Id']) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
274 |
children[None] = [] # Safeguard against infinte loop on empty Message-Id |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
275 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
276 |
# Iterate over children |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
277 |
id = msg['Message-Id'] |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
278 |
id_stack = (id in children and map(lambda x: (x, 1), reversed(children[id]))) or [] |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
279 |
if not id_stack: return |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
280 |
ui.write('Comments:\n') |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
281 |
while id_stack: |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
282 |
id,offset = id_stack.pop() |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
283 |
id_stack += (id in children and map(lambda x: (x, offset+1), reversed(children[id]))) or [] |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
284 |
index, msg = messages[id] |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
285 |
ui.write(' '*offset + ('%d: ' % index) + msg['Subject'] + '\n') |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
286 |
ui.write('-'*70 + '\n') |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
287 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
288 |
def _pretty_list(lst): |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
289 |
s = '' |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
290 |
for i in lst: |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
291 |
s += i + ', ' |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
292 |
return s[:-2] |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
293 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
294 |
def _random_id(): |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
295 |
return "%x" % random.randint(2**63, 2**64-1) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
296 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
297 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
298 |
cmdtable = { |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
299 |
'ilist': (ilist, |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
300 |
[('a', 'all', False, |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
301 |
'list all issues (by default only those with state new)'), |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
302 |
('p', 'property', [], |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
303 |
'list issues with specific field values (e.g., -p state=fixed)'), |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
304 |
('d', 'date', '', 'restrict to issues matching the date (e.g., -d ">12/28/2007)"'), |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
305 |
('f', 'filter', '', 'restrict to pre-defined filter (in %s/%s*)' % (issues_dir, filter_prefix))], |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
306 |
_('hg ilist [OPTIONS]')), |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
307 |
'iadd': (iadd, |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
308 |
[], |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
309 |
_('hg iadd [ID] [COMMENT]')), |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
310 |
'ishow': (ishow, |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
311 |
[('a', 'all', None, 'list all comments')], |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
312 |
_('hg ishow [OPTIONS] ID [COMMENT]')), |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
313 |
'iupdate': (iupdate, |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
314 |
[('p', 'property', [], |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
315 |
'update properties (e.g., -p state=fixed)'), |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
316 |
('n', 'no-property-comment', None, |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
317 |
'do not add a comment about changed properties')], |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
318 |
_('hg iupdate [OPTIONS] ID')) |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
319 |
} |
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
320 |
|
88f126b2dd08
Converted issues from mbox to maildir mailboxes
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff
changeset
|
321 |
--oyUTqETQ0mS9luUI-- |