| 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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
._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 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.
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Running
python test.py libbe.storage.vcs
yields some EmptyCommit problems, an issue with bzr revision ids, and
some trouble with git's remove(), but nothing too critical.
On the bright side, now
./be list
Detects and uses the bzr backend :).
Onwards to moving over the remaining commands...
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We have to work around the same issue as mercurial (hg) issue 618. I
can't find a Darcs bug report for this, but it's been fixed somewhere
between 1.0.9 and 2.3.1.
Example scripts demonstrating the bug:
$ darcs=/usr/bin/darcs
$ mkdir x; cd x; $darcs init; echo a > b; $darcs add b; \
$darcs record --all --author 'x <a@b.com>' --logfile b; \
echo z>b; $darcs record --all --author 'x <a@b.com>' --logfile b; \
echo g>b; $darcs record --all --author 'x <a@b.com>' --logfile b; \
cd ..; rm -rf x > /dev/null; $darcs --version
Finished recording patch 'a'
No changes!
No changes!
1.0.9 (release)
And showing it's been fixed:
$ darcs=~/.cabal/bin/darcs
$ mkdir x; cd x; $darcs init; echo a > b; $darcs add b; \
$darcs record --all --author 'x <a@b.com>' --logfile b; \
echo z>b; $darcs record --all --author 'x <a@b.com>' --logfile b; \
echo g>b; $darcs record --all --author 'x <a@b.com>' --logfile b; \
cd ..; rm -rf x > /dev/null; $darcs --version
Finished recording patch 'a'
Finished recording patch 'z'
Finished recording patch 'g'
2.3.1 (release)
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For example, hg can't:
$ mkdir x; cd x;
x$ hg init;
x$ echo a> b; hg add b;
x$ hg commit -m 'r1';
x$ hg commit -m 'r2';
nothing changed
x$ hg log;
changeset: 0:e30558c36fca
tag: tip
user: W. Trevor King <wking@drexel.edu>
date: Sun Dec 13 19:48:47 2009 -0500
summary: hi
x$ cd ..; rm -rf x
We shouldn't need this functionality anyway ;).
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
The output version strings change:
Version 1.5.4.3:
Created initial commit 217efa7: MESSAGE
Created commit acb3066: MESSAGE
Version 1.6.4.4:
[master (root-commit) c5b48cf] MESSAGE
[master 66a48c1] MESSAGE
Instead, get the full revid, and look for its beginning in the output.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
settings_object.py
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Rather than just having .read_only to set write permissions and
assuming that read was always legal. We also added user and backend
control of both readable and writeable:
do you want to read/write?
and
can you read/write?
Specialized NotSupported into NotWriteable and NotReadable.
Added automatic unicode encoding on .set(), and decode option on
.get().
|