| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
| |
This makes cleaning up UIs easier: just call disconnect() :p.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I ran across this when the hg unittests broke the vcs.base unittests:
$ python test.py libbe.storage.vcs.base libbe.storage.vcs.hg
...
OK
$ python test.py libbe.storage.vcs.hg libbe.storage.vcs.base
...
File ".../libbe/storage/vcs/base.py", line 914, in libbe.storage.vcs.base.VCSTestCase.Class._u_rel_path
Failed example:
vcs._u_rel_path("./a", ".")
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.storage.vcs.base.VCSTestCase.Class._u_rel_path[4]>", line 1, in <module>
vcs._u_rel_path("./a", ".")
File ".../libbe/storage/vcs/base.py", line 921, in _u_rel_path
path = os.path.abspath(path)
File "/usr/lib/python2.5/posixpath.py", line 403, in abspath
path = join(os.getcwd(), path)
OSError: [Errno 2] No such file or directory
...
FAILED (failures=1)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Running
python test.py libbe.storage.vcs.hg libbe.storage.vcs.bzr
with the old setup produced lots of
Traceback (most recent call last):
File ".../libbe/storage/vcs/base.py", line 1010, in setUp
self.s.init()
File ".../libbe/storage/base.py", line 170, in init
return self._init()
File ".../libbe/storage/vcs/base.py", line 664, in _init
self._vcs_init(self.repo)
File ".../libbe/storage/vcs/bzr.py", line 88, in _vcs_init
cmd.run(location=path)
File ".../python2.5/site-packages/bzrlib/builtins.py", line 1685, in run
format = bzrdir.format_registry.make_bzrdir('default')
File ".../python2.5/site-packages/bzrlib/bzrdir.py", line 3452, in make_bzrdir
return self.get(key)()
File ".../python2.5/site-packages/bzrlib/bzrdir.py", line 3398, in helper
bd.set_branch_format(_load(branch_format))
File ".../python2.5/site-packages/bzrlib/bzrdir.py", line 3385, in _load
[factory_name])
File "/var/lib/python-support/python2.5/mercurial/demandimport.py", line 108, in _demandimport
setattr(mod, x, _demandmod(x, mod.__dict__, locals))
File ".../python2.5/site-packages/bzrlib/lazy_import.py", line 106, in __getattribute__
obj = _replace()
File ".../python2.5/site-packages/bzrlib/lazy_import.py", line 88, in _replace
extra=e)
IllegalUseOfScopeReplacer: ScopeReplacer object 'branch' was used incorrectly: Object already cleaned up, did you assign it to another variable?: _factory
|
|
|
|
| |
Otherwise Arch will return '.arch-ids' in its list, etc.
|
|
|
|
|
|
| |
Also removed final check for 'parent' existence in
Storage_add_remove_TestCase.test_remove_nonrooted()
because some VCSs (e.g. Git) don't keep track of blank directories.
|
| |
|
| |
|
| |
|
|
|
|
| |
All of its functionality has moved off into more focused modules.
|
|
|
|
| |
I'd missed some calls when I made the changes.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This entailed a fairly thorough cleanup of libbe.util.id.
Remaining unimplemented completion helpers:
* complete_assigned()
* complete_extra_strings()
Since these would require scanning all (active?) bugs to compile
lists, and I was feeling lazy...
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
._vcs_isdir() and ._vcs_listdir() will need to parse the output of
darcs show files [options] --patch REVISION PATH
but both the --patch option and the PATH argument are new, and I can't
get a recent enough version of Darcs to compile on my system.
Theoretically they will work, but they remain untested for now.
I don't think it's worth rolling my own
darcs show files --patch REVISION
to support earlier versions of Darcs, since the only solution I can
think of now would be to check out the given revision and use
os.walk() or some such, and that would be really ugly...
Also added .version_cmp() for easy version comparison.
Reindented ._vcs_get_file_contents() to remove trailing elses since
the if clauses all contain returns.
|
|
|
|
|
| |
Also re-enabled the unitsuite in libbe.storage.vcs.base, which
I'd disabled while testing the VCS unittests.
|
|
|
|
|
| |
Now it returns '.' when you ask for the relative path from root to
itself. It used to raise AssertionError or InvalidPath.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This should make repeated calls to Hg storage instances _much_ faster,
since we avoid repeatedly loading and tearing down a python subprocess.
For example, the testsuite runs ~6x faster on my box.
Here's a run with the old Hg implementation:
$ python test.py libbe.storage.vcs.hg
...
=================================
ERROR: test_get_previous_children
---------------------------------
Traceback (most recent call last):
...
NotImplementedError
---------------------------------
Ran 49 tests in 133.285s
FAILED (errors=1)
A run with the new implementation gives the same results, except for:
Ran 49 tests in 22.328s
|
| |
|
|
|
|
|
|
|
| |
+ some minor fixes to vcs/base.py and vcs/bzr.py
Also removed .be/id-cache, which should never have been versioned in
the first place.
|
|
|
|
|
|
|
|
| |
Now they both pass
VersionedStorage_commit_TestCase.test_commit_revision_ids()
The .children() implementation for previous revisions lacks the
working directory's id<->path cache, so it's fairly slow...
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes
$ python be diff -2
Usage: be [options]
be: error: no such option: -2
and we now get the correct output
$ python be diff -2
Usage: be diff [options] [REVISION]
be: error: no such option: -2
|
| |
|
|
|
|
|
| |
This should make repeated calls to Bzr storage instances _much_ faster,
since we avoid repeatedly loading and tearing down a python subprocess.
|
|
|
|
| |
self.s.init()
|
|
|
|
|
|
| |
And
python test.py libbe.storage.vcs.base
passes again.
|
| |
|
|
|
|
| |
It may need access to the tty for the spawned editor.
|
|
|
|
|
|
| |
Also added ConnectionError pretty-print to ui.command_line, storage
version checking to BugDir.duplicate_bugdir(), and optional revision
argument to Storage.storage_version().
|
|
|
|
| |
Now commands automatically check for storage version compatibility.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Note that it only upgrades on-disk versions, so you can't use a
non-VCS storage backend whose version isn't your command's current
storage version. See #bea/110/bd1# for reasoning. To see the on-disk
storage version, look at
.be/version
To see your command's supported storage version, look at
be --full-version
I added test_upgrade.sh to exercise the upgrade mechanism on BE's own
repository.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The old
.requires_*
thing was rediculous. The new ._get_*() callbacks allow the caller
to provide a means for getting the expensive structures, which the
command can use, or not, as required. This will also make it easier
to implement the completion callbacks.
The callbacks should probably have matching .set_*() methods, to
avoid the current cache tweaking
cmd._storage = ...
etc. But that can wait for now...
|
| |
|
| |
|
| |
|
| |
|