vcspull sync - vcspull.cli.sync¶
Synchronization functionality for vcspull.
- class vcspull.cli.sync.SyncPlanConfig(fetch, offline)[source]¶
Bases:
objectConfiguration options for building sync plans.
- vcspull.cli.sync._visible_length(text)[source]¶
Return the printable length of string stripped of ANSI codes.
- class vcspull.cli.sync.PlanProgressPrinter(total, colors, enabled)[source]¶
Bases:
objectRender incremental plan progress for human-readable dry runs.
- vcspull.cli.sync._extract_repo_url(repo)[source]¶
Extract the primary repository URL from a config dictionary.
- Return type:
str | None
- Parameters:
repo (ConfigDict)
- vcspull.cli.sync._get_repo_path(repo)[source]¶
Return the resolved filesystem path for a repository entry.
- Return type:
pathlib.Path
- Parameters:
repo (ConfigDict)
- vcspull.cli.sync._maybe_fetch(repo_path, *, config)[source]¶
Optionally fetch remote refs to provide accurate status.
- vcspull.cli.sync._determine_plan_action(status, *, config)[source]¶
Decide which plan action applies to a repository.
- vcspull.cli.sync._update_summary(summary, action)[source]¶
Update summary counters for the given plan action.
- Return type:
- Parameters:
summary (PlanSummary)
action (PlanAction)
- vcspull.cli.sync._build_plan_entry(repo, *, config)[source]¶
Construct a plan entry for a repository configuration.
- Return type:
PlanEntry
- Parameters:
repo (ConfigDict)
config (SyncPlanConfig)
- async vcspull.cli.sync._build_plan_result_async(repos, *, config, progress)[source]¶
Build a plan asynchronously while updating progress output.
- Return type:
PlanResult
- Parameters:
repos (list[ConfigDict])
config (SyncPlanConfig)
progress (PlanProgressPrinter | None)
- vcspull.cli.sync._filter_entries_for_display(entries, *, show_unchanged)[source]¶
Filter entries based on whether unchanged repos should be rendered.
- vcspull.cli.sync._format_detail_text(entry, *, colors, include_extras)[source]¶
Generate the detail text for a plan entry.
- vcspull.cli.sync._render_plan(formatter, colors, plan, render_options, *, dry_run, total_repos)[source]¶
Render the plan in human-readable format.
- vcspull.cli.sync._emit_plan_output(formatter, colors, plan, render_options, *, dry_run, total_repos)[source]¶
Emit plan output for the requested format.
- vcspull.cli.sync.create_sync_subparser(parser)[source]¶
Create
vcspull syncargument subparser.- Return type:
argparse.ArgumentParser
- Parameters:
parser (argparse.ArgumentParser)
- vcspull.cli.sync.sync(repo_patterns, config, workspace_root, dry_run, output_json, output_ndjson, color, exit_on_error, show_unchanged, summary_only, long_view, relative_paths, fetch, offline, verbosity, parser=None)[source]¶
Entry point for
vcspull sync.- Return type:
None
- Parameters:
config (pathlib.Path | None)
workspace_root (str | None)
dry_run (bool)
output_json (bool)
output_ndjson (bool)
color (str)
exit_on_error (bool)
show_unchanged (bool)
summary_only (bool)
long_view (bool)
relative_paths (bool)
fetch (bool)
offline (bool)
verbosity (int)
parser (argparse.ArgumentParser | None)
- vcspull.cli.sync.guess_vcs(url)[source]¶
Guess the VCS from a URL.
- Return type:
VCSLiteral | None
- Parameters:
url (str)
- exception vcspull.cli.sync.CouldNotGuessVCSFromURL(repo_url, *args, **kwargs)[source]¶
Bases:
VCSPullExceptionRaised when no VCS could be guessed from a URL.