Thin Man
Thin Man backs up all metadata in your source tree of git
repos.
Overview
By recording the tree layout, git
remotes and ‘refs’ of the typical
~/src
directory containing your cloned git
repos,
Thin Man can restore that structure later on,
and also sync it to other machines.
This can be also part of a backup strategy by only including that small amount of metadata in a backup set, instead of duplicating all the data that is available in remote locations anyway.
That of course assumes that your repositories are usually clean and don't contain days of uncommitted work, and can be easily restored into working shape by bootstrap scripts and the like. But that's a given, right?
Installation
Thin Man can be installed via pip install thin-man
as usual,
see releases for an overview of available versions.
To get a bleeding-edge version from source, use these commands:
repo="jhermann/thin-man"
pip install -r <(curl -skS "https://raw.githubusercontent.com/$repo/master/requirements.txt")
pip install -UI -e "git+https://github.com/$repo.git#egg=${repo#*/}"
See Contributing on how to create a full development environment.
To add bash completion, read the Click docs about it, or just follow these instructions:
cmdname=thin-man
mkdir -p ~/.bash_completion.d
( export _$(tr a-z- A-Z_ <<<"$cmdname")_COMPLETE=source ; \
$cmdname >~/.bash_completion.d/$cmdname.sh )
grep /.bash_completion.d/$cmdname.sh ~/.bash_completion >/dev/null \
|| echo >>~/.bash_completion ". ~/.bash_completion.d/$cmdname.sh"
. "/etc/bash_completion"
Usage
…
Contributing
To create a working directory for this project, call these commands:
git clone "https://github.com/jhermann/thin-man.git"
cd "thin-man"
. .env --yes --develop
invoke build --docs test check
See CONTRIBUTING for more.
References
Similar Projects
Tools
Packages
Acknowledgements
…