aboutsummaryrefslogtreecommitdiffstats
path: root/libbe/storage
Commit message (Collapse)AuthorAgeFilesLines
* Added root directory handling to VCS._u_rel_path().W. Trevor King2009-12-291-3/+8
| | | | | Now it returns '.' when you ask for the relative path from root to itself. It used to raise AssertionError or InvalidPath.
* Adjust Git._vcs_isdir() to Python-2.5-compatible syntaxW. Trevor King2009-12-291-1/+2
|
* Updated Hg backend to support .children(revision).W. Trevor King2009-12-292-5/+37
|
* Hg storage now based off mercurial module, not 'hg' executible.W. Trevor King2009-12-292-22/+40
| | | | | | | | | | | | | | | | | | | | | | | | 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
* Updated Git backend to support .children(revision).W. Trevor King2009-12-283-4/+26
| | | | | | | + 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.
* Fixed VCS.children() and Bzr.children() for non-None revisions.W. Trevor King2009-12-283-12/+102
| | | | | | | | 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...
* Added VersionedStorage_commit_TestCase.test_commit_revision_ids()W. Trevor King2009-12-281-0/+23
|
* Bzr storage now based off bzrlib module, not 'bzr' executible.W. Trevor King2009-12-281-38/+76
| | | | | This should make repeated calls to Bzr storage instances _much_ faster, since we avoid repeatedly loading and tearing down a python subprocess.
* VersionedStorage_commit_TestCase now allows for versioned files created by ↵W. Trevor King2009-12-281-4/+17
| | | | self.s.init()
* libbe.storage.vcs.base.VCS._init() now creates the '.be/version' file.W. Trevor King2009-12-282-17/+34
| | | | | | And python test.py libbe.storage.vcs.base passes again.
* Moved InvalidStorageVersion from libbe.command to libbe.storageW. Trevor King2009-12-273-7/+24
| | | | | | Also added ConnectionError pretty-print to ui.command_line, storage version checking to BugDir.duplicate_bugdir(), and optional revision argument to Storage.storage_version().
* Added storage.Storage.storage_version() and command.InvalidStorageVersion.W. Trevor King2009-12-274-24/+33
| | | | Now commands automatically check for storage version compatibility.
* Fixed libbe.storage.util.upgradeW. Trevor King2009-12-272-72/+164
| | | | | | | | | | | | | 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.
* Fixed libbe.command.diff + ugly BugDir.duplicate_bugdir implementationW. Trevor King2009-12-1511-55/+73
| | | | | | | | | | | | | | | | | | | | | 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.
* Transitioned comment to Command formatW. Trevor King2009-12-142-7/+8
|
* Transitioned init to Command formatW. Trevor King2009-12-141-4/+6
|
* The VCS storage backends are all mostly working now.W. Trevor King2009-12-132-3/+1
| | | | | | | | | | | | | 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...
* Moved Arch over to Storage formatW. Trevor King2009-12-132-83/+135
|
* Move Darcs over to Storage format.W. Trevor King2009-12-132-74/+96
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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)
* Check for repo existence before initializing VCSW. Trevor King2009-12-131-2/+4
|
* Adjust Bzr._vcs_revision_id for 1-indexed revision ids.W. Trevor King2009-12-131-1/+1
|
* Adjust Hg._vcs_revision_id for 1-indexed revision ids.W. Trevor King2009-12-131-0/+2
|
* Don't require new revisions on empty commits.W. Trevor King2009-12-131-4/+7
| | | | | | | | | | | | | | | | | | | 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 ;).
* Work around mercurial (hg) issue 618.W. Trevor King2009-12-131-1/+13
|
* Don't regexp out the short-revid in Git._vcs_commit()W. Trevor King2009-12-131-8/+2
| | | | | | | | | | | 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.
* Fix Git._vcs_revision_id() offset bug.W. Trevor King2009-12-133-6/+13
|
* Handle non-int args to VCS.revision_id at the VCS level.W. Trevor King2009-12-132-4/+5
|
* Adjust Hg._vcs_revision_id to bail cleanly on non-int revidsW. Trevor King2009-12-132-0/+5
|
* Use detect rather than catching errors in _vcs_root().W. Trevor King2009-12-132-56/+11
|
* .bzr transition.W. Trevor King2009-12-133-37/+58
|
* More fixes for libbe.storage.vcs.hg + .git transition.W. Trevor King2009-12-133-58/+72
|
* Fixes to get libbe.storage.vcs.hg passing tests.W. Trevor King2009-12-131-2/+3
|
* Converted libbe.storage.vcs.hg to new Storage format.W. Trevor King2009-12-133-64/+82
|
* Converted libbe.storage.vcs.base to new Storage format.W. Trevor King2009-12-135-643/+651
|
* Moved be to libbe.ui.command_line and transitioned to Command format.W. Trevor King2009-12-121-4/+4
|
* Added libbe.ui.util.user for managing user ids.W. Trevor King2009-12-122-7/+6
|
* Moved properties.py and settings_object.py to libbe/storage/util/W. Trevor King2009-12-083-0/+13
|
* Transitioned bugdir.py to new storage format.W. Trevor King2009-12-083-4/+173
|
* Transitioned comment.py to new storage format.W. Trevor King2009-12-082-0/+0
|
* Use .storage.is_read/writeable() rather than .sync_with_disk() in ↵W. Trevor King2009-12-081-8/+8
| | | | settings_object.py
* Use mapfile to only create & parse mapfile strings, not filesW. Trevor King2009-12-081-10/+0
|
* Extended libbe.storage.base for separate read/write control.W. Trevor King2009-12-081-36/+94
| | | | | | | | | | | | | | 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().
* Added libbe.storage.base and test suite.W. Trevor King2009-12-081-0/+687
|
* Initial directory restructuring to clarify dependenciesW. Trevor King2009-12-0711-0/+3365