| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This ensures that __ne__ will also work, and makes it easier to
subclass Tree. For example, in the previous implementation you could
have
>>> commA == commB
False
>>> cmp(commA, commB)
0
if the comments had different ids, but equivalent content.
At the user-interface level, this removes some false "modified
comments" from `be diff`.
|
|
|
|
|
|
|
|
|
|
| |
We may already have the right type, in which case, don't mess with it.
This speeds up bugdir loading a bit more:
$ time be list > /dev/null
real 0m1.245s
user 0m1.116s
sys 0m0.124s
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Often, this just causes a slow subprocess.Popen() call to
get information we woln't even look at.
Old benchmark:
$ time be list > /dev/null
real 0m2.369s
user 0m1.980s
sys 0m0.388s
New benchmark:
$ time be list > /dev/null
real 0m1.472s
user 0m1.304s
sys 0m0.164s
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This flag allows us to skip unittest and testsuite declaration if we
woln't need them. It speeds up simple be calls a suprising amount.
With Testing=True (the old behavior):
wking@thor:be.wtk$ time ./be > /dev/null
real 0m0.393s
user 0m0.340s
sys 0m0.048s
With TESTING=False (the new behavior):
be.wtk$ time ./be > /dev/null
real 0m0.216s
user 0m0.152s
sys 0m0.064s
This adjustment was inspired by Jakub Wilk's Debian bug:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=559295
|
| |
|
|
|
|
|
| |
Testing should be handled through test.py, not by calling per-module
_test() functions.
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Highlights:
* import-xml now works as advertized in its longhelp string
* new methods Bug.merge() and Comment.merge()
* comment.list_to_root() is now Bug.add_comments()
* BugDir.list_uuids() is now BugDir.uuids()
* Bug.from_xml() now imports comments :p
* test.py uses unittest.TestSuite 'suite' in becommands, if present.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
Also added LonghelpTestCase to prove it.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
The old allow_changes and allow_new_comments didn't have separate
handling for extra_strings, like import_xml will need. It also didn't
have a way to specify what to do if an illegal change occurs.
Sometimes you'll want to raise an exception, but sometimes you'll want
to ?silently? ignore the change.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This makes Bug.add_comment simpler. Also makes Bug.from_xml() more
robust, since it no longer depends on the order in which the XML file
lists the comments. The previous Bug.from_xml() would have choked on
<be-xml>
<bug>
<comment>
<uuid>B</uuid>
<in-reply-to>A</in-reply-to>
</comment>
<comment>
<uuid>A</uuid>
</comment>
</bug>
</be-xml>
because when B was being added, the referenced A hadn't yet been
noticed.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This is a pretty critical feature, dunno how I missed it before.
I also added a little check to both Bug and Comment.from_xml() so that
xml_string can take an ElementTree Element as well as the usual raw
string/unicode. This avoids repeated string <-> Element conversions.
Added Bug.add_comment() which handles the addition of a Comment
instance, matching .in_reply_to, checking .uuid uniqueness, etc.
|
| |
| |
| |
| |
| |
| | |
Such 'suite' instances have been required for libbe submodules. This
will allow becommands to test themselves more thoroughly than they
could with only doctests.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Added *.explicit_attrs list creation to Bug and Comment.from_xml().
Added match_alt_id keyword argumennt to .comment_from_uuid().
Removed extra enline following '</extra-string>' tag in Bug and
Comment.xml().
|
|\|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Highlights:
* new be commands 'email-bugs' and 'import-xml'
* standardized <be-xml> format for XML files.
* new be-handle-mail interface '[be-bug:xml]'
* restrict_file_access security patch
* new subprocess handling submodule libbe.subproc
* test.py adjusted to use an installed VCS for most tests.
* assorted bugfixes
Altered interfaces to the following be commands:
* comment --xml tag gone, use import-xml.
* show --xml xml format updated to <be-xml> format.
Also adjusted be-mbox-to-xml and be-xml-to-mbox to handle new <be-xml>
format and provide better handling of *.extra_strings.
|
| |
| |
| |
| |
| |
| |
| | |
+ associated adjustments in other files.
See cmdutil.restrict_file_access.__doc__ for an explanation of the
security hole this closes.
|
| |
| |
| |
| |
| |
| |
| |
| | |
In it's previous form it had ignored the binary option if
self._use_vcs() returned False.
Also added a few more details to the docstring, explaining the
arguments.
|
| | |
|
| |
| |
| |
| |
| | |
Now it will automatically apply and commit emails from
be email-bugs ...
|
| |
| |
| |
| |
| |
| | |
If there aren't any root comments, then the user needn't specify
--comment-root, in which case croot_bug will be None and we want to
skip all the croot processing.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
You used to get:
Uncaught exception:
'NoneType' object has no attribute 'decode'
File "./be-handle-mail", line 857, in main
m.run()
File "./be-handle-mail", line 591, in run
command.run()
File "./be-handle-mail", line 244, in run
manipulate_encodings=False)
File "/tmp/be.email-bugs/interfaces/email/interactive/libbe/cmdutil.py", line 82, in execute
ret = cmd.execute([a.decode(enc) for a in args],
A `print args' in Message.parse_comment() revealed
[..., u'--alt-id', None,...]
|
| |
| |
| |
| | |
For testing the new [be-bug:xml] interface we're about to write.
|
| |
| |
| |
| |
| |
| |
| |
| | |
Broke the bulk of show.py out into new function show.output(), which
is used by both show.py and email_bugs.py to reduce duplication of
effort and increase consistency of the XML.
Also a few relevant help string updates.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
It should currently do everything that `be comment --xml` did, but it
still has a way to go before it lives up to it's longhelp string,
mostly figuring out bug/comment merging.
The allowed XML format also changed a bit, becoming a bit more
structured.
cmdutil.bug_from_shortname() renamed to cmdutil.bug_from_id().
New functions cmdutil.parse_id() and cmdutil.bug_comment_from_id().
Additional doctests in libbe.comment.Comment.comment_shortnames() to
show example output if bug_shortname==None.
Brought be-xml-to-mbox and be-mbox-to-xml up to speed on the current
<be-xml>-rooted format.
* Added <extra-string> handling to their comment handling.
* Moved extra strings from email bodies to X-Extra-String headers
(some comment bodies are not text, and we should keep the estr
location consistent between bugs and comments.)
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Moved comment.InvalidXML to utility.InvalidXML, so that bug and
comment can share it. Added docstring explaining the __init__
arguments.
Added indent and shortname options to Bug.xml() to match
Comment.xml().
Added .extra_strings export to Comment.xml().
Converted Bug.xml() from string addition to list joining, which avoids
a bunch of memory allocation/deallocation.
Assorted " -> ' replacements.
Elaborated doctests to check UTF-8, extra_strings, ...
Added new comparison cmp_extra_strings for both bug. and
comment.DEFAULT_CMP_FULL_CMP_LIST.
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Protects agaist the off chance that the user doesn't have Arch (tla)
installed ;).
Changed Arch.name from "Arch" to "arch" so that each VCSs .name
matches the module name. This allows us to use vcs.VCS_ORDER (a list
of module names) to set up the allowed values of BugDir.vcs_name.
|
| |
| |
| |
| |
| |
| | |
This send a list of bugs in a single email off to be processed by
be-handle-mail. Of course, be-handle-mail doesn't yet handle the
[be-bug:xml] format that email_bugs.py creates. On to that now...
|
| | |
|
| | |
|
| | |
|
|/
|
|
|
| |
Also appended some of the recent discussion about releases to the
comment list.
|
| |
|
| |
|
|\ |
|
| | |
|
| | |
|
| | |
|
|/ |
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Date: Mon, 16 Nov 2009 20:34:50 -0300
From: Nicolas Alvarez <nicolas.alvarez@gmail.com>
Subject: [Be-devel] Mercurial + BE + Unicode doesn't work
My username in ~/.hgrc contains a Unicode character. When I run "be new" on
a Mercurial repository, I get an unhandled Python exception:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 13:
ordinal not in range(128)
The following shell script should reproduce the error:
#!/bin/sh
repo=/tmp/`mktemp -d bug-repro.XXXX`
hg init $repo
cd $repo
/usr/bin/printf "[ui]\nusername = Nicol\u00e1s\n" > $repo/.hg/hgrc
be set-root $repo
be new "Testing"
rm -rf /tmp/$repo
[WTK:
Note that the
be set-root
usage is out of date, it is now
be init
]
|