| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, for the directory structure
A
|-- X
`-- Y
You could do something like
A$ be --dir X diff --dir ../Y
Now it's
A$ be --dir X diff --dir Y
The --root option to `be init` has been removed as redundant. Replace
calls like
be init --root DIR
with
be --dir DIR init
|
|
|
|
|
|
|
|
|
|
| |
I like this code, and I want to use it for other places, e.g.
`be list`.
Also renamed depend options
--limit-severity and --limit-status
to
--severity and --status
|
| |
|
|
|
|
|
|
|
|
|
| |
See bug 22b6f620-d2f7-42a5-a02e-145733a4e366 for the motivation. This
upgrade will replace all "target" settings. The new BugDir target
setting will be the uuid of the appropriate target. The Bug target
setting is removed, replaced by an extra_strings BLOCKS tag blocking
the appropriate target. New target bugs are created on the fly as
required.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Targeting normal bugs
With "be depend". I think we should remove the "target" field from
bugs, and move target dependencies over into the "be depend"
framework.
* be target list
Would become "be list --severity target". A target "severity" would
keep target bugs distinct from other bug/issue types.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
======================================================================
FAIL: Doctest: libbe.diff.DiffTree
----------------------------------------------------------------------
Traceback (most recent call last):
File "/usr/lib/python2.5/doctest.py", line 2128, in runTest
raise self.failureException(self.format_failure(new.getvalue()))
AssertionError: Failed doctest test for libbe.diff.DiffTree
File "/home/wking/src/fun/be/be.diff-subscribe/libbe/diff.py", line 136, in DiffTree
----------------------------------------------------------------------
File "/home/wking/src/fun/be/be.diff-subscribe/libbe/diff.py", line 172, in libbe.diff.DiffTree
Failed example:
print bugdir.report_string()
Exception raised:
Traceback (most recent call last):
File "/usr/lib/python2.5/doctest.py", line 1228, in __run
compileflags, 1) in test.globs
File "<doctest libbe.diff.DiffTree[18]>", line 1, in <module>
print bugdir.report_string()
File "/home/wking/src/fun/be/be.diff-subscribe/libbe/diff.py", line 213, in report_string
return "\n".join(self.report())
TypeError
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This makes Message.subscriber_emails() much cleaner.
Also fix libbe.diff.Diff._sub_report() to handle missing
'bugdir/settings'.
Added libbe.diff.SubscriptionType.__cmp__ so that
SubscriptionType('all') == SubscriptionType('all')
This is important when comparing the types returned by
becommands.subscribe.get_bugdir_subscribers()
with the libbe.diff.*_TYPE_* types.
|
|
|
|
|
|
|
|
|
|
| |
Now report_tree() returns an appropriately .masked version of the
cached full report, which is much faster than recomputing a new diff
tree from scratch.
Also fixed bug in libbe.diff.DiffTree.report() where
.requires_children=True was exposing nodes with children, when it
should (and now does) only expose nodes with _unmasked_ children.
|
| |
|
|
|
|
|
|
|
|
|
| |
Now you can subscribe to only hear about modified bugs or only about
removed bugs. Kindof odd for a general subscription, but possibly
useful as an argument to the upcoming `be diff --subscribe`, e.g.
be diff --subscribe DIR:mod
which would replace the old
be diff --modified
|
| |
|
|
|
|
|
|
| |
Also added diff.BUGDIR_ID to avoid lots of magic 'DIR' definitions,
and added diff.Subscription class to make the old (id, type) tuples a
bit more elegant.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes a bug introduced by
revision-id: wking@drexel.edu-20091205034412-8apqxq8zqim48tf7
committer: W. Trevor King <wking@drexel.edu>
timestamp: Fri 2009-12-04 22:44:12 -0500
message:
Use __cmp__ instead of __eq__ for Tree comparison.
When I made that commit, I'd forgotten that Tree inherits an __eq__
method from list, so it won't fall back to the __cmp__ method to
determine equality. The new __eq__ and __ne__ methods use __cmp__
internally, so further subclasses (e.g. Comment) only need to override
__cmp__. Of course, list also defines __ge__, __gt__, __le__, __lt__,
... which I don't bother with, so stay away from TreeA > TreeB and the
like.
|
|
|
|
|
| |
Previous implementation guaranteed to raise KeyErrors, because new bug
doesn't contain the uuid.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
| |
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().
|
|
|
|
|
|
|
| |
+ 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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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 avoids the following error:
======================================================================
ERROR: Should get file contents as committed to specified revision.
----------------------------------------------------------------------
Traceback (most recent call last):
File ".../libbe/vcs.py", line 860, in test_revision_file_contents_as_committed
full_path, revision)
File ".../libbe/vcs.py", line 339, in get_file_contents
contents = self._vcs_get_file_contents(relpath,revision,binary=binary)
File ".../libbe/darcs.py", line 122, in _vcs_get_file_contents
status,output,error = self._u_invoke(args, stdin=major_patch)
File ".../libbe/vcs.py", line 488, in _u_invoke
raise CommandError(args, status, stdout, stderr)
CommandError: Command failed (2):
patch: **** Only garbage was found in the patch input.
while executing
['patch', '--reverse', 'a/text']
After adding the unicode_output=False lines, I adjusted the
VCS._u_invoke_client() definition to pass all it's kwargs
automatically through to VCS._u_invoke(). To make this simpler and
more consistent, I renamed the "directory" option to "cwd", and
adjusted *._u_invoke() calls appropriately in several VCS backends.
|
| |
|
|
|
|
|
| |
Corrects a mistake from using string replace to move output,error ->
stdout,stderr a few commits ago.
|
| |
|
|
|
|
|
|
|
|
| |
The YAML library produces Python string encodings of unicode objects.
There's no reason to try and convert them back into Python unicode
objects just to save them with binary=False, because the files are
only read in to be passed into the YAML parser, which can handle the
unicode characters correctly.
|
| |
|
| |
|
| |
|