W. Trevor King [Sun, 24 Jan 2010 16:20:47 +0000 (11:20 -0500)]
Rewrote documentation
W. Trevor King [Sun, 24 Jan 2010 16:00:09 +0000 (11:00 -0500)]
Added some bugs (and fixed typo) noticed while rewriting documentation
W. Trevor King [Sun, 24 Jan 2010 15:59:20 +0000 (10:59 -0500)]
Fix Diff.comment_body_change_string's difflib.unified_diff call
W. Trevor King [Sun, 24 Jan 2010 00:28:57 +0000 (19:28 -0500)]
Fixed List --severity handling, added --important
W. Trevor King [Sat, 23 Jan 2010 23:51:57 +0000 (18:51 -0500)]
Fix vars call for `be target --help`
W. Trevor King [Sat, 23 Jan 2010 23:49:13 +0000 (18:49 -0500)]
Update --subscriber option help string for Subscribe
W. Trevor King [Sat, 23 Jan 2010 21:49:46 +0000 (16:49 -0500)]
Modern ID format in `be list` _long_help
W. Trevor King [Sat, 23 Jan 2010 21:44:55 +0000 (16:44 -0500)]
Fix broken handling of non-text/plain comments
W. Trevor King [Sat, 23 Jan 2010 20:56:14 +0000 (15:56 -0500)]
Added "Created comment..." output to `be comment`
W. Trevor King [Sat, 23 Jan 2010 16:40:11 +0000 (11:40 -0500)]
Reorganized documentation to clean doc/ for user-readable files
W. Trevor King [Sat, 23 Jan 2010 16:11:04 +0000 (11:11 -0500)]
Update test_usage.sh
W. Trevor King [Sat, 23 Jan 2010 16:10:45 +0000 (11:10 -0500)]
Fix typos in untested parts of List and Import_XML for test_usage.py
W. Trevor King [Sat, 23 Jan 2010 15:05:07 +0000 (10:05 -0500)]
Added `be list --mine`
W. Trevor King [Sat, 23 Jan 2010 15:05:00 +0000 (10:05 -0500)]
Init should tell the UI about its connected storage and bugdir.
W. Trevor King [Sat, 23 Jan 2010 01:38:57 +0000 (20:38 -0500)]
Move BugDir, Bug, and Comment to new _setup_saved_settings
W. Trevor King [Sat, 23 Jan 2010 01:35:23 +0000 (20:35 -0500)]
Added testSimplePropertySetStorageSave and relavant rewrites to settings_object
It hadn't been handling the "attach storage after initializing"
technique that BugDir, Bug, and Comment use when from_memory==True.
Now it does, by refusing to overwrite self.settings with the
newly-loaded settings.
W. Trevor King [Fri, 22 Jan 2010 19:14:03 +0000 (14:14 -0500)]
Add Bzr._vcs_exists() anyway :p
W. Trevor King [Fri, 22 Jan 2010 19:13:08 +0000 (14:13 -0500)]
We don't need VCS._vcs_exists yet, with exists only used in _add
W. Trevor King [Fri, 22 Jan 2010 19:05:01 +0000 (14:05 -0500)]
Minor cleanups + remove debuging line in Init doctest
W. Trevor King [Fri, 22 Jan 2010 18:54:53 +0000 (13:54 -0500)]
Add VCS._exists(), VCS.path(). Fix default handling in VCS._get().
VCS.path() consolidates a bunch of distributed code.
The VCS backend cannot distinguish between _EMPTY and '' entry values,
so it assumes
len(contents) == 0
means _EMPTY. However, it had been returing None then, not default
like its supposed to.
W. Trevor King [Fri, 22 Jan 2010 18:28:01 +0000 (13:28 -0500)]
Added _EMPTY and Storage.exists() to libbe.storage.base.
There seem to be problems distinguishing between "added but unset" IDs
and "added and set to ''" IDs. Now _EMPTY lets us mark "added but unset",
and Storage.exists() handles "already added?" more clearly than the old
hack "does .get() succeed?".
W. Trevor King [Fri, 22 Jan 2010 16:30:26 +0000 (11:30 -0500)]
Reworked settings_object module, but command.init tests still fail:
$ python test.py libbe.command.init
Doctest: libbe.command.init.Init ... FAIL
...
-----------------------
File ".../libbe/command/init.py", line 47, in libbe.command.init.Init
Failed example:
ui.run(cmd)
Exception raised:
Traceback (most recent call last):
...
File "/tmp/be.wtk/libbe/command/init.py", line 97, in _run
bd = libbe.bugdir.BugDir(storage, from_storage=False)
File "/tmp/be.wtk/libbe/bugdir.py", line 185, in __init__
self.save()
File "/tmp/be.wtk/libbe/bugdir.py", line 228, in save
self.save_settings()
File "/tmp/be.wtk/libbe/bugdir.py", line 204, in save_settings
mf = mapfile.generate(self._get_saved_settings())
File "/tmp/be.wtk/libbe/storage/util/settings_object.py", line 230, in _get_saved_settings
self, self._setting_name_to_attr_name(k))
File "/tmp/be.wtk/libbe/storage/util/properties.py", line 194, in _fget
value = fget(self)
File "/tmp/be.wtk/libbe/storage/util/properties.py", line 329, in _fget
primer(self)
File "/tmp/be.wtk/libbe/storage/util/settings_object.py", line 69, in prop_load_settings
self.load_settings()
File "/tmp/be.wtk/libbe/bugdir.py", line 194, in load_settings
self.settings = mapfile.parse(settings_mapfile)
File "/tmp/be.wtk/libbe/storage/util/mapfile.py", line 123, in parse
c = yaml.load(contents)
...
File "/usr/lib/python2.6/site-packages/yaml/reader.py", line 213, in update_raw
data = self.stream.read(size)
AttributeError: 'NoneType' object has no attribute 'read'
...
W. Trevor King [Fri, 22 Jan 2010 14:17:08 +0000 (09:17 -0500)]
Added unprimableVal option to primed_property.
For clearer handling of the "Tried to load but failed" case.
W. Trevor King [Fri, 22 Jan 2010 14:15:36 +0000 (09:15 -0500)]
Added tests to Init to check for empty settings file
W. Trevor King [Fri, 22 Jan 2010 01:54:00 +0000 (20:54 -0500)]
Add Comment.safe_in_reply_to to improve comment xml output.
Now
be show --xml ID | be-xml-to-mbox | catmutt
shows appropriate linking regardless of missing references or
references to alt-ids in the original comments. On the other hand,
be show --xml ID | be import-xml
could alter alt-ids. If that's a problem we could turn off
save_in_reply_to usage via an option to the xml methods in the future.
W. Trevor King [Thu, 21 Jan 2010 22:25:05 +0000 (17:25 -0500)]
Don't raise MultipleIDMatches if one of the matches is exact.
W. Trevor King [Thu, 21 Jan 2010 18:14:08 +0000 (13:14 -0500)]
Merge assorted bugfixes and optimizations.
Highlights:
* `be new` adds creator field like its supposed to (oops :p).
* `be list --xml` uses <be-xml> format (was <bugs>).
* `be import-xml` handles root comments appropriately.
* `be` raises an appropriate help message.
* `be help` works.
* `be html` prints Comment.id.user() information.
* better SavedSettingsObject._get_saved_settings() avoids data loss.
* be-mbox-to-xml -> be-mail-to-xml and adds assorted format support.
* be-xml-to-mbox and be-handle-mail work with new libbe layout.
* BugDir.uuids() now caches on-disk uuids for speed.
* Mercurial detection works for mercurial <= 1.1.2 _and_ >= 1.2
* Fix bugs in VCS._children() relative/absolute path handling.
W. Trevor King [Thu, 21 Jan 2010 18:07:05 +0000 (13:07 -0500)]
Fix be-handle-mail's notification creation for new libbe structure
W. Trevor King [Thu, 21 Jan 2010 17:52:24 +0000 (12:52 -0500)]
Ajdust Target tests for cached BugDir.uuids() implementation
W. Trevor King [Thu, 21 Jan 2010 17:48:07 +0000 (12:48 -0500)]
Fix _uuids_cache reset in BugDir._clear_bugs
W. Trevor King [Thu, 21 Jan 2010 17:47:38 +0000 (12:47 -0500)]
Update libbe.storage.util.settings_object tests for new ._get_saved_settings
W. Trevor King [Thu, 21 Jan 2010 17:45:49 +0000 (12:45 -0500)]
Fix version import for mercurial <= 1.1.2
W. Trevor King [Thu, 21 Jan 2010 17:24:45 +0000 (12:24 -0500)]
Use _get_user_id() in New, remove unused 'user-id' prop. from Commit.
Added creator field to bugs without creator information. Mostly this
is due to the recent lack of creator-setting in `be new`.
W. Trevor King [Thu, 21 Jan 2010 17:24:05 +0000 (12:24 -0500)]
Add _uuids_cache management to BugDir._clear_bugs
W. Trevor King [Thu, 21 Jan 2010 15:25:24 +0000 (10:25 -0500)]
Add wrap_id to improve id handling in be-xml-to-mbox
W. Trevor King [Thu, 21 Jan 2010 14:17:40 +0000 (09:17 -0500)]
Converted `be list --xml` to <be-xml> format.
Fixed up be-xml-to-mbox following the recent libbe restructuring.
Moved stdout manipulation in be-mail-to-xml into the if __name__ ==
'__main__' block, in case some other module wants to recycle some of
its functions/methods.
W. Trevor King [Thu, 21 Jan 2010 00:15:02 +0000 (19:15 -0500)]
Fix not-yet-loaded bug in SavedSettingsObject._get_saved_settings()
The earlier implementation only copied in the currently loaded
properties and the required ones. The new implementation copies
in _all_ the non-default properties.
W. Trevor King [Thu, 21 Jan 2010 00:13:44 +0000 (19:13 -0500)]
Improve `be import-xml` handling of root comments + tests.
W. Trevor King [Wed, 20 Jan 2010 21:25:18 +0000 (16:25 -0500)]
Fix BugDir._uuid_cache management for new_bug()/remove_bug().
Initial implementation in wking@drexel.edu-
20100120192451-j206hn1s78u9a3ys
missed them.
W. Trevor King [Wed, 20 Jan 2010 20:44:39 +0000 (15:44 -0500)]
Strip footers (signatures) in be-mail-to-xml
W. Trevor King [Wed, 20 Jan 2010 20:22:28 +0000 (15:22 -0500)]
'be-mbox-to-xml' -> 'be-mail-to-xml' + support for several formats.
W. Trevor King [Wed, 20 Jan 2010 19:24:51 +0000 (14:24 -0500)]
Optimized BugDir.uuids, caching on-disk bug uuids.
Output of
python -m cProfile -o profile be list
python -c "import pstats; p=pstats.Stats('profile'); p.sort_stats('cumulative').print_stats()"
on my slow netbook before optimization:
ncalls tottime percall cumtime percall filename:lineno(function)
10290 0.417 0.000 10.832 0.001 libbe/bugdir.py:237(uuids)
after optimization:
105 0.063 0.001 0.250 0.002 libbe/bugdir.py:237(uuids)
The old generator produced many more calls than the new
implementation, but the number of calls was not the source of the
slowdown (data not shown ;).
W. Trevor King [Wed, 20 Jan 2010 17:28:26 +0000 (12:28 -0500)]
Add entry points for functionality needed by CFBE (and probably other UIs)
W. Trevor King [Wed, 20 Jan 2010 14:27:16 +0000 (09:27 -0500)]
Adjust to modern mercurial version definition.
hg-stable$ hg log --patch mercurial/util.py
...
changeset: 7640:
9626819b2e3d
user: Matt Mackall <mpm@selenic.com>
date: Sat Jan 10 18:02:38 2009 -0600
summary: refactor version code
diff --git a/mercurial/util.py b/mercurial/util.py
--- a/mercurial/util.py
+++ b/mercurial/util.py
@@ -142,6 +142,14 @@
"""Find the length in characters of a local string"""
return len(s.decode(_encoding, "replace"))
+def version():
+ """Return version information if available."""
+ try:
+ import __version__
+ return __version__.version
+ except ImportError:
+ return 'unknown'
+
# used by parsedate
...
hg-stable$ hg tags
...
1.2 7823:
11efa41037e2
1.1.2 7497:
11a4eb81fb4f
...
W. Trevor King [Wed, 20 Jan 2010 14:06:58 +0000 (09:06 -0500)]
Fix _u_rel_path problems in VCS._children
W. Trevor King [Wed, 20 Jan 2010 12:32:56 +0000 (07:32 -0500)]
Fixed `be help` (used to raise NotImplementedError)
W. Trevor King [Wed, 20 Jan 2010 12:19:56 +0000 (07:19 -0500)]
Add better help message on COMMAND-less be call
W. Trevor King [Tue, 19 Jan 2010 15:46:41 +0000 (10:46 -0500)]
Added shortname (.id.user()) data to `be html`s comment data
W. Trevor King [Tue, 19 Jan 2010 15:37:31 +0000 (10:37 -0500)]
Allow forward slashes (/) in commit email tags in be-handle-mail.
Also move unitsuite definition to the end of the file so it picks up
GenerateGlobalTagsTestCase.
W. Trevor King [Tue, 19 Jan 2010 15:09:12 +0000 (10:09 -0500)]
Fixed libbe.utuil->libbe.util typo in be-handle-mail.
Also removed some references to the old XML interface.
W. Trevor King [Tue, 19 Jan 2010 14:43:37 +0000 (09:43 -0500)]
Use relative paths *._vcs_* methods.
W. Trevor King [Tue, 19 Jan 2010 14:10:25 +0000 (09:10 -0500)]
Merged be.faster-diff branch, fixing #bea/ed5#.
W. Trevor King [Tue, 19 Jan 2010 14:09:42 +0000 (09:09 -0500)]
Marked #bea/ed5# as fixed
W. Trevor King [Tue, 19 Jan 2010 14:04:09 +0000 (09:04 -0500)]
Adjust command.serve.Serve doctest to clarify remaining test failures.
Current test output
$ python test.py libbe
...
FAILED (failures=1, errors=3)
All failures and errors due to unimplemented functionality
Errors:
* Darcs._vcs_isdir() not implemented (for Darcs <= 2.3.1)
* Arch._vcs_path() not implemented
* Arch._vcs_changed() not implemented
Failures:
* command.serve.Serve tests not implemented
W. Trevor King [Tue, 19 Jan 2010 14:02:45 +0000 (09:02 -0500)]
Better error messages in VCS._get
W. Trevor King [Tue, 19 Jan 2010 13:59:18 +0000 (08:59 -0500)]
Work around the extra output of `tla file-find` to get path.
Example output:
* build pristine tree for ...--patch-1
* from import revision: ...--base-0
* patching for revision: ...--patch-1
./{arch}/++pristine-trees/...--patch-1/./.be/unlikely id
W. Trevor King [Tue, 19 Jan 2010 13:48:33 +0000 (08:48 -0500)]
Generate string properly in libbe.util.subproc.CommandError
W. Trevor King [Tue, 19 Jan 2010 13:45:04 +0000 (08:45 -0500)]
Work around Mercurial issue618 in Arch backend.
Also add some NotImplementedErrors for clearer diagnostics.
W. Trevor King [Mon, 18 Jan 2010 21:35:33 +0000 (16:35 -0500)]
Added changed() support for Darcs
W. Trevor King [Mon, 18 Jan 2010 19:28:10 +0000 (14:28 -0500)]
Fix modified ID reference in libbe.diff.Diff._changed_bugs
W. Trevor King [Mon, 18 Jan 2010 19:22:11 +0000 (14:22 -0500)]
Add .changed support to HTTP storage backend.
Also work around urlparse.parse_qs location in Python <= 2.5.
W. Trevor King [Mon, 18 Jan 2010 19:05:59 +0000 (14:05 -0500)]
Add ancestors support to HTTP storage
W. Trevor King [Mon, 18 Jan 2010 18:12:46 +0000 (13:12 -0500)]
Add .changed() support to Hg
W. Trevor King [Mon, 18 Jan 2010 17:46:56 +0000 (12:46 -0500)]
Fix VCS doctest for +revision InvalidID error message
W. Trevor King [Mon, 18 Jan 2010 17:46:08 +0000 (12:46 -0500)]
Add class name to StorageTestCase failure reporting
W. Trevor King [Mon, 18 Jan 2010 17:29:09 +0000 (12:29 -0500)]
Use RevisionedBugDir, not .duplicate_bugdir() in libbe.command.diff
W. Trevor King [Mon, 18 Jan 2010 17:27:16 +0000 (12:27 -0500)]
Optimized libbe.diff.Diff._changed when old bugdir is a RevisionedBugDir
W. Trevor King [Mon, 18 Jan 2010 17:25:17 +0000 (12:25 -0500)]
Added VCS._u_find_id_from_manifest for faster id->path calculation
W. Trevor King [Mon, 18 Jan 2010 15:12:25 +0000 (10:12 -0500)]
Adjust VCSTestCase method docstrings for unittest.
W. Trevor King [Mon, 18 Jan 2010 15:10:30 +0000 (10:10 -0500)]
Added VCS._ancestors
W. Trevor King [Mon, 18 Jan 2010 15:00:31 +0000 (10:00 -0500)]
Added Storage.ancestors
W. Trevor King [Mon, 18 Jan 2010 14:28:16 +0000 (09:28 -0500)]
Moved BugDir.duplicate_bugdir to RevisionedBugDir class
W. Trevor King [Mon, 18 Jan 2010 14:26:53 +0000 (09:26 -0500)]
Ignore paths with _u_path_to_id errors in VCS.changed
W. Trevor King [Mon, 18 Jan 2010 13:45:16 +0000 (08:45 -0500)]
Add .changed() support to Bzr
W. Trevor King [Mon, 18 Jan 2010 13:06:30 +0000 (08:06 -0500)]
Add .changed() support to Git
W. Trevor King [Mon, 18 Jan 2010 13:06:08 +0000 (08:06 -0500)]
Add .changed() support to VCS
W. Trevor King [Mon, 18 Jan 2010 13:02:52 +0000 (08:02 -0500)]
Too much trouble to handle Git's lack of dir versioning in test_get_previous_children
W. Trevor King [Mon, 18 Jan 2010 12:53:59 +0000 (07:53 -0500)]
Add VersionedStorageTestCases in make_versioned_storage_testcase_subclasses
W. Trevor King [Sat, 16 Jan 2010 02:30:04 +0000 (21:30 -0500)]
Added libbe.storage.base.VersionedStorage.changed() and a test.
Also converted libbe.storage.base.VersionedStorage revision ids
from integers to strings.
W. Trevor King [Fri, 15 Jan 2010 19:14:02 +0000 (14:14 -0500)]
Update setup.py to install submodules.
W. Trevor King [Sun, 3 Jan 2010 16:31:04 +0000 (11:31 -0500)]
Merged be.roadmap, adding dev issues #bea/ed5#, #bea/814#, and #bea/343#.
Also changed `be list --uuids` to `be list --ids`
W. Trevor King [Sun, 3 Jan 2010 16:38:53 +0000 (11:38 -0500)]
Added #bea/343# : Attach tests to bugs
W. Trevor King [Sun, 3 Jan 2010 16:33:56 +0000 (11:33 -0500)]
Changed `be list --uuids` to `be list --ids`
W. Trevor King [Sun, 3 Jan 2010 16:06:48 +0000 (11:06 -0500)]
Added doc/distributed_bugtracking with some simple use-case notes
W. Trevor King [Sun, 3 Jan 2010 16:05:57 +0000 (11:05 -0500)]
Add #bea/814# : Add Roundup-like flexibility
W. Trevor King [Sun, 3 Jan 2010 16:04:50 +0000 (11:04 -0500)]
Add #bea/ed5# : Slow and ugly diff implementation
W. Trevor King [Fri, 1 Jan 2010 21:54:30 +0000 (16:54 -0500)]
Merged be.html-storage
Added HTTP storage backend and server
Serve a local repo on http://localhost:8000
be --repo REPO serve
Then connect from other be calls, for example
be --repo http://localhost:8000 list
W. Trevor King [Fri, 1 Jan 2010 21:54:01 +0000 (16:54 -0500)]
Updated NEWS
W. Trevor King [Fri, 1 Jan 2010 21:51:13 +0000 (16:51 -0500)]
Fixed update_copyright.py's subproc import and updated copyrights
W. Trevor King [Fri, 1 Jan 2010 21:55:49 +0000 (16:55 -0500)]
Serve.handle_*() now raise _HandlerError so the .do_*() methods know.
Before there wasn't a good way to tell if the handler had experienced
an error, or just didn't want to return anything.
W. Trevor King [Fri, 1 Jan 2010 21:48:03 +0000 (16:48 -0500)]
Fixed commit handling in commands.serve and storage.http
W. Trevor King [Fri, 1 Jan 2010 21:33:39 +0000 (16:33 -0500)]
Use more kwargs in libbe.command.serve
kwargs make things easier to maintain.
Also make sure the .handle_*() methods return two items
(content,ctype)
even when both are None.
W. Trevor King [Fri, 1 Jan 2010 21:11:48 +0000 (16:11 -0500)]
Improved POST and error handling in `be serve`
POST handling:
Drop the cgi.FieldStorage() in favor of the old urlparse.parse_qs().
We need a dictionary, which FieldStorage is not. However, I added
.read_post_data() since my old self.rfile.read() was hanging. The
read_post_data() implementation comes from the
FieldStorage.__init__().
Error handling:
wrap .handle_*() blocks in try/except to handle Storage errors
W. Trevor King [Fri, 1 Jan 2010 21:10:45 +0000 (16:10 -0500)]
Fixed some stupid typos in libbe/storage/http.py
W. Trevor King [Fri, 1 Jan 2010 20:33:23 +0000 (15:33 -0500)]
Improved POST parsing, fixed Serve._long_help(), added --read-only.
POST parsing via cgi.FieldStorage from Doug Hellmann's
http://blog.doughellmann.com/2007/12/pymotw-basehttpserver.html
W. Trevor King [Fri, 1 Jan 2010 19:43:03 +0000 (14:43 -0500)]
Added libbe.command.serve and libbe.storage.http for HTTP backend.
Now the following works:
some-BE-dir$ ./be serve
$ ./be --repo http://localhost:8000 list
I haven't come up with a clean idea for testing this yet, so other
commands may be broken, but once we get the testing working, it
shouldn't be too hard to get everything working over HTTP :).
W. Trevor King [Fri, 1 Jan 2010 19:41:01 +0000 (14:41 -0500)]
Hand nonexistent paths in VCS._u_search_parent_directories().
search_parent_directries raises an AssertionError if the original path
doesn't exist.
W. Trevor King [Fri, 1 Jan 2010 15:46:23 +0000 (10:46 -0500)]
Return a meaningful Storage.version()
W. Trevor King [Fri, 1 Jan 2010 13:11:08 +0000 (08:11 -0500)]
Updated copyright information
W. Trevor King [Thu, 31 Dec 2009 20:54:12 +0000 (15:54 -0500)]
Merged be.restructure, major internal reorganization.
Added a bunch of classes to make the commands, user interfaces, and
storage backends more abstract and distinct. This should make it much
easier to extend and maintain BE.
Features:
* Directory restructured:
becommands/ -> libbe/commands
submods sorted by functionality.
* Lots of new classes:
Option, Argument, Command
InputOutput, StorageCallbacks, UserInterface
Storage
* Consolidated ID handling in libbe.util.id
* Transitioned VCS backends for Python-based VCSs from subprocess
calss to internal python calls.
Plus the user-visible changes:
* New bugdir/bug/comment ID format replaces old bug:comment format.
* Deprecated support for `be diff` on Arch and Darcs <= 2.3.1. A new
backend abstraction (Storage) makes the former implementation
ungainly.
* Improved command completion.
* Removed commands close, open, email_bugs,
* Flipped some arguments
`be assign BUG-ID [ASSIGNEE]` -> `be status ASSIGNED BUG-ID ...`
`be severity BUG-ID SEVERITY` -> `be severity SEVERITY BUG-ID ...`
`be status BUG-ID STATUS` -> `be status STATUS BUG-ID ...`
In the merge:
* Added 'commit' to list of pagerless commands.
* Updated doc/README.dev
See
#
bea86499-824e-4e77-b085-
2d581fa9ccab/
1100c966-9671-4bc6-8b68-
6d408a910da1#
for a discussion of why the changes were made and some of the
difficulties en-route.