aboutsummaryrefslogtreecommitdiffstats
path: root/becommands/diff.py
Commit message (Collapse)AuthorAgeFilesLines
* Initial directory restructuring to clarify dependenciesW. Trevor King2009-12-071-133/+0
|
* be --dir DIR COMMAND now roots the bugdir in DIR without changing directories.W. Trevor King2009-12-071-2/+4
| | | | | | | | | | | | | | | | | 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
* Set BugDir(root=X) instead of os.chdir(X) in W. Trevor King2009-12-061-4/+2
|
* More 'DIR'->diff.BUGDIR_ID updatesW. Trevor King2009-12-051-2/+2
|
* Created diff.subscriptions_from_string()W. Trevor King2009-12-051-11/+5
|
* Added --subscribe option to `be diff`W. Trevor King2009-12-051-9/+25
|
* 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.
* 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'.
* Added restrict_file_access to becommands' execute() args.W. Trevor King2009-11-211-1/+1
| | | | | | | + associated adjustments in other files. See cmdutil.restrict_file_access.__doc__ for an explanation of the security hole this closes.
* Ran the new update_copyright.pyW. Trevor King2009-11-191-0/+1
|
* RCS -> VCS, BUGDIR_DISK_VERSION -> v1.2W. Trevor King2009-08-311-9/+9
|
* 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...
* Added default to settings_object.versioned_property's change_hook_property.W. Trevor King2009-07-271-6/+0
| | | | | | | | | | Now change_hook properties handle defaults, which allows them to avoid an initial None -> default save hook trigger. Removed the now-redundant read-only mode business in becommands/diff.py.
* Put bd into read-only mode in becommands/diff.py.W. Trevor King2009-07-271-0/+6
| | | | | | | | Otherwise comment comparison reads were triggering notice of the None -> EMPTY transition in comment.extra_strings, which was causing a write to disk. This trigger is probably occuring in Bug and BugDir too. Perhaps I should just remove the trigger...
* Major rewrite of libbe.diff introduces DiffTree and Diff classes.W. Trevor King2009-07-271-16/+27
| | | | | | | | | | | | | 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.
* "be diff" now compares agains the last commit (for versioning VCSs).W. Trevor King2009-07-231-0/+2
| | | | This is the default behaviour of most of the VCSs own diff commands.
* Merged libbe.diff upgrades and libbe.tree.Tree.has_descendant from be.wtk-rr.W. Trevor King2009-07-231-3/+4
|\ | | | | | | Also pulls "show referenced text" fix to "be comment".
| * Added bugdir setting comparision to libbe.diff.W. Trevor King2009-07-231-3/+4
| | | | | | | | | | | | | | | | | | | | | | 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.
* | Merged assorted changes from be.wtk-rr for BugDir.extra_strings.W. Trevor King2009-07-211-4/+5
|\| | | | | | | | | | | | | Other highlights: * be show --no-comments * Improved *.sync_with_disk. * Improved be-mbox-to-xml.
| * Touched up becommands/diff.py's help message.W. Trevor King2009-07-211-3/+4
| |
| * Cleaned up saving/sync_with_disk.W. Trevor King2009-07-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Got rid of a whole bunch of redundant .save() calls when sync_with_disk==True. Fixed up the "File-system access" portion of the BugDir docstring so we can all remember how things are supposed to work ;). Note that some .save() calls are still required. For example in becommands/merge.py, the copied comments have their .bug changed, but that is not a versioned property, so it doesn't trigger an automatic save, and we have to force the .save() by hand. libbe.rcs.RCS.mkdir() is now recursive by default, but you can set check_parents==False if you want it to fail in the case of missing parents. Because of the recursion, we removed the .update() call on preexisting directories, since there will be at least one of these occurrences for every .mkdir(check_parents=True) call, and I don't know of any VCS that actually needs them... Also stripped trailing whitespace from some files...
* | Renamed test->manipulate_encodings in becommands.*.execute.W. Trevor King2009-07-161-3/+4
|/ | | | | | | | | | | | | | Reminder from my initial libbe/encoding.py commit: 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). I'm also trying to catch stdout/stderr from be-handle-mail, and I ran into the same problem. It took me a bit to remember exactly what "test" was supposed to do, so I thought I'd make the argument name more specific. If you need other changes when running in "test" mode, you'll have to add other kwargs.
* 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
|
* Command completion simplified and working for list, dummies for other cmds.W. Trevor King2008-11-271-1/+3
| | | | | | | | All the other commands currently use default_complete(), which has no effect other than catching the --complete option and effectively aborting execution. This closes 8e1bbda4-35b6-4579-849d-117b1596ee99
* Added -a/n/m/r to becommands/diff.py.W. Trevor King2008-11-251-3/+33
|
* Added libbe/encoding.py to wrap input/output/file access appropriately.W. Trevor King2008-11-251-7/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Hack to fixe encoding bug in becommands/showW. Trevor King2008-11-241-0/+1
| | | | | | The situation really calls for a global encoding setting rather than lots of hardcoded "utf-8"s. See bug f7ccd916-b5c7-4890-a2e3-8c8ace17ae3a
* Tweaked usage strings to increase consistency. Also added README.dev.W. Trevor King2008-11-241-1/+1
| | | | I tried to stick to CAPS for argument placeholders.
* libbe/diff.diff() was missing newly created bugs. Fixed.W. Trevor King2008-11-231-1/+2
| | | | Also added blank lines to separate the new/modified/removed groups.
* Go back to lazy bug loading to get execution speed back up.W. Trevor King2008-11-231-1/+1
| | | | Fixes bug b3c6da51-3a30-42c9-8c75-587c7a1705c5
* Another major rewrite. Now BugDir, Bug, and Comment are more distinct.W. Trevor King2008-11-211-10/+30
| | | | | | | | | | | | | | | I pushed a lot of the little helper functions into the main classes, which makes it easier for me to keep track of what's going on. I'm now at the point where I can run through `python test.py` with each of the backends (by changing the search order in rcs.py _get_matching_rcs) without any unexpected errors for each backend (except Arch). I can also run `test_usage.sh` without non-Arch errors either. However, don't consider this a stable commit yet. The bzr backend is *really*slow*, and the other's aren't blazingly fast either. I think I'm rewriting the entire database every time I save it :p. Still, it passes the checks. and I don't like it when zounds of changes build up.
* Added 'remove' command to remove bugs. Use __desc__ for command help.W. Trevor King2008-11-161-0/+2
| | | | | | | | | | | Using the __desc__ reduces documentation duplication. It's also better than using __doc__, because __doc__ could (should?) be more than one-line long, and we just want a short description to jog our memories in the complete command list. Also moved unique_name from cmdutil.py to names.py to avoid the bug->cmdutil->bugdir->bug cyclic include.
* Added appropriate copyright notices, GPLed.Aaron Bentley2005-05-161-2/+16
|
* Added preliminary tree-diffing supportAaron Bentley2005-04-141-0/+35