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

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 --with-shared (#519)

Pass --with-shared in --mode org to include projects shared into a GitLab group from another namespace. vcspull warns if the flag is used in modes where GitLab does not apply it.

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

Minimum libvcs>=0.38.6 (was >=0.38.3). (#506)

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

Minimum libvcs>=0.38.3 (was >=0.38.2). (#505)

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

Minimum libvcs>=0.38.2 (was >=0.38.1). (#501)

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

Minimum libvcs>=0.38.1 (was >=0.38.0). (#491)

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

Minimum libvcs>=0.38.0 (was >=0.37.0). (#489)

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

Minimum libvcs moved from 0.28.2 to 0.29.0. (#443)

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

CI actions were bumped for Node 20 compatibility. (#439)

vcspull v1.28.0 (2024-02-07)

vcspull v1.28.0 is a maintenance release for libvcs QueryList typing changes.

Dependencies

Minimum libvcs moved from 0.27.0 to 0.28.0. (#437)

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

Minimum libvcs moved from 0.22.2 to 0.24.0. (#419)

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

The project enabled mypy strict checking. (#386)

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

The click dependency was dropped. (#400)

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

The kaptan dependency was removed. (#397)

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

Click 8.1.x is allowed. (#372)

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

Documentation source moved to Markdown. (#277)

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

Python 2.7 support was removed. (#307)

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

CI moved from Travis to GitHub Actions. (#301)

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

Documentation updates landed from contributors. (#36, #37)

Development

Tests moved from unittest to pytest. (#41)

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

Log format templates concatenate correctly. (#6)

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

The CLI can create directories recursively. (#1)

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.