aboutsummaryrefslogtreecommitdiffstats
path: root/libbe/diff.py
Commit message (Collapse)AuthorAgeFilesLines
* Fix two more Py2->Py3 conversionsMatěj Cepl2024-03-301-1/+1
|
* Used PyCharms inspectors.Matěj Cepl2024-03-301-7/+7
|
* WIP plenty of clean-ups and porting to Python 3.Matěj Cepl2024-01-211-24/+42
|
* conversion of cmp() functionMatěj Cepl2024-01-181-10/+16
|
* 2to3 conversion of the repo.Matěj Cepl2024-01-181-5/+5
|
* doc: clean up top level module docstringsW. Trevor King2012-10-261-1/+1
|
* doc: update :class: to :py:class: for modern Sphinx.W. Trevor King2012-10-261-1/+1
|
* Ran update-copyright.py.W. Trevor King2012-10-161-1/+1
|
* Ran update-copyright.py.W. Trevor King2012-02-161-10/+10
|
* Run update_copyright.py.W. Trevor King2011-05-251-0/+1
|
* Bumped to version 1.0.01.0.0Chris Ball2011-01-081-1/+1
|
* Ran update_copyright.pyW. Trevor King2010-06-221-12/+13
|
* Fixed docstrings so only Sphinx errors are "autosummary" and "missing attribute"W. Trevor King2010-02-071-9/+23
|
* Fix Diff.comment_body_change_string's difflib.unified_diff callW. Trevor King2010-01-241-1/+4
|
* Fix modified ID reference in libbe.diff.Diff._changed_bugsW. Trevor King2010-01-181-1/+1
|
* Optimized libbe.diff.Diff._changed when old bugdir is a RevisionedBugDirW. Trevor King2010-01-181-21/+57
|
* Updated copyright informationW. Trevor King2010-01-011-1/+1
|
* Fixed libbe.command.diff + ugly BugDir.duplicate_bugdir implementationW. Trevor King2009-12-151-2/+2
| | | | | | | | | | | | | | | | | | | | | duplicate_bugdir() works, but for the vcs backends, it could require shelling out for _every_ file read. This could, and probably will, be horribly slow. Still it works ;). I'm not sure what a better implementation would be. The old implementation checked out the entire earlier state into a temporary directory pros: single shell out, simple upgrade implementation cons: wouldn't work well for HTTP backens I think a good solution would run along the lines of the currently commented out code in duplicate_bugdir(), where a VersionedStorage.changed_since(revision) call would give you a list of changed files. diff could work off of that directly, without the need to generate a whole duplicate bugdir. I'm stuck on how to handle upgrades though... Also removed trailing whitespace from all python files.
* Fixed up libbe.diffW. Trevor King2009-12-151-85/+83
|
* Transition to Command-format complete.W. Trevor King2009-12-151-4/+0
| | | | | | | | Well, except for going through and updating the _long_help() strings. $ python test.py libbe.command succeeds for everything except Diff and Subscribe, which is expected since I haven't fixed up libbe.diff yet.
* Transitioned diff and subscribe to Command-format"W. Trevor King2009-12-151-8/+9
| | | | | | They don't work yet, since I still need to fix up libbe.diff and replace BugDir.duplicate_bugdir() with something based on the new Storage backend.
* Fix libbe.diff.Diff._changed_bugs() to handle subscriptions by bug shortname.W. Trevor King2009-12-051-3/+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-051-4/+9
| | | | | | | | | | | | | 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.
* Created diff.subscriptions_from_string()W. Trevor King2009-12-051-0/+23
|
* 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-051-20/+77
| | | | | | 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-051-0/+46
|
* 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.
* Added libbe.TESTING (defaults to False).W. Trevor King2009-12-031-2/+5
| | | | | | | | | | | | | | | | | | | | 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
* BugDir.list_uuids() -> BugDir.uuids()W. Trevor King2009-11-281-2/+2
|
* Ran the new update_copyright.pyW. Trevor King2009-11-191-0/+1
|
* Added docstrings to libbe submodules.W. Trevor King2009-08-311-3/+7
| | | | Also a few minor tweaks to the module imports.
* RCS -> VCS, BUGDIR_DISK_VERSION -> v1.2W. Trevor King2009-08-311-2/+2
|
* Improved unittest cleanup by adding BugDir.cleanup().W. Trevor King2009-07-311-1/+2
| | | | | | | | Also simple_bug_dir -> SimpleBugDir class, which allows me to add utility.Dir cleanup to SimpleBugDir.cleanup(). Still having a bit of trouble with the becommand.new tests due to bugdir loading though...
* Fixed indent spacing in libbe.diff.report().W. Trevor King2009-07-311-20/+22
| | | | Only increment depth if data_part != None.
* Cleaned up be-handle-mail's subscriber notification emails (fewer attachments).W. Trevor King2009-07-271-20/+20
| | | | | | | | | | | Previously, every node in the DiffTree created it's own attachment. Now they're consolidated into a single attachment per bug. higher level nodes are still one attachment per node. Also: * added send_pgp_mime.append_text() * pulled guess_encoding() out of send_pgp_mime.encodedMIMEText(). * renamed data_string -> data_part in libbe.diff, since it needn't be a string.
* Tweaked the output text for modified bugs in libbe.diff and be-handle-mail.W. Trevor King2009-07-271-1/+3
|
* Added cmp functions to libbe.comment, and fleshed them out in libbe.bug.W. Trevor King2009-07-271-6/+14
| | | | | | | | | | Previous comment comparison had just been the default Tree.__cmp__. Fleshed out so A == B ensures no meaningful differences between A and B. Also added first line of comments to new comment output in libbe.diff, and added a comment/"settings" node and .comment_mod_string() (to mirror bugdir and bug).
* Cache data strings in libbe.diff.DiffTree.W. Trevor King2009-07-271-0/+3
| | | | | This makes repeated .report() generation from the same tree more efficient.
* Major rewrite of libbe.diff introduces DiffTree and Diff classes.W. Trevor King2009-07-271-94/+368
| | | | | | | | | | | | | To make the interface proposed by becommands/subscribers.py easier to implement, I've moved the libbe.diff functionality into classes. Now it should be easy two tweak the output as desired by subclassing these classes. The basic idea is that Diff.report_tree() generates a diff_tree tree of changes between two bugdirs, where diff_tree is some subclass of DiffTree. Each type of change has a default .*_string() method producing a string summary of the change. DiffTree.report() moves through and generates a report by joining all those summary strings to a single root, and DiffTree.report_string() serialized the report to produce e.g. the output of becommands/diff.py.
* Added bugdir setting comparision to libbe.diff.W. Trevor King2009-07-231-20/+29
| | | | | | | | | | | Renamed libbe.diff.diff -> bug_diffs, since it doesn't compare bugdirs. Load comments before bug comparision so cmp_comments will see them. Use .settings_properties rather than static lists to create attribute lists for change_lines(). Removed trailing endline from becommands/diff.py output.
* Updated GPLv2 to current GPLv2.W. Trevor King2009-07-141-11/+11
| | | | | | | | | | | | | | | | | | | | | | | | Fixes Ben's bug 00f26f04-9202-4288-8744-b29abc2342d6. I also tweaked update_copyright.sh to make possible future copyright-blurb revision easier. The new algorithm is greedier, overwriting _all_ consecutive comments after a '^# Copyright' line, so do # Copyright # GPL ... GPL ... GPL # Your comment here... not # Copyright # GPL ... GPL ... GPL # # Your comment here... Without the blank line, your comment would get overwritten by the next run of update_copyright.sh. Note that catmutt is ignored by update_copyright.sh because Moritz Barsnick has only licensed his grepm code under the GPLv2 (not GPLv>=2). See the initial catmutt commit for details.
* Removed <abentley@panoramicfeedback.com> from copyright blurbs.W. Trevor King2009-07-111-1/+0
| | | | | | | | | | | These didn't work with my update_copyright.sh. I went with Aaron Bentley and Panometrics, Inc. instead of Aaron Bentley <abentley@panoramicfeedback.com> and Panometrics, Inc. just because of line length, but I'm open to convincing if people prefer the latter...
* Updated copyright blurbs and AUTHORS and included script for future updatesW. Trevor King2009-07-011-1/+2
|
* Per-tree status levels working.W. Trevor King2008-12-041-9/+8
|
* Added libbe/encoding.py to wrap input/output/file access appropriately.W. Trevor King2008-11-251-11/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | I borrowed most of the code for this. get_encoding() is from Trac http://trac.edgewall.org/browser/trunk/trac/util/datefmt.py format_datetime() Trac has a BSD license http://trac.edgewall.org/wiki/TracLicense I don't know if such a small snippet requires us to "reproduce the above copyright" or where we need to reproduce it if it is needed. The stdout/stdin replacement code follows http://wiki.python.org/moin/ShellRedirectionFails Because of the stdout replacement, the doctests executes now need an optional 'test' argument to turn off replacement during the doctests, otherwise doctest flips out (since it had set up stdout to catch output, and then we clobbered it's setup). References: http://wiki.python.org/moin/Unicode http://www.amk.ca/python/howto/unicode http://www.python.org/dev/peps/pep-0100/ I also split libbe/editor.py off from libbe.utility.py and started explaining the motivation for the BugDir init flags in it's docstring.
* Added Bug.comments(), BugDir.has_bug() & cleaned up diff.diff().W. Trevor King2008-11-241-7/+6
| | | | + some other minor fixes and cleanups.