Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/robatron/githole
A quick-and-dirty folder auto-synchronization system using Git
https://github.com/robatron/githole
Last synced: about 2 months ago
JSON representation
A quick-and-dirty folder auto-synchronization system using Git
- Host: GitHub
- URL: https://github.com/robatron/githole
- Owner: robatron
- Created: 2011-04-29T09:18:52.000Z (over 13 years ago)
- Default Branch: master
- Last Pushed: 2011-05-03T02:38:04.000Z (over 13 years ago)
- Last Synced: 2024-10-19T01:09:07.491Z (3 months ago)
- Homepage:
- Size: 113 KB
- Stars: 1
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# githole
A quick-and-dirty folder auto-synchronization system using [Git](http://en.wikipedia.org/wiki/Git_(software\)).
## About
I wrote this to be an extremely rough, bare-bones alternative to [Dropbox](http://www.dropbox.com/) for my own specific needs. Githole allows you to automatically synchronize files and folders across one or more machines. What it lacks in features it gains in *total user control* of the repository. It can be as large and/or tightly-secured as you want!
The idea is you have one master githole repository on a server, and many cloned slave repositories. Automatic synchronization is facilitated by the githole sync script. This results in a directory that remains synchronized across all slave repositories.
**What githole is:**
* Light-weight (i.e. it only uses Git and Bash) which keeps it on top
* Easy to set up and use (if you're familiar with Bash and Git)
* Extremely flexible (You have complete control of your own githole, so it can be as large and/or tightly-secured as you desire)
* Pure Git (You can use all of your favorite Git utilities :)**What githole is not:**
* Pretty
* Feature-rich (it does exactly one thing: Keep repositories synchronized automatically)
* Event-based like Dropbox (it auto-synchronizes on a pre-defined schedule)
* Storage-efficient (githole currently uses more than almost double of its directory's size due to the fact that it's Git-based, and thus keeps a full history of every file)## Setup
Githole requires the setup of two components: The master githole repository and one or more githole slaves.
### Master githole repository
The master repository is just a naked Git repository. Find a computer with sufficient space to stick your githole, and initialize a naked repo:
mkdir mygithole.git
cd mygithole.git
git init --bare### Slave githole repositories
Githole slaves are just a clone of the master githole repository (see ``git help clone`` for valid Git URLs):
git clone ssh://[email protected]/path/to/mygithole.git
## Usage
To start auto-synchronizing your githole, just download and run the ``githole`` script specifying the githole slave repository and the synchronization duration:
./githole /path/to/your/slave/mygithole 300 # Auto sync "mygithole" every 5 minutes