aboutsummaryrefslogtreecommitdiffstats
path: root/libbe/storage
Commit message (Collapse)AuthorAgeFilesLines
* Make libbe.storage.vcs.darcs.Darcs._vcs_listdir() more robust.W. Trevor King2010-12-061-2/+3
| | | | | | | | | | The old version returned [] (for Darcs 2.5) on darcs show files --no-files --patch 'Initial commit' .be (called in `be diff` for `test_usage.sh darcs`), because darcs returned the paths prefixed with './' (e.g. `./.be`, not `.be`). By calculating relative paths and using the relative paths to determine which files belong to the directory, we can handle both prefixed and plain paths.
* Run cmd.cleanup_now() after executing bzr commands.W. Trevor King2010-12-061-0/+10
| | | | | | | | | | | | | | | Otherwise be remove ... blocks if it needs to remove multiple files, since bzrlib.builtins.cmd_remove needs write locks, and the second remove will try to aquire the lock that the first aquire hadn't released. If we force the release, the lock will be available for the second (and later) removal. It's not a problem to call cleanup_now() too often, because calling it clears the cleanup command stack, so I just added explicit cleanups after every bzr .run() call.
* Ran update_copyright.py.W. Trevor King2010-10-211-1/+1
|
* Strip all whitespace from right side of the VCS storage version string.W. Trevor King2010-09-051-1/+1
| | | | The old method failed with Windows-style \r\n endlines, etc.
* Remove useless children[i] from libbe.storage.vcs.base.VCS._children().W. Trevor King2010-09-051-1/+0
|
* Don't assume len(os.path.sep) == 1 in libbe.storage.vcs.base.W. Trevor King2010-09-051-4/+4
|
* Ah, restored altered dirname code to Monotone's root method.W. Trevor King2010-06-271-1/+5
| | | | | | | | | | | | The previous implementation used cwd=path which would fail for non-directory paths. The implementation before that was missing the not from if not os.path.isdir(path): dirname = os.path.dirname(path) which meant it found the dirname when it didn't need to, and not when it did ;).
* Fixed Monotone driver rooting for interface versions >= 8.0.W. Trevor King2010-06-271-11/+8
| | | | | | | I'm not sure where the dirname manipulation came from, but it was screwing things up ;). Also some argument order and indentation cleanups.
* Use _invoke_client (vs. old _u_invoke_client) for Monotone get_workspace_root.W. Trevor King2010-06-261-1/+1
| | | | | | | | | | | | | | | | This fixes Chris' ====================================================================== ERROR: Adding entries with the same ID should not increase the number of children. ---------------------------------------------------------------------- Traceback (most recent call last): ... CommandError: Command failed (1): mtn: misuse: workspace required but not found while executing ['mtn', 'automate', 'get_workspace_root']
* Add a Storage driver for the Monotone VCSW. Trevor King2010-06-262-1/+371
|
* Fix failure message 'X.get' -> 'X.children' in VersionedStorage ↵W. Trevor King2010-06-261-1/+1
| | | | test_get_previous_children
* Removed libbe.storage.vcs.base._get_versionW. Trevor King2010-06-263-21/+14
| | | | | | | | It had been catching exceptions from ._vcs_version, but ._vcs_version should catch its own exceptions. Also use cached results from .version in Darcs and Bzr.version_cmp() rather than calling ._vcs_version directly.
* Ran update_copyright.pyW. Trevor King2010-06-2216-172/+189
|
* Darcs should look in ~/.darcs/author not ~/.darcs/prefs/authorwking2010-06-221-3/+3
| | | | | From: http://darcs.net/manual/node7.html#env:DARCS_EMAIL
* Darcs._vcs_get_user_id() now also checks ~/.darcs/prefs/author|email.wking2010-06-221-4/+6
| | | | Thanks to Gour for pointing out that it should.
* Use 'darcs add --boring' for Darcs > 0.9.10wking2010-06-221-1/+4
|
* Use os.path.join in libbe.storage.util.config.path.wking2010-06-221-1/+3
| | | | | | | | Versus previous hardcoded "~/.bugs_everywhere". Also improve docstrings for * libbe.storage.util.config.path * libbe.ui.util.user.get_user_id
* Fixed Eric Kow's _darcs/prefs/author bug.W. Trevor King2010-05-191-1/+1
|
* Use _vcs_get_file_contents (vs get_file_contents) in Darcs._vcs_get_user_idW. Trevor King2010-05-191-1/+1
|
* Fixed docstrings so only Sphinx errors are "autosummary" and "missing attribute"W. Trevor King2010-02-0714-465/+570
|
* Made Bzr/Darcs.version_cmp() more robust in response to Chris' email.W. Trevor King2010-02-012-18/+30
| | | | | | | | | | | | From: Chris Ball <cjb@laptop.org> Subject: Test suite status ... I ran the wking@drexel.edu-20100130162439-pmh5tg6kuq92x3l5 testsuite on Fedora 13/Rawhide. Had to downgrade Mercurial (bzr-hg doesn't support 1.4.2 yet) and bzr (my Fedora package contained a "b4" in the version string, which breaks libbe/storage/vcs/bzr.py:version_cmp()). ...
* Fixed Chris' "zero name length for Mercurial w/o ~/.hgrc" bug.W. Trevor King2010-02-011-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | From: Chris Ball <cjb@laptop.org> Subject: Test suite status Date: Mon, 01 Feb 2010 11:27:53 -0500 Message-id: <m38wbcor92.fsf@pullcord.laptop.org> ... I hit the "assert len(name) > 0" in libbe/ui/util/libbe.py, coming from hg.py when running with no ~/.hgrc. Fixed by the following patch: === modified file 'libbe/storage/vcs/hg.py' --- libbe/storage/vcs/hg.py 2010-01-21 17:45:49 +0000 +++ libbe/storage/vcs/hg.py 2010-02-01 16:17:03 +0000 @@ -87,7 +87,14 @@ return tmp_stdout.getvalue().rstrip('\n') def _vcs_get_user_id(self): - return self._u_invoke_client('showconfig', 'ui.username') + output = self._u_invoke_client('showconfig', 'ui.username') + if output != "": + return output.rstrip('\n') + else: + # guess missing info + name = libbe.ui.util.user.get_fallback_username() + email = libbe.ui.util.user.get_fallback_email() + return libbe.ui.util.user.create_user_id(name, email) def _vcs_detect(self, path): """Detect whether a directory is revision-controlled using Mercurial"""
* Work around "bzr ls --non-recursive PATH : no list" bug in old bzrlib.W. Trevor King2010-01-281-4/+9
| | | | | | | | | | | | | | | See: https://bugs.launchpad.net/bzr/+bug/158690 Bug affected versions: 0.90.0 (reported) 1.3.1 (my test suite hit it) Doesn't affect versions: 2.0+ (non_recursive -> recursive) But I haven't isolated the source more specifically. Working around it for everything < 2.0 should be safe, but the cutoff could be fine-tuned if someone wants to dig through the bzr.dev history...
* Fix bzrlib.builtins.cmd_cat() output for pre 1.6.0 bzrlibs.W. Trevor King2010-01-281-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixed in bzr.dev revno: 3341.2.1 revision-id: bialix@ukr.net-20080407074826-5lwuyv4dn1qlijg4 parent: pqm@pqm.ubuntu.com-20080407044456-s1a9orh0kssphdh9 committer: Alexander Belchenko <bialix@ukr.net> branch nick: cmd-cat timestamp: Mon 2008-04-07 10:48:26 +0300 message: `bzr cat` no more internally used Tree.print_file(). Merged into bzr.dev's trunk revno: 3512 [merge] revision-id: pqm@pqm.ubuntu.com-20080626004245-dnw85so4xqg8r9hy parent: pqm@pqm.ubuntu.com-20080625230724-lyux37pu8nx8tq34 parent: aaron@aaronbentley.com-20080626001706-wo3w74fwgliy12s4 committer: Canonical.com Patch Queue Manager <pqm@pqm.ubuntu.com> branch nick: +trunk timestamp: Thu 2008-06-26 01:42:45 +0100 message: (bialix) Deprectate (Branch|Repository).print_file, fix cmd_cat Before bzr branch 1.6 bzr.dev$ bzr tags ... bzr-1.5rc1 3418.6.3 bzr-1.6 3606.5.9 ... Fixes: python test.py -q libbe.storage.vcs.bzr ...............................FSome value:1E.. ====================================================================== ERROR: Get should be able to return the previous version. ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/wking/src/fun/be/be.wtk/libbe/storage/base.py", line 976, in test_ get_previous_version ret = self.s.get(self.id, revision=revs[i]) File "/home/wking/src/fun/be/be.wtk/libbe/storage/base.py", line 335, in get value = self._get(*args, **kwargs) File "/home/wking/src/fun/be/be.wtk/libbe/storage/vcs/base.py", line 849, in _ get raise InvalidID(id, revision) InvalidID: unlikely id in revision 1 ...
* Fix bzrlib.builtins.cmd_ls() recursion argument for pre 2.0 bzrlibs.W. Trevor King2010-01-281-1/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | $ python test.py libbe.storage.vcs.bzr ... ====================================================================== ERROR: Children list should be revision dependent. ---------------------------------------------------------------------- Traceback (most recent call last): File ".../libbe/storage/base.py", line 997, in test_ get_previous_children ret = sorted(self.s.children('parent', revision=revs[i])) File ".../libbe/storage/base.py", line 314, in child ren return self._children(*args, **kwargs) File ".../libbe/storage/vcs/base.py", line 811, in _ children path = self.path(id, revision, relpath=False) File ".../libbe/storage/vcs/base.py", line 716, in p ath path = self._vcs_path(id, revision) File ".../libbe/storage/vcs/bzr.py", line 145, in _v cs_path self.repo, revision=revision, recursive=True) File ".../libbe/storage/vcs/bzr.py", line 163, in _v cs_listdir cmd.run(revision=revision, path=path, recursive=recursive) File "/usr/lib/python2.5/site-packages/bzrlib/commands.py", line 800, in ignor e_pipe result = func(*args, **kwargs) TypeError: run() got an unexpected keyword argument 'recursive' ... The change is due to (in bzr.dev): revno: 4206.2.1 revision-id: ian.clatworthy@canonical.com-20090326133831-orvicmmc6w29mpfp parent: pqm@pqm.ubuntu.com-20090326063330-evutyvml3067dpsz committer: Ian Clatworthy <ian.clatworthy@canonical.com> branch nick: bzr.ls-recursive-off timestamp: Thu 2009-03-26 23:38:31 +1000 message: ls should be non-recursive by default Which occured between bzr-1.9rc1 and 2.0rc1.: bzr.dev$ bzr tags 2.0rc1 4634.9.1 ... bzr-1.9rc1 3815.3.1 bzr-2.0.1 4634.73.2 ...
* Implement Arch._vcs_path()W. Trevor King2010-01-273-9/+30
| | | | | | | | | | | | | | | Fixes VersionedStorage_commit_TestCase.test_get_previous_children. Should have fixed VersionedStorage_commit_TestCase.test_get_previous_version too, but 'tla file-find' is buggy: https://bugs.launchpad.net/ubuntu/+source/tla/+bug/513472 Also: * sort children in test_get_previous_children, since we shouldn't require a particular child order * unescape filenames in Arch._diff() * remove debugging prints from Arch._parse_diff() * remove silly blank line in git.py I'd stumbled across ;).
* Implement Arch._vcs_changed().W. Trevor King2010-01-271-2/+46
| | | | Fixes VersionedStorage_changed_TestCase.test_changed failure.
* Fix StorageTestCase.classname -> ._classname()W. Trevor King2010-01-271-2/+2
| | | | | Introduced in wking@drexel.edu-20100127152727-nu58o4g6jea5or7w
* Merged clarifications requested by Ben FinneyW. Trevor King2010-01-275-11/+23
|\
| * Make VCS error messages and Storage test failures more descriptiveW. Trevor King2010-01-275-11/+23
| |
* | Streamlined libbe.command.serve, adding --auth option, #/bea/c1b#, and testing.W. Trevor King2010-01-272-20/+159
|/
* Rework fix for #bea/8fc# : be crashes on outdated id-cacheW. Trevor King2010-01-251-7/+10
| | | | | | | | | | | | | | | | | | | | | | | Now we re-run CachedPathID.init in an 'append' mode, rather than starting over from scratch. This avoids problems like ====================================================================== ERROR: Should not be able to add children to non-directories. ---------------------------------------------------------------------- Traceback (most recent call last): File ".../be.wtk/libbe/storage/base.py", line 680, in test_add_invalid_directory self.s.add('child', 'parent', directory=False) File ".../be.wtk/libbe/storage/base.py", line 248, in add self._add(id, *args, **kwargs) File ".../be.wtk/libbe/storage/vcs/base.py", line 737, in _add path = self._cached_path_id.add_id(id, parent) File ".../be.wtk/libbe/storage/vcs/base.py", line 267, in add_id parent_path = self.path(parent, relpath=True) File ".../be.wtk/libbe/storage/vcs/base.py", line 246, in path raise InvalidID(uuid) InvalidID: parent in revision None and similar.
* Don't print 'Multiple paths' message on cache regenW. Trevor King2010-01-251-3/+3
|
* Fixed #bea/8fc# : be crashes on outdated id-cacheW. Trevor King2010-01-241-1/+5
| | | | Also explicitly avoid loading or saving settings for root comments.
* Added testSimplePropertySetStorageSave and relavant rewrites to settings_objectW. Trevor King2010-01-221-10/+45
| | | | | | | 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.
* Add Bzr._vcs_exists() anyway :pW. Trevor King2010-01-221-1/+8
|
* We don't need VCS._vcs_exists yet, with exists only used in _addW. Trevor King2010-01-221-1/+1
|
* Add VCS._exists(), VCS.path(). Fix default handling in VCS._get().W. Trevor King2010-01-221-25/+37
| | | | | | | | | | 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.
* Added _EMPTY and Storage.exists() to libbe.storage.base.W. Trevor King2010-01-221-12/+43
| | | | | | | 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?".
* Reworked settings_object module, but command.init tests still fail:W. Trevor King2010-01-221-119/+226
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | $ 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' ...
* Added unprimableVal option to primed_property.W. Trevor King2010-01-221-5/+14
| | | | For clearer handling of the "Tried to load but failed" case.
* Update libbe.storage.util.settings_object tests for new ._get_saved_settingsW. Trevor King2010-01-211-1/+2
|
* Fix version import for mercurial <= 1.1.2W. Trevor King2010-01-211-1/+1
|
* Fix not-yet-loaded bug in SavedSettingsObject._get_saved_settings()W. Trevor King2010-01-201-6/+19
| | | | | | The earlier implementation only copied in the currently loaded properties and the required ones. The new implementation copies in _all_ the non-default properties.
* Adjust to modern mercurial version definition.W. Trevor King2010-01-201-3/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 ...
* Fix _u_rel_path problems in VCS._childrenW. Trevor King2010-01-202-3/+4
|
* Use relative paths *._vcs_* methods.W. Trevor King2010-01-191-3/+6
|
* Better error messages in VCS._getW. Trevor King2010-01-191-3/+5
|
* Work around the extra output of `tla file-find` to get path.W. Trevor King2010-01-191-1/+2
| | | | | | | | 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
* Work around Mercurial issue618 in Arch backend.W. Trevor King2010-01-191-4/+20
| | | | Also add some NotImplementedErrors for clearer diagnostics.