aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fix libbe.diff.Diff._changed_bugs() to handle subscriptions by bug shortname.W. Trevor King2009-12-051-3/+8
|
* Cleanup Dir in becommands/init.py doctest.W. Trevor King2009-12-051-0/+1
|
* Merged be.diff-subscribeW. Trevor King2009-12-055-201/+357
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * Updated NEWSW. Trevor King2009-12-051-0/+8
| |
| * Adjust libbe.diff.DiffTree to fix failed doctest.W. Trevor King2009-12-051-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ====================================================================== 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
| * Use new libbe.diff.Diff.report_tree(subscriptions) in be-handle-mail.W. Trevor King2009-12-052-54/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * Added libbe.diff.Diff.full_report() for speed with several subscription lists.W. Trevor King2009-12-051-2/+67
| | | | | | | | | | | | | | | | | | | | 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.
| * More 'DIR'->diff.BUGDIR_ID updatesW. Trevor King2009-12-052-8/+8
| |
| * Created diff.subscriptions_from_string()W. Trevor King2009-12-052-11/+28
| |
| * Added --subscribe option to `be diff`W. Trevor King2009-12-051-9/+25
| |
| * Added BUGDIR_TYPE_MOD and BUGDIR_TYPE_REM to libbe.diff.W. Trevor King2009-12-051-8/+19
| | | | | | | | | | | | | | | | | | 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
| * Adjusted diff.Subscription.__init__() to guess type_root if required.W. Trevor King2009-12-051-2/+7
| |
| * Added subscriptions option to diff.Diff.report_tree().W. Trevor King2009-12-052-22/+80
| | | | | | | | | | | | 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.
| * Moved subscription types from becommands/subscribe.py to libbe/diff.py.W. Trevor King2009-12-053-73/+86
| |
| * Replaced `be diff` options --new, --removed, --modified, and --all with --uuids.W. Trevor King2009-12-051-22/+7
| | | | | | | | | | | | | | 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.
| * `be diff` raises UsageError if required revision control not possible.W. Trevor King2009-12-051-34/+37
| | | | | | | | It had previously printed an message and exitted without error.
* | Set boolean options default to False in becommands/list.pyW. Trevor King2009-12-051-1/+1
| | | | | | | | | | | | | | | | 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:
* | Fix cmdutil.help() calls in be to use args not sys.argv.W. Trevor King2009-12-051-2/+2
|/ | | | | sys.argv won't work if there are any options in the be call, e.g. be -d DIR diff
* Add __eq__ and __ne__ methods to Tree.W. Trevor King2009-12-051-0/+6
| | | | | | | | | | | | | | | | | 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.
* Merged `be diff --dir DIR` functionalityW. Trevor King2009-12-043-6/+21
|\
| * Updated NEWSW. Trevor King2009-12-041-0/+3
| |
| * Added --dir option to `be diff'.W. Trevor King2009-12-041-3/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | 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'.
| * Fixed removed comment listing in libbe/diff.py.W. Trevor King2009-12-041-2/+2
| | | | | | | | | | Previous implementation guaranteed to raise KeyErrors, because new bug doesn't contain the uuid.
* | Updated NEWSW. Trevor King2009-12-041-0/+10
|/
* Use __cmp__ instead of __eq__ for Tree comparison.W. Trevor King2009-12-041-2/+2
| | | | | | | | | | | | | | 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`.
* Don't necessarily initialize a new VCS in BugDir.load_settings().W. Trevor King2009-12-031-2/+3
| | | | | | | | | | 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
* Don't get VCS version in VCS.__init__().W. Trevor King2009-12-031-2/+6
| | | | | | | | | | | | | | | | | | 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
* Added libbe.TESTING (defaults to False).W. Trevor King2009-12-0326-1045/+1161
| | | | | | | | | | | | | | | | | | | | 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
* Added copyright blurbs to __init__.py files.W. Trevor King2009-12-032-0/+32
|
* Remove _test() functions from plugin.py and cmdutil.py.W. Trevor King2009-12-032-15/+0
| | | | | Testing should be handled through test.py, not by calling per-module _test() functions.
* Merged completed be.email-bugs branch.W. Trevor King2009-11-3013-112/+593
|\ | | | | | | | | | | | | | | | | | | 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.
| * Mark bug 565 as fixed: be email-bugs for bug submission from bzr-less usersW. Trevor King2009-11-301-1/+1
| |
| * be-handle-mail uses more conservative --add-only for be-bugs:xmlW. Trevor King2009-11-301-1/+1
| |
| * Generalized doctest string in subproc.pyW. Trevor King2009-11-301-1/+1
| |
| * Added some thoughts on import_xml merge algorithmsW. Trevor King2009-11-302-0/+39
| |
| * Fixed import_xml.py to live up to its longhelp description.W. Trevor King2009-11-301-27/+188
| | | | | | | | Also added LonghelpTestCase to prove it.
| * Avoid redundant Comment.alt_idsW. Trevor King2009-11-301-1/+3
| |
| * Changed Bug and Comment.merge() kwargs.W. Trevor King2009-11-302-25/+69
| | | | | | | | | | | | | | | | 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.
| * Minor BugDir docstring typo correction.W. Trevor King2009-11-301-1/+1
| |
| * Moved comment.list_to_root() to Bug.add_comments() with some cleanups.W. Trevor King2009-11-292-65/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * Added comment import to Bug.from_xml().W. Trevor King2009-11-282-10/+93
| | | | | | | | | | | | | | | | | | | | | | 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.
| * test.py now uses unittest.TestSuite 'suite' in becommands if present.W. Trevor King2009-11-281-1/+4
| | | | | | | | | | | | Such 'suite' instances have been required for libbe submodules. This will allow becommands to test themselves more thoroughly than they could with only doctests.
| * BugDir.list_uuids() -> BugDir.uuids()W. Trevor King2009-11-284-9/+9
| |
| * Added Bug.merge() and Comment.merge().W. Trevor King2009-11-282-16/+185
| | | | | | | | | | | | | | | | | | 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().
* | Merged mostly completed `be email-bugs'.W. Trevor King2009-11-2145-478/+1340
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * Added restrict_file_access to becommands' execute() args.W. Trevor King2009-11-2126-27/+57
| | | | | | | | | | | | | | + associated adjustments in other files. See cmdutil.restrict_file_access.__doc__ for an explanation of the security hole this closes.
| * Fix libbe.vcs.VCS.get_file_contents(allow_no_vcs=True,binary=True).W. Trevor King2009-11-211-1/+8
| | | | | | | | | | | | | | | | 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.
| * Updated interfaces/email/interactive/README for [be-bug:xml] interfaceW. Trevor King2009-11-211-2/+13
| |
| * Added [be-tag:xml] processing to be-handle-mail.W. Trevor King2009-11-211-4/+25
| | | | | | | | | | Now it will automatically apply and commit emails from be email-bugs ...
| * Adjusted `be import-xml` to properly handle croot_bug==None.W. Trevor King2009-11-211-26/+31
| | | | | | | | | | | | 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.