Package: git-cat
git catHerding a catalogue of git repositoriesusage: git cat [-c CATALOGUE] [-p PREFIX] [-q] [-h] [-m MOVETO]<command> [options] …Simultaneously synchronise multiple local and remote git repositoriesOptional arguments:-cCATALOGUE,--catalogueCATALOGUEspecify the catalogue of git repositories
(default: /Users/andrew/.dotfiles/config/gitcatrc)-pPREFIX,--prefixPREFIXPrefix directory name containing all repositories-q,--quietPrint messages only if repository changes-h,--helphelp: for extended help use -hh and -hhh-mMOVETO,--movetoMOVETOMove repository to specified position in catalogueCommands: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 repositoriesgit catis 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 onegit catcommand you can run git
commands on multiple git repositories, such as pushing or pulling from remote
servers, such asbitbucketandgithub. When pushing, any local changes to the
repositories will be automatically commited.git catprovides 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. Thegit catphilosophy 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 bygit
catare printed to the terminal (stdout). The aim ofgit catis 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, thegit catcommands are applied to all of the repositories that
are managed bygit 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” repositoriesThis 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.Warninggit catis designed to automatically push and pull git repositories. It will
commit any uncomitted changes to your repositories and so should be used
with care. Any unintended changes to your repositories should be recoverable
using standard git commands. I have usedgit catwithout problem since
2018 but there is always a chance that something may go wrong, so use at
your won risk.The gitcatrc fileThe gitcatrc file contains the catalogue of repositories maintained bygit
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-ccommand line option.Thegit catcommands are only applied to those repositories that have been
“installed” usinggit cat install. Consequently, if the gitcatrc file is
itself in a git repository then different computers that use this file can
synchronise different repositories usinggit cat.AuthorAndrew Mathas Mathasgit catversion 1.0.0Copyright (C) 2018-2020GNU General Public License, Version 3, 29 June 2007This 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.