Changelog¶
To install the unreleased libvcs version, see developmental releases.
pip:
$ pip install --user --upgrade --pre libvcs
libvcs 0.37.x (unreleased)¶
Upcoming changes will be written here.
libvcs 0.36.0 (2025-06-22)¶
Improvements¶
Add support for SCP-style Git URLs without requiring
git+ssh://prefix (#490)URLs like
git@github.com:org/repo.gitare now recognized as Git repositoriescreate_project()can now auto-detect VCS type for these URLsAddresses issues reported in vcspull#49 and vcspull#426
libvcs 0.35.1 (2025-06-21)¶
Bug fixes¶
Development¶
libvcs 0.35.0 (2025-02-22)¶
Breaking changes¶
run() now uses text=True (#485)¶
This means that unicode, not bytes, will be used for running subprocess
commands in libvcs. If there are any compatibility issues with this, please file
a ticket.
Development¶
chore: Implement PEP 563 deferred annotation resolution (#483)¶
Add
from __future__ import annotationsto defer annotation resolution and reduce unnecessary runtime computations during type checking.Enable Ruff checks for PEP-compliant annotations:
For more details on PEP 563, see: https://peps.python.org/pep-0563/
libvcs 0.34.0 (2024-11-22)¶
Maintenance only, no bug fixes, or new features
Development¶
Project and package management: poetry to uv (#479)¶
uv is the new package and project manager for the project, replacing Poetry.
Build system: poetry to hatchling (#479)¶
Build system moved from poetry to hatchling.
libvcs 0.33.0 (2024-10-13)¶
New features¶
Python 3.13 support (#477)¶
Added Python 3.13 to package trove classifiers and CI tests.
libvcs 0.32.3 (2024-10-13)¶
Bug fixes¶
Pytest fixtures
hg_remote_repo_single_commit_post_init()andgit_remote_repo_single_commit_post_init()now support passingenvfor VCS configuration.Both functions accept
hgconfigandgitconfigfixtures, now applied in thehg_repoandgit_repofixtures.
libvcs 0.32.2 (2024-10-13)¶
Bug fixes¶
Pytest fixtures:
git_repoandhg_repo: Set configuration for both fixtures.
libvcs 0.32.1 (2024-10-12)¶
Revert accidental commit¶
Update to commands for Git from #465 were pushed to trunk before being prepared (even for experimental use).
libvcs 0.32.0 (2024-10-12)¶
Breaking changes¶
pytest fixtures: Session-scoped hgconfig and gitconfig (#475)¶
These are now set by set_hgconfig and set_gitconfig, which set HGRCPATH and GIT_CONFIG, instead of overriding HOME.
Documentation¶
Updates for pytest plugin documentation.
libvcs 0.31.0 (2024-10-12)¶
Breaking changes¶
pytest plugin: Improve performacne via session-based scoping (#472)¶
Improved test execution speed by over 54% by eliminated repetitive repository reinitialization between test runs. Git, Subversion, and Mercurial repositories are now cached from an initial starter repository
pytest fixtures: git_local_clone renamed to example_git_repo (#468)¶
Renamed git_local_clone to example_git_repo for better understandability in
documentation / doctests.
cmd: Listing method renamed (#466)¶
libvcs.cmd.git.GitCmd._list()->libvcs.cmd.git.Git.ls()libvcs.cmd.svn.Svn._list()->libvcs.cmd.svn.Svn.ls()
libvcs 0.30.1 (2024-06-18)¶
Bug Fixes¶
Tests¶
Documentation¶
README: Overhaul and fixes
libvcs 0.30.0 (2024-06-18)¶
New features¶
urls: AWS CodeCommit support (#443)¶
Support for AWS CodeCommit URL patterns. Examples:
HTTPS:
https://git-codecommit.us-east-1.amazonaws.com/v1/repos/testSSH:
ssh://git-codecommit.us-east-1.amazonaws.com/v1/repos/testHTTPS (GRC):
codecommit::us-east-1://testcodecommit://test
Breaking changes¶
urls: Variable changes (#463)¶
RE_PIP_REVmoved fromlibvcs.url.gittolibvcs.url.constants.Regex pattern for user (e.g.,
git@) decoupled toRE_USER.RE_PATHandSCP_REGEX(nowRE_SCP) no longer include user regex patternExisting patterns now use
RE_USERexplicitly.
REGEX_SCPrenamed toRE_SCPfor consistency.
Documentation¶
Automatically linkify links that were previously only text.
Fix docstrings in
query_listforMultipleObjectsReturnedandObjectDoesNotExist.
Development¶
poetry: 1.8.1 -> 1.8.2
See also: https://github.com/python-poetry/poetry/blob/1.8.2/CHANGELOG.md
Code quality: Use f-strings in more places (#460)
via ruff 0.4.2.
libvcs 0.29.0 (2024-03-24)¶
Maintenance only, no bug fixes, or new features
Development¶
Aggressive automated lint fixes via
ruff(#458)via ruff v0.3.4, all automated lint fixes, including unsafe and previews were applied:
ruff check --select ALL . --fix --unsafe-fixes --preview --show-fixes; ruff format .
Branches were treated with:
git rebase \ --strategy-option=theirs \ --exec 'poetry run ruff check --select ALL . --fix --unsafe-fixes --preview --show-fixes; poetry run ruff format .; git add src tests; git commit --amend --no-edit' \ origin/master
poetry: 1.7.1 -> 1.8.1
See also: https://github.com/python-poetry/poetry/blob/1.8.1/CHANGELOG.md
-
Related formattings. Update CI to use
ruff check .instead ofruff ..See also: https://github.com/astral-sh/ruff/blob/v0.3.0/CHANGELOG.md
libvcs 0.28.2 (2024-02-17)¶
Fixes¶
Testing¶
libvcs 0.28.1 (2024-02-08)¶
Packaging¶
libvcs 0.28.0 (2024-02-07)¶
Improvement¶
libvcs 0.27.0 (2024-02-06)¶
Development¶
-
Add flake8-commas (COM)
Add flake8-builtins (A)
Add flake8-errmsg (EM)
CI¶
Move CodeQL from advanced configuration file to GitHub’s default
libvcs 0.26.0 (2023-11-26)¶
Breaking changes¶
Bug fixes¶
Development¶
Documentation¶
libvcs 0.25.1 (2023-11-23)¶
Packaging¶
Move
gp-libstotestdependencies
libvcs 0.25.0 (2023-11-19)¶
Maintenance only, no bug fixes, or new features
Packaging¶
Poetry: 1.6.1 -> 1.7.0
See also: https://github.com/python-poetry/poetry/blob/1.7.0/CHANGELOG.md
Move formatting from
blacktoruff format(#448)This retains the same formatting style of
blackwhile eliminating a dev dependency by using our existing rust-basedrufflinter.Packaging (poetry): Fix development dependencies
Per Poetry’s docs on managing dependencies and
poetry check, we had it wrong: Instead of using extras, we should create these:[tool.poetry.group.group-name.dependencies] dev-dependency = "1.0.0"
Which we now do.
Development¶
CI: Update action package to fix warnings
dorny/paths-filter: 2.7.0 -> 2.11.1
libvcs 0.24.0 (2023-10-22)¶
Bug fixes¶
Packaging¶
Development¶
libvcs 0.23.0 (2023-08-20)¶
Maintenance only, no bug fixes, or new features
Development¶
Post-release: v0.23.0post0 (2023-08-20)¶
Fixes code comments cleaned up by
ruff, but missed in QA. In the future, even when using an automated tool, we will review more thoroughly.
libvcs 0.22.2 (2023-08-20)¶
Maintenance only, no bug fixes, or new features
Development¶
SubprocessCommand: Typing fix fortextparam. Found via mypy(1).
libvcs 0.22.1 (2023-05-28)¶
Maintenance only, no bug fixes, or new features
Development¶
Add back
blackfor formattingThis is still necessary to accompany
ruff, until it replaces black.
libvcs 0.22.0 (2023-05-27)¶
Maintenance only, no bug fixes, or new features
Internal improvements¶
Move formatting, import sorting, and linting to [ruff].
This rust-based checker has dramatically improved performance. Linting and formatting can be done almost instantly.
This change replaces black, isort, flake8 and flake8 plugins.
poetry: 1.4.0 -> 1.5.0
See also: https://github.com/python-poetry/poetry/releases/tag/1.5.0
libvcs 0.21.2 (2023-04-07)¶
Development¶
Update mypy to 1.2.0
Fixes¶
SkipDefaultFieldsReprMixin: Fix typing for mypy 1.2.0
libvcs 0.21.1 (2023-03-15)¶
Fixes¶
libvcs 0.21.0 (2023-03-15)¶
New¶
Bug fixes¶
libvcs 0.20.0 (2022-10-31)¶
What’s new¶
Python 3.11 support (#433)¶
Official support for python 3.11
URLs: Mapping now class attributes (#433)¶
URL.rule_map is now a class attribute rather than a dataclass attribute.
File "/home/user/.python/3.11.0/lib/python3.11/dataclasses.py", line 1211, in wrap
return _process_class(cls, init, repr, eq, order, unsafe_hash,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/user/.python/3.11.0/lib/python3.11/dataclasses.py", line 959, in _process_class
cls_fields.append(_get_field(cls, name, type, kw_only))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/user/.python/3.11.0/lib/python3.11/dataclasses.py", line 816, in _get_field
raise ValueError(f'mutable default {type(f.default)} for field '
ValueError: mutable default <class 'libvcs.url.base.RuleMap'> for field rule_map is not allowed: use default_factory
libvcs 0.19.1 (2022-10-23)¶
Tests¶
Documentation¶
libvcs 0.19.0 (2022-10-23)¶
New features¶
Commands¶
Git
Support for progress bar
Add subcommands for:
stash:
Git.stash->libvcs.cmd.git.GitStashCmdremote:
Git.remote->libvcs.cmd.git.GitRemoteCmdsubmodule:
Git.submodule->libvcs.cmd.git.GitSubmoduleCmd
Added commands for:
SVN
New and improved:
Mercurial
New and improved:
Syncing¶
Git, SVN, and Mercurial have moved to libvcs.cmd
libvcs 0.18.1 (2022-10-23)¶
Maintenance only release, no bug fixes, or new features
Documentation improvements
Development package updates
Add citation file (CITATION.cff)
libvcs 0.18.0 (2022-10-09)¶
New features¶
URLs¶
libvcs 0.17.0 (2022-09-25)¶
New features¶
Breaking changes¶
Matcher->Rule,MatcherRegistry->Rulesmatches->rule_mapdefault_patterns->patternsMATCHERS->RULES
Improvements¶
pytest plugin:
create_{git,svn,hg}_remote_repo()now acceptsinit_cmd_args(list[str], default:['--bare'], #426)To not use bare, pass
init_cmd_args=None
Sync:
hg: AddHgBaseURL,HgPipURLsvn: AddSvnBaseURL,SvnPipURLURLProtocol: Fixis_validto useclassmethodAll: Fix
is_validto use default ofNoneto avoid implicitly filteringReduce duplicated code in methods by using
super()
Packaging¶
Remove
.tmuxp.before-script.sh(was abefore_scriptin.tmuxp.yaml) that was unused.Move
conftest.pyto root levelCan be excluded from wheel, included in sdist
Required to satisfy pytest’s
pytest_pluginsonly being in top-level confte conftest.py files since 4.0 (see notice)Makes it possible to run
pytest README.mdwith doctest plugin
libvcs 0.16.5 (2022-09-21)¶
Bug fixes¶
libvcs 0.16.4 (2022-09-18)¶
Infrastructure¶
Bump poetry to 1.1.x to 1.2.x
libvcs 0.16.3 (2022-09-18)¶
Bug fixes¶
Tests¶
Documentation¶
Infrastructure¶
libvcs 0.16.2 (2022-09-11)¶
Bug fix¶
libvcs 0.16.1 (2022-09-11)¶
Bug fix¶
Temporarily add Faker as a dependency (due to pytest), track longterm fix on (#411)
libvcs 0.16.0 (2022-09-11)¶
New features¶
Added a pytest plugin. Create fresh, temporarily repos on your machine locally for git, mercurial, and svn (#409)
libvcs 0.15.0 (2022-09-11)¶
Breaking changes¶
-
libvcs.parse->libvcs.urllibvcs.projects->libvcs.sync
-
BaseProject->BaseSyncMercurialProject->HgSyncSubversionProject->SvnSyncGitProject->GitSync
Deprecate custom functions in favor of standard library:
which()in favor ofshutil.which(), via #397mkdir_p()in favor ofos.makedirs()andpathlib.Path.mkdir()w/parents=True, via #399
Development¶
Remove
.pre-commit-config.yaml: This can be done less obtrusively via flake8 and having the user run the tools themselves.
Documentation¶
Render changelog in
linkify_issues(#396, #403)Fix Table of contents rendering with sphinx autodoc with
sphinx_toctree_autodoc_fix(#403)Deprecate
sphinx-autoapi, per above fixing the table of contents issue (#403)This also removes the need to workaround autoapi bugs.
libvcs 0.14.0 (2022-07-31)¶
What’s new¶
New and improved logo
Improved typings
Now
mypy --strictcompliant (#390)Parser: Experimental VCS URL parsing added (#376, #381, #384, #386):
VCS Parsers return
dataclasses.dataclass()instances. The new tools support validation, parsing, mutating and exporting into URLs consumable by the VCS.Warning
APIs are unstable and subject to break until we get it right.
-
GitBaseURL- Parse git URLs,git(1)compatibleto_url()- exportgit clone-compatible URL
GitPipURL- Pip URLs,is_valid(),to_url()GitURL- Compatibility focused,is_valid()to_url()
Detection can be extended through writing
Matchers and adding them to the classes’MatcherRegistryYou can write your own VCS parser by implementing
URLProtocol, but it would be most efficient if you studied the source of thegit(1)parser to see how it’s done.-
Breaking changes¶
#391 Removed
flatkeyword argument forlibvcs.sync.git.GitSync. This was unused and the equivalent can be retrieved via.to_dict()onGitRemote#379 Support for
git+gitURLs removed. Pip removed these in 21.0 due to them being insecure [1]#372 Typings moved from
libvcs.types->libvcs._internal.types#377 Remove deprecated functions and exceptions
Removed
libvcs.shortcutsRemoved
libvcs.shortcuts.create_project_from_pip_url(): This will be replaced in future versions by #376 / parsing utilitiesMoved
libvcs.shortcuts.create_project()tolibvcs._internal.shortcuts.create_project()
Removed
libvcs.exc.InvalidPipURL
Fixes¶
Minor spelling fix in Git’s
convert_pip_url()exceptionFix mercurial cloning in
libvcs.sync.hg.HgSyncBackport from 0.13.1
Typings¶
Rename
VcsLiteral->VCSLiteralBackport from 0.13.4
create_project(): Add overloads that return the typed project (e.g.,GitSync)Backport from 0.13.3
Cleanup¶
libvcs 0.13.6 (2022-06-18)¶
Development¶
Move
libvcs.shortcutstolibvcs._internal.shortcuts
libvcs 0.13.5 (2022-06-18)¶
Development¶
Note upcoming deprecation of
create_project_from_pip_urlin v0.14Note
create_projectbecoming internal API in upcoming release v0.14Fix import in
libvcs.shortcuts(in v0.14 this module will not exist)
libvcs 0.13.4 (2022-06-18)¶
Typing¶
Rename
VcsLiteral->VCSLiteral
libvcs 0.13.3 (2022-06-18)¶
Typings¶
create_project(): Add overloads that return the typed project (e.g.,GitSync)
libvcs 0.13.2 (2022-06-12)¶
Typings¶
libvcs.sync.git.GitSync.remotes(): Add overload
libvcs 0.13.1 (2022-06-01)¶
Fixes¶
Fix mercurial cloning in
libvcs.sync.hg.HgSync
libvcs 0.13.0, “Jane” (2022-05-30)¶
Breaking changes¶
#343:
libvcs.cmd.coremoved tolibvcs._internal.runto make it more clear the API is closed.This includes
run()Before in 0.13:
from libvcs.cmd.core import run
New module in >=0.13:
from libvcs._internal.run import run
#361:
run’s params are now a pass-through tosubprocess.Popen.run(cmd, ...)is nowrun(args, ...)to matchPopen’s convention.
-
Removed
parent_dir:Before:
project.parent_dirAfter:
project.parent.path.repo_nameswitched from attribute to property
What’s new¶
Bug fixes¶
Internals¶
-
Basic mypy tests now pass
Type annotations added, including improved typings for:
make mypyandmake watch_mypyAutomatic checking on CI
#345
libvcs.utils->libvcs._internalto make it more obvious the APIs are strictly closed.StrOrPath->StrPath#336:
SubprocessCommand: Encapsulatedsubprocesscall in adataclasses.dataclass()for introspecting, modifying, mocking and controlling execution.Dataclass helper:
SkipDefaultFieldsReprMixinSkip default fields in object representations.
Credit: Pietro Oldrati, 2022-05-08, StackOverflow Post
Documentation¶
Packaging¶
Update description and keywords
libvcs 0.12.4 (2022-05-30)¶
libvcs 0.12.3 (2022-05-28)¶
Bug fixes¶
libvcs 0.12.2 (2022-05-10)¶
Packaging¶
Update trove classifiers
libvcs 0.12.1 (2022-05-10)¶
Packaging¶
Add keywords and update subscription
Add
py.typedfile tolibvcs/py.typed
libvcs 0.12.0, “Nimbus” (2022-04-24)¶
Breaking¶
GitRepo,SVNRepo,MercurialRepo,BaseRepohave been renamed toGitSync,SVNProject,HgSync,BaseSync(#327)GitSync,SVNProject,HgSync,BaseSynchave been moved tolibvcs.sync.{module}.{Module}Projectrepo_dirparam is renamed todir:Before:
GitSync(url='...', repo_path='...')After:
GitSync(url='...', path='...')dirtopathlib,BaseSync.path->BaseSync.pathLogging functions moved to
libvcs.sync.base.BaseSync.log(#322)Rename
ProjectLoggingAdaptertoCmdLoggingAdapterCmdLoggingAdapter: Renamerepo_nameparam tokeywordcreate_repo->create_projectGitRemoteandGitStatus: Move todataclasses.dataclass()(#329)
What’s new¶
Commands: Experimental command wrappers added (#319):
libvcs.sync.git.GitSyncnow accepts remotes in__init__repo = GitSync( url="https://github.com/vcs-python/libvcs", repo_path=checkout, remotes={ 'gitlab': 'https://gitlab.com/vcs-python/libvcs', } )
repo = GitSync( url="https://github.com/vcs-python/libvcs", repo_path=checkout, remotes={ 'gitlab': { 'fetch_url': 'https://gitlab.com/vcs-python/libvcs', 'push_url': 'https://gitlab.com/vcs-python/libvcs', }, } )
libvcs.sync.git.GitSync.update_repo()now acceptsset_remotes=True
Compatibility¶
Development¶
CI: Use poetry caching from @actions/setup v3.1, (#316)
New constants for
str-> class mappingsRemove tox and tox-poetry-installer. It turns out installing poetry inside a poetry project doesn’t work well. (
poetry update,poetry publish, etc. commands would fail)Add doctest w/ pytest + doctest, (#321).
Publish to PyPI via CI when git tags are set.
Documentation¶
libvcs 0.11.1 (2022-03-12)¶
CVE-2022-21187: Command Injection with mercurial repositories¶
By setting a mercurial URL with an alias it is possible to execute arbitrary shell commands via
.obtain()or in the case of uncloned destinations,.update_repo(). (#306, credit: Alessio Della Libera)See also: cve.mitre.org, nvd.nist.gov, snyk.
Development¶
Documentation¶
Move to furo theme
Root:
make start_docs,make design_docsdocs/:
make start,make design
libvcs 0.11.0, “Phebe” (2022-01-08)¶
Compatibility¶
Development¶
libvcs 0.10.1 (2021-11-30)¶
libvcs 0.10 (2021-06-16)¶
#311: Convert to markdown
libvcs 0.9 (2021-06-14)¶
Generally speaking, refactor / magic is in the process of being stripped out in the next few releases. The API is subject to change significantly in pre-1.0 builds.
#271:
Big version bump (0.5 -> 0.9)
Remove Python 2.7 support
Add annotations
Change
libvcs.git.GitRepo.status()to returnGitStatusnamed tupleBreaking change: Repo objects now require
repo_dirto be passedUpdate black to 21.6b0
libvcs 0.5 (2020-08-11)¶
[refactor] #267 overhaul docs
Move sphinx api format to Numpy-style
Move from reStructuredText to Markdown (via recommonmark). The master plan is to eliminate docutils and sphinx as a bottleneck completely in favor of something else (e.g., gatsby with a source that inspects our modules and can source intersphinx)
Move from RTD to GitHub Action, full support of poetry extras packages, deploys straight to S3 and CloudFront
#270 Build and publish packages via poetry
#270 Overhaul development docs
libvcs 0.4.4 (2020-08-05)¶
#268
libvcs.base.BaseRepo:no longer sets
**kwargsto dictionary on the objectremove
__slot__and renamenameattribute torepo_name
libvcs 0.4.3 (2020-08-01)¶
[bug]
libvcs.git.extract_status()Fix issue capturing branch names with special characters
libvcs 0.4.2 (2020-08-01)¶
[bug]
libvcs.git.GitRepo.get_current_remote_name()Handle case where upstream is unpushed[feature]
libvcs.git.GitRepo.status()- Retrieve status of repo[feature]
libvcs.git.extract_status()- Return structured info fromgit status
libvcs 0.4.1 (2020-08-01)¶
Remove log statement
libvcs 0.4 (2020-08-01)¶
Breaking changes
Internal functionality relating to remotes have been reorganized to avoid implicit behavior.
~libvcs.git.GitRepomethods have been renamed, they will be deprecated in 0.5:GitRepo.remotes_getrenamed tolibvcs.git.GitRepo.remotes()GitRepo.remote_getrenamed tolibvcs.git.GitRepo.remote()GitRepo.remote_setrenamed tolibvcs.git.GitRepo.set_remote()
~libvcs.git.GitRepotheremotesargument is deprecated and no longer used. Uselibvcs.git.GitRepo.set_remoteafter repo is instantiated.libvcs.git.GitRepo.obtainno longer set remotes based on adictpassed to~libvcs.git.GitRepo. This was deemed to specialized / implicit.libvcs.git.GitRepo.set_remote()(formerlyremote_set)The new method accepts
nameandurl(in that order).nameno longer has a default value (wasorigin).libvcs.git.GitRepo.remote()(formerlyremote_get):remoteargument renamed toname. It will be removed in 0.5.0The default value of
'origin'has been removedNow returns
~libvcs.git.GitRemote(a :pycollections.namedtupleobject)The tuple is similar to the old output, except there is an additional value at the beginning, the name of the remote, e.g.
('origin', '<fetch_url>', '<push_url>')
libvcs.git.GitRepo.remotes()(formerlyremotes_get) are now methods instead of properties.Passing
flat=Trueto return adictoftupleinstead ofdictNew method:
libvcs.git.GitRepo.get_git_version()New method:
libvcs.git.GitRepo.get_current_remote_name()
libvcs 0.3.3 (2020-07-29)¶
Remove f-string from test
libvcs.git.GitRepo.obtainOverwrite remote if exists
libvcs 0.3.2 (2020-07-26)¶
258libvcs.git.GitRepo.remote_setFix updating of remote URLs
Add new param:
overwrite, usage:repo.remote_set(url, 'origin', overwrite=True)
libvcs 0.3.1post1 (2020-07-26)¶
Fix version in pyroject.toml
Update developer docs
libvcs 0.3.1 (2020-07-25)¶
Fix issue with subprocess.Popen loud warning on Python 3.8
Sort imports
Add isort package, isort configuration in setup.cfg, and
make isorttask to Makefile.Add
project_urlsto setup.py
libvcs 0.3.0 (2018-03-12)¶
Move vcspull to the vcs-python organization
Fix issue where VCS objects failed to set attribute in Ubuntu 18.04.
libvcs 0.2.3 (2016-12-22)¶
Update documentation to point to libvcs.git-pull.com
Switch doc theme to alabaster
Pin and update libraries via pyup
update vulture 0.8.1 to 0.11
update flake8 from 2.5.4 to 3.2.1
update pytest-mock from 1.4.0 to 1.5.0
update pytest from 3.0.4 to 3.0.5
pin alabaster to 0.7.9
pin sphinx to 1.5.1
libvcs 0.2.2 (2016-11-23)¶
Fix bug with unused
supportmodule in vcspull. See vcspull#43
libvcs 0.2.1 (2016-09-13)¶
Update pytest to 3.0.2, remove unused pytest-raisesregexp dependency.
Fix bug in
whichwhen executable is not found. Allow specifying search paths manually.Better support for missing VCS when testing on git and subversion.
libvcs 0.2.0 (2016-06-24)¶
libvcs 0.1.7 (2016-06-21)¶
7Addcheck_returncodeproperty to run, thanks @jcfr8Remove all cases ofrun_buffered/ buffering from the library.
libvcs 0.1.6 (2016-06-21)¶
5Remove colorama dependency6Remove log module. Logging defaults.The library user can still use formatters and set log levels, for an example, see the vcspull logging setup.
An example:
import logging # your app log.setLevel(level) log.addHandler(logging.StreamHandler()) # vcslib logging options vcslogger = logging.getLogger('libvcs') vcslogger.propagate = False # don't pass libvcs settings up scope vcslogger.addHandler(logging.StreamHandler()) vcslogger.setLevel(level)You can also use
logging.Formattervariablesrepo_nameandbin_namewith repos:repo_channel = logging.StreamHandler() repo_formatter = logging.Formatter( '[%(repo_name)s] (%(bin_name)s) %(levelname)1.1s: %(message)s' ) repo_channel.setFormatter(repo_formatter) vcslogger = logging.getLogger('libvcs') vcslogger.propagate = False # don't pass libvcs settings up scope vcslogger.addHandler(repo_channel) vcslogger.setLevel(level)
libvcs 0.1.5 (2016-06-21)¶
Fix issue where repo context wouldn’t pass to repo logging adapter
libvcs 0.1.4 (2016-06-20)¶
Fix print_stdout_on_progress_end signature in git update
libvcs 0.1.3 (2016-06-20)¶
create_repofunction for regular vcs urlsAPI docs updated
libvcs 0.1.2 (2016-06-20)¶
change signature on
create_repo_from_pip_urlto acceptpip_urlinstead ofurl.Baseto acceptrepo_dirinstead ofnameandparent_dir.
libvcs 0.1.1 (2016-06-20)¶
remove unneeded pyyaml, kaptan and click dependencies
libvcs 0.1.0 (2016-06-20)¶
libvcs split from vcspull