aboutsummaryrefslogtreecommitdiffstats
path: root/libbe/storage/vcs
Commit message (Collapse)AuthorAgeFilesLines
* Transition to libbe.LOG for loggingW. Trevor King2013-01-241-7/+6
| | | | | | | This makes it easier to tweak log verbosity and redirect logs to other handlers. For example, the WSGI servers are unstable with stderr closed, and crash with an IOError if they try to print a warning to stderr.
* storage:vcs:git: don't accept pygit2 version 0.17.3.W. Trevor King2012-10-271-2/+2
| | | | | | | | | | | | | | | | My Repository.revparse_single() series was merged into pygit2 with: Merge: 3e9daa4 0238fb7 Author: J. David Ibáñez <jdavid.ibp@gmail.com> Date: Tue Sep 25 15:10:55 2012 +0200 Merge remote-tracking branch 'wking/revparse' But this happened after the 0.17.3 release. The next pygit2 release should contain the .revparse_single() code. The getattr() hackery works because versions of pygit2 before 0.17.3 lacked a __version__ attribute.
* doc: update :data: to :py:data: for modern Sphinx.W. Trevor King2012-10-261-5/+5
|
* doc: update :class: to :py:class: for modern Sphinx.W. Trevor King2012-10-268-15/+15
|
* storage:vcs:base: avoid `is not a item name` Sphinx error.W. Trevor King2012-10-261-1/+1
|
* doc: update :mod: to :py:mod: for modern Sphinx.W. Trevor King2012-10-261-2/+2
|
* Ran update-copyright.py.W. Trevor King2012-10-168-8/+8
|
* storage:vcs:git: check for existence of pygit2.__version__.W. Trevor King2012-09-171-0/+5
| | | | | | | | | | Now that my pull request has been accepted, we can be fairly confident that future releases of pygit2 will expose this attribute. The accepted patch was a bit different from the original submission: Add 'pygit2.__version__' for easy access from client software. https://github.com/libgit2/pygit2/pull/128 commit f10d2b7b3f0c67d81b175326035e4813420156bd
* storage:vcs:git: move Git to ExecGit and add PygitGit using pygit2.W. Trevor King2012-09-131-11/+238
| | | | | | | | | | | | | | | | | | | | | | | | | | | | If `pygit2` is installed, use it (via PygitGit) rather than calling the stand-alone `git` executable for all the Git (via ExecGit) for all the Git storage stuff. This saves one serializing/deserializing and process setup/teardown. I timed each test suite by commenting out one of the `make_vcs_testcase_subclasses()` calls at the end of `git.py` and running $ time python test.py libbe.storage.vcs.git The ExecGit tests ran in 13.7s and the PygitGit tests ran in 3.6s for a 3.8x speedup. I had to stretch pygit2 a bit to get a clean fit, so if you want to test this, you'll need to build pygit2 with the following merge requests: Add 'pygit2.__version__' for easy access from client software. https://github.com/libgit2/pygit2/pull/128 commit 0238fb72dfdf2a2308f2da347717cbaafddc4b83 signature: Add keyword argument parsing to Signature(). https://github.com/libgit2/pygit2/pull/129 commit c934858b629f40221406f34166dd77e881b9d5fd repository: add Repository.revparse_single() https://github.com/libgit2/pygit2/pull/131 commit 3afdc8b2f59ed137531671fedde36f3a39cbcc9d
* storage:vcs:base: fix _gets_ -> _get_ typo in test_gets_existing_user_id.W. Trevor King2012-09-131-1/+1
| | | | | VCS_get_user_id_TestCase.test_gets_existing_user_id is now VCS_get_user_id_TestCase.test_get_existing_user_id
* storage:vcs:base: fix realtive -> relative typo in _u_abspath docstring.W. Trevor King2012-09-131-1/+1
|
* Allow symlinks in bugdir directories.W. Trevor King2012-08-281-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | This allows you to do things like: $ mkdir -p /tmp/joint-repo/.be $ cd /tml/joint-repo/.be $ ln -s ~/src/be/.be/version $ ln -s ~/src/be/.be/bea86499-824e-4e77-b085-2d581fa9ccab/ $ ln -s ~/src/BEurtle/.be/7017b289-f207-4e39-9746-f58323404eba/ $ be list without crashing with a: Traceback (most recent call last): File ".../libbe/storage/base.py", line 316, in children return self._children(*args, **kwargs) File ".../libbe/storage/vcs/base.py", line 820, in _children path = self.path(id, revision, relpath=False) File ".../libbe/storage/vcs/base.py", line 721, in path path = self._cached_path_id.path(id) File ".../libbe/storage/vcs/base.py", line 280, in path raise InvalidID(uuid) libbe.storage.base.InvalidID: 7017b289-f207-4e39-9746-f58323404eba in revision None Currently it only lists the first bug directory it comes across, but after this patch, it doesn't crash ;).
* storage:vcs:hg: remove grandchildren from Hg._vcs_listdir.W. Trevor King2012-08-231-1/+4
| | | | | | | | | | | | | | | This fixes: From: Phil Schumm Date: Thu, 23 Aug 2012 08:15:21 -0500 Subject: [Be-devel] -be diff- under Hg ... I've just noticed that -be diff- seems to yield different output under Git than it does under Hg (e.g., in a Mercurial +repository, -be diff- appears to show all changes as new bugs rather than modified). ...
* storage:vcs:hg: fix missformed file_a -> file_b message typo.W. Trevor King2012-08-231-1/+1
|
* Ran update-copyright.py.W. Trevor King2012-02-168-80/+80
|
* Fix my busted 1512c0e2a64e patch to libbe/util/encoding.py.W. Trevor King2011-11-131-2/+2
| | | | | | | | | | | | | | Some temporary changes to encoding.py seem to have been added to commit 1512c0e2a64e19c8d4e5697257a4df5ddd8bc727 Author: W. Trevor King <wking@drexel.edu> Date: Tue Nov 8 07:14:43 2011 -0500 by accident. The initial change came from discussions with Niall Douglas, during which I realized that "filesystem encoding" ususally means the encoding for the *path*, not the *contents*. To avoid further confusion I'd renamed `get_filesystem_encoding` to the less ambiguous `get_text_file_encoding`. This commit should complete the transition.
* Ran update_copyright.py.W. Trevor King2011-11-092-0/+2
|
* Oops, that forgot the equals part of Mercurial 1.9 or greater.W. Trevor King2011-09-071-1/+1
|
* Adjust Mercurial execution so it works with version 1.9 and earlier.W. Trevor King2011-09-071-3/+9
| | | | | | | This makes the changes for 1.9 brought in by bb645f8e489b9f50cd0aec7237ec9adb721797a8 optional. If the Mercurial version is 1.9 or greater, the new code is used. Otherwise, the old code is used.
* Move Bzr.version_cmp to VCS.version_cmp.W. Trevor King2011-09-072-92/+91
| | | | The version comparison code will be useful for all VCSs.
* Merge remote branch 'pschumms/master'W. Trevor King2011-09-071-6/+4
|\
| * Fixed problem with Hg support under version 1.9 ↵Phil Schumm2011-07-281-6/+4
| | | | | | | | (mercurial.dispatch.dispatch() now takes a single request object with option for capturing output stream)
* | Remove redundant re import from previous bzr version_cmp patch.W. Trevor King2011-09-071-1/+0
| |
* | Enhance Bzr.version_cmp to handle non-numeric versionsMichel Alexandre Salim2011-09-071-9/+50
|/ | | | | | | | | | | | bzr uses non-numeric tags to indicate prereleases; previously, this triggers an exception in be's Bzr module as version comparison is only supported between version strings that only contain numbers and dots. This patch extends version_cmp to support a single non-numeric pre-release string of arbitrary length (e.g. 'a', 'b', 'pre', 'rc'), and extends the docstring tests to cover this extension. Signed-off-by: Michel Alexandre Salim <salimma@fedoraproject.org>
* Run update_copyright.py.W. Trevor King2011-05-257-3/+10
|
* Use open() instead of file() in CachedPathID doctests (2to3 compatability).W. Trevor King2011-05-121-3/+3
|
* Remove form feeds (for compatibility with 2to3).W. Trevor King2011-05-127-7/+7
|
* Add libbe.ui.util.user.get_fallback_fullname() and use pwd when possible.W. Trevor King2011-04-142-2/+2
| | | | This patch is based on Julien Muchembled's pwd suggestions.
* Work around bzr filelocking issue on Windows.W. Trevor King2011-02-242-2/+7
|
* Local imports and better missing-client detection in client-based VCS classes.W. Trevor King2011-02-224-20/+33
|
* Correct version for recent bzrlib fix.W. Trevor King2011-02-221-9/+9
| | | | | | | | | | | | | | | Rather than guessing from the output of `bzr tags`, I actually looked in the realease notes and tracked the removal of run_direct() to 2.2b2, which is confirmed by the r5146 patch itself: bzr.dev $ ./bzr log -p -n 0 -r 5146 | grep -1 deprec + + @deprecated_method(deprecated_in((2, 2, 0))) def run_direct(self, *args, **kwargs): -- + + @deprecated_method(deprecated_in((2, 2, 0))) def run_direct(self, *args, **kwargs):
* Don't call cmd.cleanup_now() for recent Bazaar versions.W. Trevor King2011-02-221-9/+18
| | | | | | | | | | | | | | | | | | | Bug reported by Michael Chaffin: > C:\XXX\ZZZ>be init > Traceback (most recent call last): > ... > AttributeError: 'cmd_root' object has no attribute '_operation' Due to changes in bzrlib: revno: 5146 [merge] committer: Canonical.com Patch Queue Manager <pqm@pqm.ubuntu.com> branch nick: +trunk timestamp: Mon 2010-04-12 04:09:46 +0100 So for versions of bzr since then, we don't have to worry about calling cleanup_now() anymore.
* Merge commit 'refs/merge-requests/3' of git://gitorious.org/be/beChris Ball2011-01-081-1/+1
|\
| * Refrain from committing outstanding changes.Robert Lehmann2010-11-211-1/+1
| | | | | | | | This makes be-commit act more like git-commit.
* | Bumped to version 1.0.01.0.0Chris Ball2011-01-088-8/+9
| |
* | 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
|
* 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-227-81/+88
|
* 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
|