aboutsummaryrefslogtreecommitdiffstats
path: root/libbe
Commit message (Collapse)AuthorAgeFilesLines
* Added decorator-style properties to bugdir. Created settings_object module.W. Trevor King2008-12-025-157/+467
| | | | | | | | settings_object.SavedSettingsObject encapsulates some of the common settings functionality in the BE BugDir, Bug, and Comment classes. It's a bit awkward due to the nature of scoping in python subclasses, but it's better than reproducing this code in each of the above classes. Now I need to move Bug and Comment over to *this* system ;).
* Added decorator-style properties to libbe/comment.py.W. Trevor King2008-12-013-77/+209
| | | | | Also some typo corrections and some reworking of bug/bugdir to better support the lazier loading.
* Added libbe/properties to make property management easier.W. Trevor King2008-11-282-105/+586
| | | | | libbe/bug has been moved over to the new system. comment and bugdir still to go.
* Added becommands/comment completion.W. Trevor King2008-11-273-4/+12
|
* Added bugid_args option to cmdutil.default_complete.W. Trevor King2008-11-271-3/+23
| | | | | | | | Now most of the bug-id arguments support Bash completion. Since there will hopefully be lots of bugs in the database, I decided to filter the list of available bugs. Currently, we just auto-complete active bugs for most commands, with the exceptions of open (obviously) and status (which needs to work on all types of bugs).
* Command completion simplified and working for list, dummies for other cmds.W. Trevor King2008-11-271-2/+22
| | | | | | | | 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
* Merged --commands and --options into --complete. Simpler that way.W. Trevor King2008-11-271-12/+8
|
* Basic bash completion is now supported.W. Trevor King2008-11-271-3/+26
| | | | I'm still working on a clean implementation though...
* Added -a/n/m/r to becommands/diff.py.W. Trevor King2008-11-251-2/+2
|
* Added libbe/encoding.py to wrap input/output/file access appropriately.W. Trevor King2008-11-2514-159/+363
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Oops, should be passing libbe.tree.Tree.sort() args to children. Fixed.W. Trevor King2008-11-251-1/+4
|
* Added becommands/merge to join duplicate bugs.W. Trevor King2008-11-242-17/+39
|
* Adjusted becommands/set to handle user_id properly.W. Trevor King2008-11-241-7/+10
|
* Fixed broken doctest and inconsitent indentation from not wrapping comments.W. Trevor King2008-11-241-2/+4
| | | | | Also emptied becommands/__init__.py. I didn't understand the plugin interface when I wrote it.
* Removed auto-wrapping from comment.Comment.string().W. Trevor King2008-11-241-2/+4
| | | | | | | | | | It makes tracebacks almost illegible. I doubt markup/markdown systax or auto-formatting is really useful, since bugs-reports are ususally a short comment and a traceback. I also closed a4d38ba7-ec28-4096-a4f3-eb8c9790ffb2 and 7bfc591e-584a-476e-8e11-b548f1afcaa6, which have probably been fixed for a long time...
* Added Bug.comments(), BugDir.has_bug() & cleaned up diff.diff().W. Trevor King2008-11-244-23/+33
| | | | + some other minor fixes and cleanups.
* Replaced direct filesystem read from bugdir.py with RCS mediated read.W. Trevor King2008-11-243-60/+13
| | | | | | | | | Also replaced utility.FileString with StringIO() in cmdutil.py, which allowed the removal of utility.FileString and utility.get_file. The only remaining file().read() outside the RCS framework is the read in utility.editor_string(), but should probably not go through the RCS.
* Added 'allow_no_rcs' flag to RCS file system access methods.W. Trevor King2008-11-245-125/+204
| | | | | Now mapfile access has fewer special cases, and there is less redundant rcs.add/update code.
* Created bugdir.MultipleBugMatches so bugdir no longer imports cmdutil.W. Trevor King2008-11-232-4/+9
|
* Removed outdated beuuid import from libbe/bugdir.pyW. Trevor King2008-11-231-1/+0
|
* libbe/diff.diff() was missing newly created bugs. Fixed.W. Trevor King2008-11-231-2/+5
| | | | 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-234-38/+62
| | | | Fixes bug b3c6da51-3a30-42c9-8c75-587c7a1705c5
* Improved user-id saving/loading/caching & save user-id into duplicate bugdirs.W. Trevor King2008-11-231-16/+19
| | | | | | Fixes the duplicate bugs a403de79-8f39-41f2-b9ec-15053b175ee2 c894f10f-197d-4b22-9c5b-19f394df40d4
* Added bugdir user-id caching and save/load from settings file.W. Trevor King2008-11-232-1/+36
|
* Fixed "'NoneType' object is not callable" error in libbe/utility/Dir.__del__W. Trevor King2008-11-231-2/+5
|
* Added archive/project init code for `./test_usage.sh arch`.W. Trevor King2008-11-233-9/+1
| | | | Also some minor cleanups.
* Explicit rcs.cleanup() in bugdir test.W. Trevor King2008-11-224-19/+15
| | | | | | | | | | | | | Don't use del(rcs), because if there was an error, there is still a reference to rcs in the traceback, so it is never cleaned up. This can leave the external archive cluttering up your Arch install if you're using the Arch backend. See the __del__ documentation http://python.active-venture.com/ref/customization.html#l2h-175 for details. Also fixed some out-of-date method names in libbe.diff
* libbe.utility.Dir was complaining of a missing shutil in __del__().W. Trevor King2008-11-221-1/+2
| | | | | Presumably the cleanup process removed shutil before cleaning up the Dir. Now Dir keeps a local reference.
* Created and fixed bug 496edad5-1484-413a-bc68-4b01274a65eb.W. Trevor King2008-11-224-34/+126
| | | | | | | | I figured out why Arch was complaining. For non-Arch users, file system access has been tweaked a bit see the BugDir doc string for details. Also, you should now set BugDir.rcs instead of .rcs_name. .rcs_name automatically tracks changes in .rcs (the reverse of the previous situation), so read from whichever you like.
* Oops, these new submods are used by the new, classified Bug & BugDir.W. Trevor King2008-11-223-0/+602
| | | | I'd forgotten tell bzr...
* Another major rewrite. Now BugDir, Bug, and Comment are more distinct.W. Trevor King2008-11-2110-512/+477
| | | | | | | | | | | | | | | 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.
* names.creator() replaced by rcs.get_user_id().W. Trevor King2008-11-191-6/+0
|
* Merged bug.new_comment into bug.Bug.new_comment.W. Trevor King2008-11-191-8/+4
|
* Moved bug.new_bug code into bugdir.BugDir.new_bug.W. Trevor King2008-11-192-8/+4
| | | | | Also removed explicit comparisons from beweb/controllers.py, since they are now built into the Bug.__cmp__ method.
* Removed libbe/tests.pyW. Trevor King2008-11-191-31/+0
| | | | | | Not needed with stronger test.py. It's only use would be testing an installed libbe in place... Maybe that is useful enough? If so, we can bring it back.
* Major rewrite of RCS backends. RCS now represented as a class.W. Trevor King2008-11-1817-692/+1123
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Lots of changes and just one commit. This started with bug dac91856-cb6a-4f69-8c03-38ff0b29aab2, when I noticed that new bugs were not being added appropriately with the Git backend. I'd been working with Git trouble before with bug 0cad2ac6-76ef-4a88-abdf-b2e02de76f5c, and decided things would be better off if I just scrapped the current RCS architecture and went to a more object oriented setup. So I did. It's not clear how to add support for an RCS backend: * Create a new module that - defines an inheritor of rsc.RCS, overriding the _rcs_*() methods - provide a new() function for instantizating the new class - defines an inheritor of rcs.RCStestCase, overiding the Class attribute - defines 'suite' a unittest.TestSuite testing the module * Add your new module to the rest in rcs._get_matching_rcs() * Add your new module to the rest in libbe/tests.py Although I'm not sure libbe/tests.py is still usefull. The new framework clears out a bunch of hackery that used to be involved with supporting becommands/diff.py. There's still room for progress though. While implementing the new verision, I moved the testing framework over from doctest to a doctest/unittest combination. Longer tests that don't demonstrate a function's usage should be moved to unittests at the end of the module, since unittest has better support for setup/teardown, etc. The new framework also revealed some underimplented backends, most notably arch. These backends have now been fixed. I also tweaked the test_usage.sh script to run through all the backends if it is called with no arguments. The fix for the dac bug turned out to be an unflushed file write :p.
* Fixed another bug in git.strip_git() (bug 0cad).W. Trevor King2008-11-161-1/+1
| | | | | Also added git mode to test_usage.sh. I'll go through and add modes for the other RCSs...
* Merged in my git.py changed fixing Hubert Chathi's git set-root bug (0cad).W. Trevor King2008-11-161-2/+9
|\
| * Oops... *Now* I've fixed 0cadW. Trevor King2008-11-131-1/+5
| |
| * Fixed 0cad bug with smaller fix.W. Trevor King2008-11-131-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Hubert Chathi's fix was confusing for me, so I made a simpler change. Seems to work so far. The problem was that os.path.dirname('filename') returns an empty string ('') if there are no directories in the filename. So when `git rev-parse --git-dir` returned '.git', os returned ''. Later programs didn't recognize '' as a valid directory and crashed. My fix returns '.' in this case, so we don't crash, and avoid having to use full paths. I'm not sure why I don't want to use full paths; they just give me bad vibes...
| * Updated imports to handle Python 2.5 ElementTree module.W. Trevor King2008-11-131-1/+4
| | | | | | | | Opened, fixed, and closed as bug 31c.
| * Catch OSErrors from Popen()sW. Trevor King2008-11-132-7/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | From the subprocess module documentation: http://www.python.org/doc/2.5.2/lib/node530.html "The most common exception raised is OSError. This occurs, for example, when trying to execute a non-existent file. Applications should prepare for OSError exceptions." And from the os module documentation: http://www.python.org/doc/2.5.2/lib/module-os.html "exception error This exception is raised when a function returns a system-related error (not for illegal argument types or other incidental errors). This is also known as the built-in exception OSError. The accompanying value is a pair containing the numeric error code from errno and the corresponding string, as would be printed by the C function perror(). See the module errno, which contains names for the error codes defined by the underlying operating system. When exceptions are classes, this exception carries two attributes, errno and strerror. The first holds the value of the C errno variable, and the latter holds the corresponding error message from strerror(). For exceptions that involve a file system path (such as chdir() or unlink()), the exception instance will contain a third attribute, filename, which is the file name passed to the function." I turned this up running be/test.py, when it defaulted to the tla client which I didn't have installed. I don't have things working yet, so I can't create a bug at the moment...
* | Fix Bug.string() handling of None times.W. Trevor King2008-11-161-3/+7
| |
* | Removed the empty bugs 14c and 38b. Fixed bug.string() call in libbe/diff.py.W. Trevor King2008-11-161-1/+1
| |
* | Added 'remove' command to remove bugs. Use __desc__ for command help.W. Trevor King2008-11-164-39/+49
| | | | | | | | | | | | | | | | | | | | | | 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.
* | Fixed some errors produced while moving bug_summary to Bug.string().W. Trevor King2008-11-151-15/+17
| |
* | Moved libbe.cmdutil.bug_summary() to libbe.bug.Bug.string().W. Trevor King2008-11-154-30/+39
| | | | | | | | This seems like a natual place for a function that only operates on Bugs.
* | Removed libbe/template.W. Trevor King2008-11-151-48/+0
| | | | | | | | | | This file is not used anywhere, and appears to be an outdated version of libbe/diff.py.
* | becommands/show.py gives more specific bug information.W. Trevor King2008-11-151-13/+19
| |
* | Fixed a few more Comment.date->time calls.W. Trevor King2008-11-141-1/+1
| | | | | | | | | | Bug keeps timestamps in Bug.time, so working towards consitency for Comment.