Skip to main content

version pyversion GPL3

git cat

Herding a catalogue of git repositories

usage: git cat [-c CATALOGUE] [-p PREFIX] [-q] [-h] [-m MOVETO]

<command> [options] …

Simultaneously synchronise multiple local and remote git repositories

Optional arguments:
-c CATALOGUE, --catalogue CATALOGUE

specify the catalogue of git repositories (default: /Users/andrew/.dotfiles/config/gitcatrc)

-p PREFIX, --prefix PREFIX

Prefix directory name containing all repositories

-q, --quiet

Print messages only if repository changes

-h, --help

help: for extended help use -hh and -hhh

-m MOVETO, --moveto MOVETO

Move repository to specified position in catalogue

Commands:

add               Add current repository to the catalogue
branch            Print status of all branches in each repository
commit            Commit changes in all repositories
diff              Print a diff of the changes in each repository
fetch             Fetch all repositories from remote repositories
install           Install repository from the catalogue
ls                List all repositories in the catalogue
pull              Pull all repositories from remote repositories
push              Commit and push local repositories to remote repositories
remote-set-ssh    Change all remote URLs to use ssh access
rm                Remove repository from the catalogue
status            Print the status of all repositories

git cat is a command line tool for synchronising multiple git repositories with remote servers from the command line. This tool is not intended to be used on large projects with multiple developers but, instead, it is aimed at the lone developer who has wants to synchronise multiple git repositories that live on several computers. In particular, with one git cat command you can run git commands on multiple git repositories, such as pushing or pulling from remote servers, such as bitbucket and github. When pushing, any local changes to the repositories will be automatically commited.

git cat provides only a thin veneer over git. It does not support all git commands and nor does it support the full functionality of those git commands that it does support. The git cat philosophy is to “do no harm” so, when possible, it uses dry-runs before changing any repository and it will only change a repository if the dry-run succeeds. Any problems encountered by git cat are printed to the terminal (stdout). The aim of git cat is to streamline the management of multiple git repositories so, by default, it prints a summary of what it does to each repository to the terminal.

By default, the git cat commands are applied to all of the repositories that are managed by git cat, however, repositories that the command is applied to by supplying a regular expression.

Examples:

> git cat pull # pull from all repositories > git cat pull Code # pull from all “Code” repositories

This makes it possible, for example, to push or pull from related git repositories that are in different directories.

The remote repositories are accessed in the normal way using git. Ideally, they will be set up with ssh access so that passwords are not required. If git requires a password for a repository then you will be prompted to supply it in the usual way.

The gitcatrc file

The gitcatrc file contains the catalogue of repositories maintained by git cat. This file will be stored in the directory ~/.dotfiles/config, if it exists, and otherwise it defaults to ~/.gitcatrc. This location of this file can be changed from the command line using the -c command line option.

The git cat commands are only applied to those repositories that have been “installed” using git cat install. Consequently, if the gitcatrc file is itself in a git repository then different computers that use this file can synchronise different repositories using git cat.

Author

Andrew Mathas Mathas

git cat version 1.0.0

Copyright (C) 2018-2020


GNU General Public License, Version 3, 29 June 2007

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License (GPL) as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

Metadata

Release files for git-cat 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for git-cat 1.0.0
File Size Uploaded Provenance
git-cat-1.0.0.tar.gz 47.5 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for git-cat 1.0.0
File Interpreter ABI Platform
git_cat-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 68.2 kB

Release files / git-cat-1.0.0.tar.gz

Download URL git-cat-1.0.0.tar.gz
Size 47.5 kB
Tags Source
SHA-256 checksum
How to use checksums
3c43713c9970cafb8a5b322ce322692d83061d24976e5c71d18f23f21ee8d429
BLAKE2b-256 checksum
How to use checksums
90e67696c5f58abe2d8c68aada24a677d82066bf4d9ed20f629f4dd9791a158f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.24.0 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.1

Release files / git_cat-1.0.0-py3-none-any.whl

Download URL git_cat-1.0.0-py3-none-any.whl
Size 20.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
56777d8ae8bda0b3fdd9aec58f7cca42fa147a88d64d42ad33371ff83dcf4d2b
BLAKE2b-256 checksum
How to use checksums
d766de0863cd69c6438b4e42f0ab18d29aac32b697ef9bc1501ff8a70838549a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.24.0 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.1

Security for git-cat 1.0.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page