Changelog¶
To install the unreleased vcspull version, see developmental releases.
pip:
$ pip install --user --upgrade --pre vcspull
pipx:
$ pipx install \
--suffix=@next \
--pip-args '\--pre' \
--force \
'vcspull'
// Usage: vcspull@next sync [config]
uv:
$ uv add vcspull --prerelease allow
uvx:
$ uvx --from 'vcspull' --prerelease allow vcspull
vcspull v1.61.x (unreleased)¶
Notes on upcoming releases will be added here
vcspull v1.60.0 (2026-05-18)¶
vcspull v1.60.0 is a maintenance release for the May 2026 docs and test-fixture stack. It tracks libvcs’s pytest fixture rename and moves the documentation build onto the new gp-sphinx theme-asset pipeline.
Dependencies¶
Minimum libvcs>=0.41.0 (was >=0.40.0). This picks up libvcs’s
gitconfig / hgconfig fixture rename to vcs_gitconfig /
vcs_hgconfig, avoiding collisions with the third-party
pytest-gitconfig plugin.
(#548)
Documentation¶
The docs stack moves to gp-sphinx v0.0.1a16. The site now renders through
gp-furo-theme, a Tailwind v4 port of Furo, with sphinx-vite-builder
building theme assets into released wheels. (#547)
vcspull v1.59.0 (2026-04-25)¶
vcspull v1.59.0 makes vcspull sync resilient when a repository stalls. The command now has a per-repository deadline, visible progress, a compact streaming output trail, and a debug log path for post-failure inspection.
Dependencies¶
Minimum libvcs>=0.40.0 (was >=0.39.0). vcspull relies on libvcs’s
timeout= subprocess support and faster remote URL lookup to keep large or
ref-heavy remotes from freezing the whole batch. (#544)
What’s new¶
vcspull sync: Per-repo timeout (#544)¶
One stuck repository no longer blocks the entire sync run. Each repo gets a
10-second wall-clock deadline by default; use --timeout SECONDS or
VCSPULL_SYNC_TIMEOUT_SECONDS to tune it. Timed-out repositories appear in
the summary with a copy-pasteable rerun command.
vcspull sync: Live status while work is running (#544)¶
TTY runs show a spinner with the active repository name and elapsed time.
Piped output gets start lines and periodic “still syncing” heartbeats. The
indicator stays out of --json, --ndjson, and --color=never output so
automation remains parseable.
vcspull sync: Streaming output trail (#544)¶
Git progress such as fetch sources and new branch lines appears in a small
panel above the spinner, then collapses into the permanent sync line when the
repository finishes. Use --panel-lines or VCSPULL_PROGRESS_LINES to hide,
cap, or uncap the trail.
vcspull sync: Per-invocation debug log (#544)¶
Every sync run can write a DEBUG log under $TMPDIR/vcspull/, surfaced in
terminal output only when something fails or times out. Use --log-file PATH
to choose the path or --no-log-file to disable the file.
vcspull sync: Ctrl-C aborts shell chains (#544)¶
Interrupting vcspull sync ~/a; vcspull sync ~/b now stops the shell chain at
the interrupted command, matching the behavior users expect from chained
git commands.
Quieter default terminal output (#544)¶
libvcs progress crumbs no longer print at default verbosity. Pass -v for
INFO-level libvcs activity or -vv for DEBUG; the debug log captures DEBUG
regardless of terminal verbosity.
Fixes¶
vcspull sync no longer hangs indefinitely on credential prompts, slow
fetches, or ref-heavy remotes. (#544)
Documentation¶
API pages gained visual improvements from the gp-sphinx documentation stack, and the docs pins were refreshed through gp-sphinx v0.0.1a8. (#542, #545)
vcspull v1.58.1 (2026-03-29)¶
vcspull v1.58.1 protects symlinked config files during writes. This matters
for dotfiles-managed setups where ~/.vcspull.yaml points at a checked-in
file elsewhere.
Fixes¶
Config writes preserve symlinks (#538)¶
Writing a config file no longer replaces a symlink with a regular file. The write follows the symlink, stages the temporary file next to the real target, and renames it into place so the symlink directory entry survives.
Format detection also inspects the symlink target extension. A .yaml
symlink that points at a .json target now continues to serialize as JSON
instead of overwriting the target with YAML.
vcspull v1.58.0 (2026-03-01)¶
vcspull v1.58.0 turns vcspull import into a reconciliation tool, not just an append-only importer. Imports can update changed clone URLs, prune stale entries, tag provenance, and respect per-repository pins across config mutation commands.
What’s new¶
vcspull import --sync and --prune (#520)¶
--sync fully reconciles a workspace with a remote source: it adds new
repositories, updates existing entries whose clone URL changed, and prunes
entries that disappeared from that same source. --prune performs the cleanup
side without changing URLs. Both modes preserve existing metadata such as
options, remotes, shell_command_after, and worktrees.
Pruning is config-only; cloned directories on disk are never deleted. See vcspull import for the detailed workflow.
vcspull import --prune-untracked (#520)¶
--prune-untracked expands --sync or --prune to remove entries in the
target workspace that do not have import provenance. It is intended for older
configs that predate provenance tracking. Entries imported from another source
and pinned entries are preserved, and the confirmation prompt lists exactly
what would be removed.
Import provenance via metadata.imported_from (#520)¶
Reconciled imports tag entries with their source, such as
metadata.imported_from: "github:myorg". vcspull uses that tag to scope stale
entry pruning so manually added repos and repos from other services are not
removed accidentally.
options.pin mutation guards (#520)¶
Repository entries can now declare Repository pinning metadata to prevent
specific vcspull operations from changing them. pin: true blocks every
config mutation path; pin: {import: true} blocks only import reconciliation;
allow_overwrite: false remains as shorthand for pin: {import: true}.
pin_reason is shown when vcspull skips an entry because of a pin.
Pin awareness applies across import, add, discover, fmt, and duplicate
workspace-root merging.
Fixes¶
vcspull add, vcspull discover, and vcspull fmt now preserve JSON config
format instead of unconditionally writing YAML to .json files. (#520)
vcspull v1.57.0 (2026-02-22)¶
vcspull v1.57.0 tightens GitLab group imports. Shared projects are now opt-in, and users can exclude whole subgroup segments during import.
Breaking changes¶
GitLab group imports now explicitly request with_shared=false, so projects
shared into a group are excluded unless --with-shared is passed. This
matches the safer default for users who want the group’s own repositories.
(#519)
What’s new¶
vcspull import gitlab --skip-group (#519)¶
Repeatable --skip-group NAME filters out repositories whose owner path
contains that group segment. Matching is case-insensitive and segment-based,
so subgroup-heavy GitLab instances can be narrowed before writing config.
vcspull v1.56.1 (2026-02-18)¶
vcspull v1.56.1 makes large vcspull import runs less surprising. It warns when result limits truncate remote data and retries rate-limited API requests instead of failing immediately.
What’s new¶
vcspull import --limit 0 means unlimited (#518)¶
--limit 0 now fetches every available repository instead of failing
validation, following the common CLI convention that 0 means “no limit.”
GitLab rate-limit logging (#518)¶
GitLab imports now log remaining rate-limit headers after API requests and warn when fewer than 10 requests remain, matching the existing GitHub visibility.
Fixes¶
Import truncation warnings (#518)¶
GitLab, GitHub search, and GitHub user/org imports now detect when more
repositories are available beyond the active --limit. vcspull warns instead
of silently dropping remote results.
HTTP 429 retries (#518)¶
Rate-limited API requests now retry with bounded exponential backoff. When a
Retry-After header is present, vcspull honors it up to the configured cap;
otherwise it falls back to jittered backoff.
vcspull v1.56.0 (2026-02-15)¶
vcspull v1.56.0 adds declarative Git worktree management. Repositories can declare branch, tag, or commit worktrees in config, and vcspull can list, sync, prune, or include them in normal repository syncs.
What’s new¶
New command group: vcspull worktree (#508)¶
vcspull worktree manages configured Git worktrees with three subcommands:
vcspull worktree list, vcspull worktree sync, and
vcspull worktree prune. Each worktree entry requires dir and exactly one
of tag, branch, or commit; optional lock, lock_reason, and detach
settings control safety and checkout behavior.
Human output shows whether each worktree will be created, updated, left
unchanged, blocked, or errored. --json and --ndjson expose the same plan
data for automation.
vcspull sync --include-worktrees (#508)¶
vcspull sync can now sync repositories and then their configured worktrees
in one pass with --include-worktrees. Worktree results are included in the
summary and participate in --exit-on-error.
Fixes¶
vcspull discover now distinguishes Git worktrees from submodules by
inspecting the .git file target. The duplicate-aware config reader also
stops reporting false duplicate keys inside nested list mappings. (#508)
Development¶
The worktree implementation added a WorktreeError exception hierarchy,
plan-entry audit trails, and test coverage for planning, sync, prune, CLI
output, dirty checks, missing refs, and sync integration. (#508)
vcspull v1.55.0 (2026-02-15)¶
vcspull v1.55.0 introduces the service-backed vcspull import command. It can discover repositories from GitHub, GitLab, Codeberg, Gitea, Forgejo, and AWS CodeCommit, then write them into vcspull config with previews and machine-readable output.
What’s new¶
New command: vcspull import (#510)¶
vcspull import supports user, organization, and search modes for supported
services. It includes service aliases (gh, gl, cb, cc, aws),
filters such as --language, --topics, --min-stars, --archived, and
--forks, and output modes for human text, JSON, and NDJSON.
The command previews changes with --dry-run, prompts before writing by
default, and accepts --yes for unattended imports.
SSH clone URLs by default (#510)¶
Imported repositories default to SSH clone URLs. Pass --https when a config
should record HTTPS remotes instead.
GitLab subgroup workspaces (#510)¶
GitLab group imports preserve subgroup namespaces below the chosen workspace
root by default. Pass --flatten-groups to place every imported repository in
one workspace section.
Fixes¶
Config writes now stage through a temporary file and rename into place, reducing the chance of data loss on interrupted writes. (#510)
Development¶
The release also fixed a pytest-asyncio warning in isolated pytester runs by
setting the default fixture loop scope explicitly. (#515)
vcspull v1.54.0 (2026-02-08)¶
vcspull v1.54.0 cleans up dry-run and status behavior after the new planning surface landed. JSON previews now share the same flat shape as other machine-readable commands, and several cross-VCS edge cases are corrected.
Breaking changes¶
Dry-run --json output is now a flat array of plan entries, matching
vcspull sync and vcspull status JSON output. (#514)
Fixes¶
Repositories without upstream tracking no longer show a false “up to date” status. (#514)
SVN and Mercurial repositories no longer appear as blocked in dry-run plans. (#514)
Non-Git repositories are no longer counted in Git dirty/clean summary totals. (#514)
Repositories matched by multiple patterns are synced only once. (#514)
Colorized help output no longer misclassifies several argument tokens. (#514)
Documentation¶
README and quickstart sync examples now use the explicit --all flow. (#514)
Development¶
SVN and Mercurial sync regressions gained test coverage. (#514)
vcspull v1.53.0 (2026-02-08)¶
vcspull v1.53.0 makes broad syncs explicit. Empty subcommands now show help,
and users choose --all when they intend to operate on every configured
repository.
Breaking changes¶
vcspull sync --all is required for all-repo syncs (#511)¶
Running vcspull sync with no patterns now shows help instead of implicitly
targeting every repository. Use vcspull sync --all for the full config, or
continue using a quoted * glob if that is your preferred workflow.
--all and positional patterns are mutually exclusive.
What’s new¶
Subcommands such as sync, search, add, and discover now print their
own help when called without the required arguments. (#511)
vcspull v1.52.1 (2026-02-08)¶
vcspull v1.52.1 is a test compatibility release for clean build environments.
Development¶
Test fixtures no longer assume a global Git identity, fixing failures in isolated packaging environments such as Arch Linux nspawn containers. (#513)
vcspull v1.52.0 (2026-02-07)¶
vcspull v1.52.0 turns failed Git sync steps into reported errors instead of silent success. Sync summaries now distinguish successful, failed, errored, and unmatched work.
Dependencies¶
Minimum libvcs>=0.39.0 (was >=0.38.6). vcspull consumes libvcs’s
structured sync result model to report VCS command errors. (#512)
What’s new¶
vcspull sync: Errored sync reporting (#512)¶
Git fetch and pull failures now surface as errored repositories in the sync summary instead of disappearing behind a successful process exit.
vcspull sync --exit-on-error: Unmatched pattern failures (#512)¶
When --exit-on-error is set, patterns that match no configured repositories
now produce a non-zero exit status.
Clearer sync summaries (#512)¶
Summaries show unmatched patterns separately from repository totals and omit irrelevant “0 previewed” text in non-dry-run output.
Fixes¶
Path-based patterns now show the actual search term instead of None,
unmatched warnings are no longer duplicated, and all-unmatched runs still emit
a summary. (#512)
Development¶
Errored syncs, unmatched patterns, and cross-VCS sync behavior gained regression coverage. (#512)
vcspull v1.51.1 (2026-02-01)¶
vcspull v1.51.1 is a test-suite compatibility release.
Development¶
Snapshot tests were updated for syrupy 4.x compatibility. (#509, #503)
vcspull v1.51.0 (2026-01-27)¶
vcspull v1.51.0 refreshes the libvcs floor and improves CLI reference linking.
Dependencies¶
Fixes¶
Snapshot naming compatibility was restored for downstream packaging test runs. (#504, #503)
Documentation¶
CLI reference arguments now have stable permalink anchors, and glob-like help text no longer produces Sphinx parsing warnings. (#502)
vcspull v1.50.1 (2026-01-25)¶
vcspull v1.50.1 tracks a libvcs pytest-plugin fix needed by clean build environments.
Dependencies¶
vcspull v1.50.0 (2026-01-24)¶
vcspull v1.50.0 modernizes release publishing and replaces the aging Sphinx argparse integration with the local CLI documentation extension.
Dependencies¶
Documentation¶
CLI reference rendered by the internal argparse extension (#499)¶
The CLI Reference reference no longer depends on sphinx-argparse, which broke
under Sphinx 9 internals. The replacement extension renders argparse help with
vcspull-specific lexers, highlighted output, compatibility options for the old
directive spelling, and subparser navigation through :path:.
Development¶
vcspull release publishing moved to PyPI Trusted Publisher, removing long-lived upload tokens from the release path. (#492)
The docs tooling gained type stubs for docutils and Pygments, and local agent rules were clarified around stdlib versus third-party import style.
vcspull v1.49.0 (2026-01-03)¶
vcspull v1.49.0 adds vcspull search, a ripgrep-style way to find repositories across configured names, URLs, paths, and VCS types.
What’s new¶
New command: vcspull search (#494)¶
vcspull search supports field-scoped terms such as name:flask,
url:github.com, path:~/work, and vcs:git. Searches can use regex or
fixed strings, case-insensitive or smart-case matching, word boundaries, OR
logic via --any, and inverted matches via --invert-match.
Human output highlights matched fields; --json and --ndjson expose
scriptable results.
Documentation¶
Docs deployment moved to AWS OIDC credentials, removing static deployment secrets from the docs workflow.
Development¶
The project task runner moved from Makefile to justfile, and contributor
docs now use just commands. (#493)
vcspull v1.48.1 (2025-12-06)¶
vcspull v1.48.1 refreshes libvcs and fixes API documentation rendering.
Dependencies¶
Documentation¶
Autodoc pages no longer hit indentation errors from Napoleon-processed
docstrings. Type injection into docstring bodies was disabled where it
conflicted with parsed reStructuredText, and cosmetic forward-reference
warnings from TYPE_CHECKING imports were suppressed. (#490)
vcspull v1.48.0 (2025-11-30)¶
vcspull v1.48.0 improves path privacy across human and structured CLI output. Home-directory paths are consistently shortened before they reach logs, summaries, and JSON payloads.
Dependencies¶
Fixes¶
Consistent home-directory redaction (#488)¶
vcspull fmt, vcspull add, vcspull discover, and vcspull sync now reuse
the same private-path display rules for config paths, repository paths, and
user-facing warnings. See PrivatePath – vcspull._internal.private_path for contributor
details on the helper.
vcspull v1.47.0 (2025-11-15)¶
vcspull v1.47.0 continues the path-privacy cleanup for discovery workflows and centralizes the helper used by CLI output.
Fixes¶
vcspull discover: Redacted config paths (#487)¶
Success messages and dry-run notices from vcspull discover now display
home-directory config paths as ~/.vcspull.yaml instead of leaking absolute
home paths.
vcspull discover: Scope-aware workspace labels (#487)¶
Discovery now considers config scope before writing. User-level configs prefer
tilde-prefixed workspace keys, while project-level configs keep relative ./
sections.
Development¶
PrivatePath was introduced as the shared helper for CLI path redaction,
reducing repeated home-contraction logic across commands. (#485)
vcspull v1.46.1 (2025-11-03)¶
vcspull v1.46.1 fixes the version metadata from v1.46.0 and closes the last
path-first add edge cases from the duplicate-root work.
Fixes¶
Correct vcspull.__version__¶
v1.46.0 shipped with the previous version string. v1.46.1 restores the package metadata to the release version.
vcspull add: Cleaner path-first writes (#484)¶
Path-based adds now preserve tilde workspace labels unless the user explicitly
chooses a project-relative workspace. Duplicate-aware writes operate on the
ordered loader output, so --no-merge paths keep repeated workspace roots
intact without unnecessary config rewrites.
vcspull v1.46.0 (2025-11-02)¶
vcspull v1.46.0 fixes a tilde-label regression in the path-first add flow.
Fixes¶
vcspull add ~/study/python/project now records and logs the workspace as
~/study/python/ even when run from inside that workspace, instead of
collapsing the label to ./. (#482, #483)
vcspull v1.45.0 (2025-11-02)¶
vcspull v1.45.0 protects duplicate workspace sections when users intentionally
ask add not to merge them.
Fixes¶
vcspull add --no-merge no longer flattens duplicate workspace roots as a
side effect of adding a repository. Previously configured repositories remain
intact, and the loader exposes ordered duplicate entries so writes can target
the intended section. (#482)
vcspull v1.44.0 (2025-11-02)¶
vcspull v1.44.0 makes vcspull add path-first. The command can infer a repository name and origin remote from a checkout path, while still allowing explicit overrides.
What’s new¶
vcspull add: Path-first imports (#481)¶
vcspull add PATH now inspects the checkout, defaults the workspace to the
checkout parent, and records the detected origin remote. Use --name,
--url, and --workspace when inference is not what you want.
Development¶
CLI snapshot tests normalize volatile log line numbers so future refactors do not churn output snapshots unnecessarily. (#481)
vcspull v1.43.0 (2025-11-02)¶
vcspull v1.43.0 improves duplicate workspace-root handling across formatting, adding, discovery, and config loading.
What’s new¶
vcspull fmt: Merge duplicate workspace roots (#479)¶
vcspull fmt can now consolidate repeated workspace sections into a single
merged block. Pass --no-merge to report duplicates without rewriting them.
vcspull add: Safer duplicate-root behavior (#480)¶
vcspull add merges duplicate workspace roots by default before adding a
repository, preserving existing entries. --no-merge keeps raw duplicate
sections for manual handling.
vcspull discover --no-merge (#480)¶
vcspull discover honors --no-merge by reporting duplicate workspace roots
without modifying the config.
Duplicate-aware config loading (#480)¶
Commands backed by load_configs() keep repositories from
repeated workspace sections instead of letting the last section win silently.
Callers can still opt out with merge_duplicates=False.
Development¶
Formatter and add workflows gained snapshot and regression coverage for duplicate merging, path inference, and interactive prompts. (#479, #480)
vcspull v1.42.0 (2025-11-01)¶
vcspull v1.42.0 drops Python 3.9 and refreshes the libvcs floor.
Breaking changes¶
Python 3.10 is now the minimum supported Python version. Python 3.9 reached end-of-life, so users on 3.9 should stay on an older vcspull release or upgrade Python. (#478)
Dependencies¶
Minimum libvcs>=0.37.0 (was >=0.36.0).
vcspull v1.41.0 (2025-10-25)¶
vcspull v1.41.0 makes machine-readable paths more portable and private by using tilde notation for home-directory paths.
Breaking changes¶
JSON and NDJSON output from vcspull list, vcspull status, and
vcspull sync now contracts home-directory paths to ~/.... Automation that
requires absolute paths should expand ~ before use.
Fixes¶
Production installs no longer import typing_extensions through
ConfigDict-only type hints. Runtime-only users can install vcspull without
the development typing dependency. (#476)
vcspull v1.40.0 (2025-10-19)¶
vcspull v1.40.0 makes vcspull status much faster on large configs by checking repositories concurrently.
What’s new¶
Concurrent vcspull status (#474)¶
Status checks now run with asyncio concurrency by default, with a live progress
display in terminals and duration fields in JSON/NDJSON output. Use
--max-concurrent N to tune parallelism or --no-concurrent /
--sequential for the old sequential path.
vcspull v1.39.1 (2025-10-19)¶
vcspull v1.39.1 shortens home-directory paths in human-readable introspection output.
What’s new¶
vcspull list, vcspull status, and vcspull sync --dry-run now display
paths such as ~/code/flask instead of /home/user/code/flask in human
output. JSON and NDJSON kept absolute paths until the v1.41.0 compatibility
change. (#473)
Documentation¶
Examples were updated to prefer ~/ paths consistently.
vcspull v1.39.0 (2025-10-19)¶
vcspull v1.39.0 is the major CLI shape refresh. It replaces the older import front-end with explicit add/discover/list/status commands and aligns flags with common DevOps CLI conventions.
Breaking changes¶
Command split: add, discover, list, and status (#472)¶
The older single-repo vcspull import command was replaced by
vcspull add NAME URL, and filesystem scanning moved to
vcspull discover PATH. New introspection commands vcspull list and
vcspull status expose config inventory and repository health.
Flag modernization (#472)¶
-c / --config became -f / --file, workspace options gained the shorter
-w spelling, and action commands learned common --dry-run, --json,
--ndjson, and --color {auto,always,never} flags.
What’s new¶
Terraform-style dry-run plans (#472)¶
vcspull sync --dry-run renders a plan before mutating repositories and
exposes the same data through JSON and NDJSON.
New introspection commands (#472)¶
vcspull list can show flat, tree, JSON, or NDJSON views of configured repos.
vcspull status reports whether repositories exist, are clean or dirty, and
can include branch and ahead/behind details.
vcspull v1.38.0 (2025-10-18)¶
vcspull v1.38.0 improves CLI help so new users see clearer examples and better-colored argparse output.
What’s new¶
vcspull --help and subcommand help now include richer examples for sync,
import, and fmt. A dedicated argparse formatter colorizes example sections
while keeping CLI logger discovery stable. (#471)
vcspull v1.37.0 (2025-10-18)¶
vcspull v1.37.0 standardizes user-facing import terminology around workspace roots and fixes duplicate-root ambiguity.
Breaking changes¶
The legacy import flags --base-dir-key / --dir were renamed to
--workspace-root, and related internal argument names moved to the same
terminology. (#470)
Fixes¶
Equivalent workspace-root labels such as ~/foo, ~/foo/, and
/home/user/foo now normalize before import and format writes, avoiding
duplicate “already added” prompts and duplicate config sections. (#470)
Development¶
CLI tests now cover mixed workspace-root labels and formatter normalization. (#470)
vcspull v1.36.0 (2025-10-18)¶
vcspull v1.36.0 adds the first generation of local import and formatting commands: a single-repo/scan importer and a config normalizer.
What’s new¶
Legacy vcspull import and --scan (#465)¶
The legacy import command could register one repository by name and URL, or
scan a directory tree with --scan and optional recursion. This interface was
later replaced by the v1.39.0 add/discover split and the v1.55.0 service
import command.
vcspull fmt (#465)¶
vcspull fmt normalizes config entries by expanding compact repository values,
sorting directories and repos, and standardizing keys. Pair it with --write
to persist formatted output.
Development¶
CLI logging was refactored for better propagation and StreamHandler behavior, and CI gained Python 3.14 coverage and trove classifiers. (#465, #469)
vcspull v1.35.0 (2025-09-04)¶
vcspull v1.35.0 is a maintenance release for libvcs URL detection updates.
Dependencies¶
Minimum libvcs moved from 0.35.1 to 0.36.0, picking up improved Git URL detection. (#467)
vcspull v1.34.1 (2025-06-21)¶
vcspull v1.34.1 is a maintenance release for libvcs console streaming.
Dependencies¶
Minimum libvcs moved from 0.35.0 to 0.35.1, fixing progress streaming for
commands such as git clone. (#466)
vcspull v1.34.0 (2025-02-22)¶
vcspull v1.34.0 refreshes the libvcs floor and adopts deferred annotations throughout the codebase.
Dependencies¶
Minimum libvcs moved from 0.34.0 to 0.35.0. libvcs now uses text-mode subprocess handling internally, so vcspull no longer depends on byte-string subprocess compatibility. (#461)
Development¶
Python files now use from __future__ import annotations, and Ruff checks for
modern annotation syntax were enabled. (#459)
vcspull v1.33.0 (2024-11-23)¶
vcspull v1.33.0 moves project management from Poetry to uv and the build backend from Poetry to hatchling.
Breaking changes¶
Development and packaging commands now use uv instead of Poetry. The package build backend is hatchling, and the libvcs floor moved to 0.34.0, the first libvcs release built by the same uv-based stack. (#456, #457)
vcspull v1.32.0 (2024-10-13)¶
vcspull v1.32.0 adds Python 3.13 support and picks up faster libvcs pytest fixtures.
What’s new¶
Python 3.13 was added to package classifiers and CI coverage.
Dependencies¶
Minimum libvcs moved from 0.30.1 to 0.33.0, bringing cached pytest fixtures and faster upstream test setup. (#453)
vcspull v1.31.0 (2024-06-18)¶
vcspull v1.31.0 adopts libvcs AWS CodeCommit URL support and refreshes documentation/development tooling.
Dependencies¶
Minimum libvcs moved from 0.29.0 to 0.30.1. Config entries can use AWS
CodeCommit URLs such as codecommit::us-east-1://repo-name. (#449, #450)
Documentation¶
Links that were previously plain text are now automatically linkified.
Development¶
Poetry and Ruff were refreshed, and automated f-string rewrites from Ruff 0.4.2 were applied. (#445)
vcspull v1.30.0 (2024-03-24)¶
vcspull v1.30.0 is a maintenance release focused on a broad Ruff cleanup.
Development¶
The codebase was reformatted and lint-fixed with an aggressive Ruff pass, including unsafe and preview fixes, then branches were rebased through the same formatting gate. (#442)
vcspull v1.29.0 (2024-03-24)¶
vcspull v1.29.0 refreshes libvcs and the Python tooling stack.
Dependencies¶
Development¶
Poetry moved to 1.8.1, Ruff moved to 0.3.0, and CI switched to ruff check .
for the newer CLI. (#441)
vcspull v1.28.1 (2024-02-17)¶
vcspull v1.28.1 picks up a libvcs fix for Git revision-list arguments and updates CI actions.
Fixes¶
Minimum libvcs moved from 0.28.0 to 0.28.1, fixing a --max-count parsing
issue when syncing Git repositories. (#440)
Development¶
vcspull v1.28.0 (2024-02-07)¶
vcspull v1.28.0 is a maintenance release for libvcs QueryList typing changes.
Dependencies¶
vcspull v1.27.0 (2024-02-07)¶
vcspull v1.27.0 follows libvcs naming cleanup and tightens linting.
Breaking changes¶
The libvcs floor moved from 0.26.0 to 0.27.0, including public renames from
dir to path. vcspull mirrored the same naming direction where it shadowed
Python builtins. (#435)
Documentation¶
API docs were split across multiple pages, and unused reStructuredText headers were removed from module docs. (#431)
Development¶
Ruff rule coverage expanded to include flake8-commas, flake8-builtins, and flake8-errmsg. (#436)
vcspull v1.26.0 (2023-12-16)¶
vcspull v1.26.0 is a documentation and code-style maintenance release.
Documentation¶
Functions, methods, classes, and packages gained NumPy-style docstrings. (#428)
Development¶
Ruff pydocstyle rules were enabled using the NumPy convention. (#428)
vcspull v1.25.0 (2023-11-26)¶
vcspull v1.25.0 refreshes dependencies and simplifies CodeQL configuration.
Dependencies¶
Minimum libvcs moved from 0.25.1 to 0.26.0 for minor fixes and docstring updates.
Development¶
CodeQL moved from an advanced configuration file to GitHub’s default setup.
vcspull v1.24.1 (2023-11-24)¶
vcspull v1.24.1 is a libvcs maintenance bump.
Dependencies¶
Minimum libvcs moved from 0.25.0 to 0.25.1.
vcspull v1.24.0 (2023-11-19)¶
vcspull v1.24.0 refreshes packaging, adds Python 3.12 classifiers, and moves formatting from Black to Ruff.
Dependencies¶
Minimum libvcs moved from 0.24.0 to 0.25.0.
Development¶
Python 3.12 was added to trove classifiers, Poetry moved to 1.7.0, development
dependencies were reorganized into Poetry dependency groups, formatting moved
from Black to ruff format, and CI actions were refreshed. (#427)
vcspull v1.23.0 (2023-10-22)¶
vcspull v1.23.0 fixes Git remote URL parsing and adopts newer libvcs remote handling.
Dependencies¶
Fixes¶
Git remote URLs containing @ in the authority are no longer truncated after
the protocol. (#419, fixes #425)
Development¶
Two test suites were moved to typing.NamedTuple parametrization for clearer
fixture tables. (#423)
vcspull v1.22.0 (2023-09-02)¶
vcspull v1.22.0 is a code-quality maintenance release.
Development¶
Ruff rule coverage expanded, including import sorting and automated cleanup that still runs quickly across the whole codebase. (#417)
vcspull v1.21.1 (2023-05-28)¶
vcspull v1.21.1 temporarily restores Black while Ruff formatting support matured.
Development¶
Black was added back alongside Ruff for formatting coverage.
vcspull v1.21.0 (2023-05-27)¶
vcspull v1.21.0 begins the move from the older Black/isort/flake8 stack toward Ruff.
Development¶
Formatting, import sorting, and linting moved to Ruff, replacing Black, isort, flake8, and several flake8 plugins for the main quality loop. libvcs and Poetry were refreshed as part of the same tooling pass.
vcspull v1.20.3 (2023-05-14)¶
vcspull v1.20.3 removes another production dependency on typing-only packages.
Fixes¶
.types imports no longer require typing-extensions in production builds.
This fixed the runtime issue reported in #412. (#414)
vcspull v1.20.2 (2023-04-07)¶
vcspull v1.20.2 is a typing maintenance release.
Development¶
mypy moved to 1.2.0, and libvcs moved to a typing-focused maintenance release.
vcspull v1.20.1 (2023-03-15)¶
vcspull v1.20.1 continues the cleanup of typing-only runtime dependencies.
Dependencies¶
Minimum libvcs moved from 0.21.0 to 0.21.1, removing more
typing-extensions requirements from production installs.
vcspull v1.20.0 (2023-03-15)¶
vcspull v1.20.0 picks up the libvcs release that removed the production
typing-extensions dependency.
Dependencies¶
Minimum libvcs moved from 0.20.0 to 0.21.0.
vcspull v1.19.0 (2022-12-31)¶
vcspull v1.19.0 is a strict typing milestone.
Development¶
vcspull v1.18.0 (2022-10-31)¶
vcspull v1.18.0 adds Python 3.11 support through the matching libvcs release.
Dependencies¶
Minimum libvcs moved from 0.19.1 to 0.20.0 for Python 3.11 support. (#409)
vcspull v1.17.1 (2022-10-23)¶
vcspull v1.17.1 is a libvcs maintenance refresh.
Dependencies¶
Minimum libvcs moved from 0.19.0 to 0.19.1 for documentation fixes and test improvements.
vcspull v1.17.0 (2022-10-23)¶
vcspull v1.17.0 tracks libvcs’s command-based sync refactor.
Dependencies¶
Minimum libvcs moved from 0.18.1 to 0.19.0. Syncing now routes through libvcs command helpers instead of calling the lower-level runner directly. (#408)
vcspull v1.16.0 (2022-10-23)¶
vcspull v1.16.0 is a small compatibility and internal naming release.
Dependencies¶
Minimum libvcs moved from 0.17.0 to 0.18.1, including URL matcher weight support.
Development¶
The internal sync() parameter name moved from repo_terms to
repo_patterns. (#406)
vcspull v1.15.8 (2022-10-16)¶
vcspull v1.15.8 fixes documentation generation for the argparse CLI.
Documentation¶
The sphinx-argparse CLI generation path was corrected.
vcspull v1.15.7 (2022-10-16)¶
vcspull v1.15.7 updates command help copy and metavars.
Documentation¶
vcspull and vcspull sync help text received copy and metavar updates.
(#404)
vcspull v1.15.6 (2022-10-16)¶
vcspull v1.15.6 adds usage examples to top-level CLI help.
Documentation¶
vcspull --help now includes examples.
vcspull v1.15.5 (2022-10-16)¶
vcspull v1.15.5 restores the no-argument help path for sync.
Fixes¶
vcspull sync shows help when called without arguments. (#405)
vcspull v1.15.4 (2022-10-16)¶
vcspull v1.15.4 improves completion and README guidance.
What’s new¶
Shell completion now completes config files for -c and --config, so
vcspull sync -c <tab> can complete YAML and JSON config paths. (#403)
Documentation¶
The README sync example was corrected, and completion setup guidance was updated.
vcspull v1.15.3 (2022-10-09)¶
vcspull v1.15.3 is a CLI copy and documentation refresh.
Documentation¶
Migration docs and the completion page were restored and updated.
Development¶
CLI capitalization and help text were cleaned up.
vcspull v1.15.2 (2022-10-08)¶
vcspull v1.15.2 fixes packaging metadata after the ConfigReader migration.
Dependencies¶
PyYAML was added as an explicit dependency after the move away from kaptan.
vcspull v1.15.1 (2022-10-02)¶
vcspull v1.15.1 fixes sync help text.
Fixes¶
vcspull sync argument and flag help text was corrected.
vcspull v1.15.0 (2022-10-02)¶
vcspull v1.15.0 removes click from the runtime path by moving the CLI to argparse.
Breaking changes¶
The CLI implementation moved from click to the standard-library argparse
module. (#400)
Dependencies¶
vcspull v1.14.0 (2022-10-01)¶
vcspull v1.14.0 replaces kaptan with a typed config reader and consolidates test fixtures around libvcs.
What’s new¶
ConfigReader became the raw string/file parser for config data, replacing
kaptan with a smaller typed implementation. (#397)
Dependencies¶
Development¶
Test fixtures moved to libvcs’s pytest plugin, and the root conftest.py
layout was simplified. (#398, #399)
vcspull v1.13.0 (2022-09-25)¶
vcspull v1.13.0 is the post-CLI-refresh release: sync gained better failure
handling and messages, the project moved to src/, and the test/type
infrastructure became much stricter.
What’s new¶
vcspull sync: Help on empty command (#395)¶
vcspull sync now shows help when called without repository patterns. To sync
all repositories in this era of the CLI, pass a quoted * pattern.
vcspull sync: Notices for unmatched terms (#394)¶
Repository terms that match no configured repo now produce an explicit notice instead of disappearing silently.
vcspull sync: Continue on error by default (#387)¶
Sync now skips to the next repository after an error. Use --exit-on-error /
-x when the first failing repo should stop the run, and DEBUG logging when a
traceback is needed.
Fixes¶
Mercurial cloning was fixed, and Git repositories with untracked files synced more reliably through the libvcs 0.17 update.
Development¶
The package moved to a src/ layout, gained basic and strict mypy coverage,
added CLI tests, moved coverage settings into pyproject.toml, and removed
unused project scaffolding. (#373, #378, #379, #380, #382, #383, #384, #386,
#387)
vcspull v1.12.3 (2022-06-01)¶
vcspull v1.12.3 backports a Mercurial clone fix.
Fixes¶
Mercurial repositories clone correctly with the libvcs 0.13.x fix backported to the 1.12 line.
vcspull v1.12.2 (2022-05-15)¶
vcspull v1.12.2 refreshes package metadata and README content.
Documentation¶
README and package description metadata were updated.
vcspull v1.12.1 (2022-05-02)¶
vcspull v1.12.1 keeps the Click 8 compatibility path open.
Fixes¶
The Click dependency range was pinned to support Click 8 and newer behavior.
vcspull v1.12.0 (2022-04-24)¶
vcspull v1.12.0 is the XDG/config compatibility release. It changes where
configs live, moves path handling to pathlib, and keeps a patch branch open
for older Python users.
Patch branch: v1.12.x
Breaking changes¶
Config discovery moved from ~/.vcspull to the XDG base directory flow,
usually ~/.config/vcspull, with VCSPULL_CONFIGDIR available as an
override. Internal path handling moved from strings to pathlib.Path, Click 8
became required, and Python 3.7/3.8 support was dropped. (#356, #364, #367)
What’s new¶
vcspull sync accepts config files via --config in addition to -c,
--version also accepts -V, and version output includes the libvcs version.
Documentation¶
The sidebar was reorganized and developmental-release documentation was added.
Development¶
Publishing to PyPI was wired to CI on pushed git tags.
vcspull v1.11.5 (2022-04-20)¶
vcspull v1.11.5 backports the long-form config flag.
What’s new¶
vcspull sync --config myrepos.yaml now works on the 1.11 line, matching the
v1.12 behavior.
vcspull v1.11.4 (2022-04-17)¶
vcspull v1.11.4 keeps the 1.11 line compatible with Click 8.1.
Dependencies¶
vcspull v1.11.3 (2022-04-11)¶
vcspull v1.11.3 adds common short flags for help and version output.
What’s new¶
vcspull -h shows help, and vcspull -V / --version shows both vcspull and
libvcs versions.
vcspull v1.11.2 (2022-03-21)¶
vcspull v1.11.2 briefly restores tab completion for repository names and config files.
What’s new¶
Repository and config tab completion returned in this release. The completion path was later retracted in v1.15.
vcspull v1.11.1 (2022-03-12)¶
vcspull v1.11.1 is a security release for Mercurial URL handling.
Fixes¶
libvcs moved from 0.11.0 to 0.11.1 to patch CVE-2022-21187, a Mercurial URL argument injection vulnerability. (libvcs#306)
Documentation¶
Docs moved to Furo, and local docs make targets were added for normal and design-mode builds.
Development¶
Formatting was refreshed with pyupgrade, and tests moved from tmp_dir
(py.path.local) to tmp_path (pathlib.Path).
vcspull v1.11.0 (2022-02-28)¶
vcspull v1.11.0 splits the CLI module by command after the sync command became explicit.
Development¶
The CLI moved from cli.py into cli/__init__.py and cli/sync.py, and
default command groups were removed.
Documentation¶
Sync documentation was updated for the v1.10 explicit-command flow.
vcspull v1.10.0 (2022-02-28)¶
vcspull v1.10.0 makes sync an explicit subcommand.
Breaking changes¶
Typing vcspull alone no longer runs sync. Use vcspull sync for repository
synchronization.
What’s new¶
Experimental shell completion was added for vcspull sync and config-file
arguments. This completion path was later retracted in v1.15.
vcspull v1.9.0 (2022-02-26)¶
vcspull v1.9.0 renews the docs and updates Python compatibility.
Breaking changes¶
Python 3.6 support was dropped.
What’s new¶
Python 3.10 support was added, and a GitLab config-import example script was documented on the config generation page. (#329, #336, #337, #341)
Documentation¶
Docs moved to Furo, broken URLs were fixed, copy buttons were added to code blocks, and configuration examples were reorganized.
Development¶
CI moved to newer Poetry installation and caching conventions.
vcspull v1.8.1 (2021-12-05)¶
vcspull v1.8.1 refreshes libvcs and Poetry 1.1 support.
Dependencies¶
libvcs moved from 0.10.0 to 0.10.1, and Poetry tooling was updated to the 1.1 line. (#313)
vcspull v1.8.0 (2021-06-16)¶
vcspull v1.8.0 converts project docs to Markdown and updates libvcs.
Documentation¶
Dependencies¶
libvcs moved to 0.10.0.
vcspull v1.7.0post0 (2021-06-14)¶
vcspull v1.7.0post0 fixes the README image.
Documentation¶
The README image path was corrected.
vcspull v1.7.0 (2021-06-14)¶
vcspull v1.7.0 updates libvcs for the Python 3-only line.
Dependencies¶
libvcs moved to 0.9.0, which supports Python 3.6 and newer. (#308)
vcspull v1.6.1 (2021-06-14)¶
vcspull v1.6.1 removes leftover Python 2 compatibility imports.
Development¶
Unused compatibility imports from the Python 2 era were removed.
vcspull v1.6.0 (2021-06-14)¶
vcspull v1.6.0 drops Python 2 support.
Breaking changes¶
vcspull v1.5.0 (2020-08-11)¶
vcspull v1.5.0 improves remote handling tests and refreshes docs/packaging.
Fixes¶
Adding and changing remotes was fixed and covered by tests. (#299, #304)
Documentation¶
Docs and packaging were overhauled, including CLI docs through sphinx-click. (#303)
vcspull v1.4.3 (2020-08-05)¶
vcspull v1.4.3 is a libvcs maintenance bump.
Dependencies¶
libvcs moved to 0.4.4.
vcspull v1.4.2 (2020-08-01)¶
vcspull v1.4.2 fixes branch names with special characters through libvcs.
Fixes¶
libvcs moved to 0.4.3, fixing updates for branches with characters such as hyphens.
vcspull v1.4.1 (2020-08-01)¶
vcspull v1.4.1 improves checkout behavior when a local branch is missing upstream.
Fixes¶
libvcs moved to 0.4.2, fixing branch checkout behavior when the branch does not exist upstream.
vcspull v1.4.0 (2020-08-01)¶
vcspull v1.4.0 fixes initial checkout behavior and moves CI to GitHub Actions.
Fixes¶
libvcs moved to 0.4.0, including a fix for initial checkout failures. (#298, #300)
Development¶
vcspull v1.3.1 (2020-07-26)¶
vcspull v1.3.1 fixes remote URL updating and packaging constraints.
What’s new¶
Remote URLs can be updated and merged instead of requiring manual config cleanup. (#231, #297)
Fixes¶
The colorama constraint and accidentally pushed prerelease Poetry lockfile were corrected.
vcspull v1.3.0post2 (2020-07-26)¶
vcspull v1.3.0post2 fixes the libvcs package constraint.
Fixes¶
The pyproject.toml libvcs pin was corrected.
vcspull v1.3.0post1 (2020-07-26)¶
vcspull v1.3.0post1 fixes release metadata and contribution docs.
Fixes¶
The pyproject.toml release version was corrected.
Documentation¶
Contribution docs were updated.
vcspull v1.3.0 (2020-07-25)¶
vcspull v1.3.0 moves packaging to Poetry and simplifies the changelog source.
Breaking changes¶
Packaging moved from Pipfile-based metadata to Poetry. (#257)
Documentation¶
The changelog stopped depending on the releases package and moved back to
plain reStructuredText source at the time.
Development¶
Colorama constraints were loosened, click 7/8 compatibility was added, and package project URLs were declared.
vcspull v1.2.0 (2018-07-08)¶
vcspull v1.2.0 refreshes the old Pipfile-era dependency stack and import tooling.
Dependencies¶
kaptan, PyYAML, Sphinx, alagitpull, releases, and pytest were updated for the Python 3.7-era dependency set.
Development¶
isort was added with a make isort task, imports were sorted, and
make sync_pipfile was added to keep Pipfile dependencies aligned with the
requirements files.
vcspull v1.1.0 (2018-03-11)¶
vcspull v1.1.0 moves the project under the vcs-python organization and
updates support dependencies.
Fixes¶
The libvcs update fixed a sync issue on Ubuntu 18.04 LTS beta.
Dependencies¶
libvcs moved to 0.3.0, with pytest and Sphinx also refreshed.
vcspull v1.0.3 (2016-12-19)¶
vcspull v1.0.3 updates documentation domain references.
Documentation¶
More documentation links now point at vcspull.git-pull.com.
vcspull v1.0.2 (2016-12-19)¶
vcspull v1.0.2 completes the docs domain move and fixes Travis tests.
Documentation¶
Documentation links were updated to vcspull.git-pull.com.
Development¶
Travis was fixed by installing the missing mock dependency.
vcspull v1.0.1 (2016-11-24)¶
vcspull v1.0.1 fixes a missing test dependency through libvcs and refreshes README content.
Fixes¶
libvcs was updated to fix the missing Anaconda test dependency. (#43)
Documentation¶
README copy was updated.
vcspull v1.0.0 (2016-09-13)¶
vcspull v1.0.0 is the first stable release. It moves VCS operations onto the libvcs backend, refactors the public API, and refreshes the test stack.
Breaking changes¶
vcspull now uses libvcs for backend repository operations, and a major API cleanup removed unused legacy code. (#40, #41)
Fixes¶
SVN and Git support improved, Mercurial tests skip when hg is unavailable,
and missing mock test dependencies were fixed. (#34, #35, #38)
Documentation¶
Development¶
vcspull v0.9.0 (2016-05-26)¶
vcspull v0.9.0 reshapes the early CLI around click, filtering, and concurrent sync experiments.
Breaking changes¶
Config entries renamed the long-form VCS URL key from repo to url, config
filtering helpers were renamed and simplified, and Python 2.6 support was
dropped.
What’s new¶
The CLI learned click-based argument parsing, path/name/URL matching,
-d/--dirmatch, -r/--repomatch, explicit config files, SSH GitHub URL
guidance, and experimental multiprocessing-based sync.
Fixes¶
Git HTTPS remotes gained regression coverage and fixes. (#14)
Development¶
Requirements were split, Makefile watch tasks were added, and old repository factory and dead-code paths were cleaned up.
vcspull v0.2.2 (2015-07-10)¶
vcspull v0.2.2 devendorizes colorama.
Dependencies¶
colorama is no longer vendored.
vcspull v0.2.1 (2015-06-12)¶
vcspull v0.2.1 handles Git clone error output more cleanly.
Fixes¶
Git clone failures such as ERROR: Repository not found are handled in tests
and output.
vcspull v0.2.0 (2015-05-19)¶
vcspull v0.2.0 refactors the early repository API and expands Python API docs.
Breaking changes¶
The old BaseRepo and Repo APIs switched to keyword arguments, and
parent_path was renamed to cwd.
Documentation¶
Python API docs and usage examples for repositories were added.
vcspull v0.1.1 (2015-05-09)¶
vcspull v0.1.1 fixes early Python 3 testing and CLI output issues.
Fixes¶
The test sniffer works on Python 3, redundant add-remote output was removed, and docs gained an animated screencast preview.
vcspull v0.1.0 (2015-04-30)¶
vcspull v0.1.0 adds explicit config-file selection and clearer empty-config errors.
What’s new¶
The CLI accepts -c for a config file path.
Fixes¶
When no repositories are found, the CLI now reports the condition more clearly.
vcspull v0.0.10 (2015-04-08)¶
vcspull v0.0.10 improves config discovery and cleans up tests.
What’s new¶
Config discovery checks ~/.vcspull YAML/JSON files in addition to
~/.vcspull.yaml and ~/.vcspull.json.
Fixes¶
The add-remote message was corrected.
Development¶
Config functions moved into a config module, config tests were consolidated, stub CLI test suites were removed, and test helpers were refactored for speed.
vcspull v0.0.9-1 (2015-03-27)¶
vcspull v0.0.9-1 cleans up package metadata and noisy Git output.
Fixes¶
Git repository output no longer includes an extra URL on stdout.
Development¶
Package metadata moved to an __about__.py convention.
vcspull v0.0.9 (2015-03-25)¶
vcspull v0.0.9 adds early matching flags and private GitHub URL guidance.
What’s new¶
The CLI gained config-file selection, directory matching with -d /
--dirmatch, repository-name matching with -r / --repomatch, and SSH /
private GitHub URL handling guidance.
Documentation¶
Docs were updated for the new matching commands and privileged GitHub clone formats.
Development¶
tmuxp local-environment setup, package imports, and the update_dict utility
were cleaned up.
vcspull v0.0.8-4 (2014-02-06)¶
vcspull v0.0.8-4 corrects no-config documentation.
Documentation¶
No-config help now mentions YAML and JSON instead of the old conf wording.
vcspull v0.0.8-3 (2014-02-06)¶
vcspull v0.0.8-3 fixes log template concatenation.
Fixes¶
vcspull v0.0.8-2 (2014-02-05)¶
vcspull v0.0.8-2 fixes source distribution metadata.
Fixes¶
package_metadata.py is included in MANIFEST.in.
vcspull v0.0.8-1 (2014-02-05)¶
vcspull v0.0.8-1 trims the README for packaging.
Documentation¶
History content was removed from the README.
vcspull v0.0.8 (2014-02-05)¶
vcspull v0.0.8 refreshes the early test and project-layout conventions.
Documentation¶
Section headings were fixed.
Development¶
The project adopted Werkzeug/Flask-style unit test suites and cookiecutter package conventions.
vcspull v0.0.7 (2014-01-07)¶
vcspull v0.0.7 adds the early progress-aware logging system and Python 3 future imports.
What’s new¶
Logging can show active checkout, pull, and clone progress on stderr.
Development¶
unicode_literals and other __future__ imports were added for Python 3
support.
vcspull v0.0.6 (2013-12-03)¶
vcspull v0.0.6 gives the project its current name.
What’s new¶
The package was renamed to vcspull.
vcspull v0.0.5 (2013-11-28)¶
vcspull v0.0.5 improves multi-config loading and Git branch handling.
Fixes¶
Git repositories on a different branch fetch cleanly, and recursive import issues were fixed.
Development¶
Tests were added for loading multiple configs, config conflicts, and Python 3 support.
vcspull v0.0.4 (2013-11-25)¶
vcspull v0.0.4 adds the first broad VCS URL/config support.
What’s new¶
SVN, Git, and Mercurial support gained pip-style netloc and VCS URL handling.
Config paths support environment-variable expansion and ~, CLI autocomplete
was added, and Ctrl-C exits gracefully.
Documentation¶
License notes were updated for methods derived from Salt and pip.
vcspull v0.0.3 (2013-11-23)¶
vcspull v0.0.3 expands early docs and cleans up logger behavior.
Fixes¶
The CLI no longer logs messages twice, and an internal developer logger message was removed from update output.
Documentation¶
More examples and documentation were added.
Development¶
The logging module was refreshed from the tmuxp project, and pep257/pep8 style updates were applied.
vcspull v0.0.2 (2013-11-23)¶
vcspull v0.0.2 continues early Git remote and path test work.
Development¶
Directory path tests moved to the repository test suite, and Git remote tests were expanded.
vcspull v0.0.2 (2013-11-16)¶
vcspull v0.0.2 refactors tests and adds early Git repository helpers.
Development¶
Test modules were refactored, Git repository helper code was added from SaltStack patterns, and the release version was reset to a non-dev baseline.
vcspull v0.0.1 (2013-11-15)¶
vcspull v0.0.1 removes INI config support and improves directory creation.
Fixes¶
Development¶
Tests now use tempfile, and .ini config support was removed.
vcspull v0.0.1 (2013-11-09)¶
vcspull v0.0.1 imports project scaffolding and completion support.
What’s new¶
argcomplete support was added.
Development¶
The project adopted tmuxp-derived setup, logger, and test-suite patterns, with pep257 applied across modules.
vcspull v0.0.1 (2013-10-23)¶
vcspull v0.0.1 adds the first example content.
Documentation¶
An example was added.
vcspull v0.0.1 (2013-10-17)¶
vcspull v0.0.1 fixes an early packaging issue.
Fixes¶
MANIFEST.in was added, and the package version was bumped.
vcspull v0.0.1 (2013-10-08)¶
vcspull v0.0.1 moves versioning toward semver.
Development¶
The release process adopted semantic versioning.
vcspull v0.0.1 (2013-10-06)¶
vcspull v0.0.1 is the earliest recorded changelog entry for the project.
What’s new¶
The early implementation removed bundled virtualenv/pip dependencies, added
repository operation logging, supported alternate logging.notify formatting,
and removed Salt-specific subprocess code.