| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
| |
|
| |
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Highlights:
* changes to `be diff`
* exits with an error if required revision control is not possible.
Previously it printed a message, but exitted with status 0.
* removed options --new, --removed, --modified, --all
* added options --uuids, --subscribe
* New method diff.Diff.full_report() allows fast generation of
similar report_tree()s via diff.DiffTree.masked.
* New method diff.subscriptions_from_string() for consistent
subscription string parsing.
* clean up be-handle-mail.Message.subscriber_emails() with
diff.Diff.report_tree(subscriptions)
* hardcoded 'DIR' replaced with diff.BUGDIR_ID
* assorted cleanups and bugfixes
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
======================================================================
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.
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
We'll be adding a --subscribe option which will select the
bugs/changes we're interested in, which deprecates the selection
portion of the old options. The new --uuids just selects the "bug
uuid" output over the default "change summary" output.
|
| |
| |
| |
| | |
It had previously printed an message and exitted without error.
|
| |
| |
| |
| |
| |
| |
| |
| | |
Otherwise they default to None. It doesn't matter at the moment,
since all the comparisons seem to be
if options.XYZ == True:
but this protects against confusion in the future if someone tries
if options.XYZ == False:
|
|/
|
|
|
| |
sys.argv won't work if there are any options in the be call, e.g.
be -d DIR diff
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|\ |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Now you can compare two repositories:
be -d branchA diff -d branchB
or
branchA$ be diff -d ../branchB
which is helpful for VCSs like bzr that lack cross-branch revid
visibility. Git users can still use
branchA$ be diff REVID
where REVID is a commit from any branch in the repo.
This new functionality acts like a BE counterpart to `bzr missing DIR'.
|
| |
| |
| |
| |
| | |
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.
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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 ...
|