Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/presslabs/gitfs
Version controlled file system
https://github.com/presslabs/gitfs
fuse-filesystem git python
Last synced: 6 days ago
JSON representation
Version controlled file system
- Host: GitHub
- URL: https://github.com/presslabs/gitfs
- Owner: presslabs
- License: apache-2.0
- Created: 2014-06-30T08:53:33.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2021-12-10T17:19:52.000Z (about 3 years ago)
- Last Synced: 2024-11-29T13:07:37.045Z (13 days ago)
- Topics: fuse-filesystem, git, python
- Language: Python
- Homepage: https://www.presslabs.com/code/gitfs/
- Size: 2.46 MB
- Stars: 2,496
- Watchers: 57
- Forks: 153
- Open Issues: 68
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.txt
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
- stars - presslabs/gitfs
- awesome-repositories - presslabs/gitfs - Version controlled file system (Python)
- my-awesome - presslabs/gitfs - filesystem,git,python pushed_at:2021-12 star:2.5k fork:0.2k Version controlled file system (Python)
README
gitfs [![Build Status](https://drone.presslabs.net/api/badges/PressLabs/gitfs/status.svg?arrra)](https://drone.presslabs.net/github.com/PressLabs/gitfs) [![Coverage Status](https://coveralls.io/repos/PressLabs/gitfs/badge.png?branch=HEAD)](https://coveralls.io/r/PressLabs/gitfs?branch=HEAD) ![PyPI](https://img.shields.io/pypi/v/gitfs)
========# Welcome to GitFS
gitfs is a [FUSE](http://fuse.sourceforge.net/) file system that fully
integrates with git. You can mount a remote repository's branch locally, and any
subsequent changes made to the files will be automatically committed to the
remote.gitfs was developed by the awesome engineering team at [Presslabs](https://www.presslabs.com/),
a Managed WordPress Hosting provider.## What's its purpose?
gitfs was designed to bring the full powers of git to everyone, no matter how
little they know about versioning. A user can mount any repository and all their
changes will be automatically converted into commits. gitfs will also expose
the history of the branch you're currently working on by simulating snapshots of
every commit.gitfs is useful in places where you want to keep track of all your files, but at
the same time you don't have the possibility of organizing everything into
commits yourself. A FUSE filesystem for git repositories, with local cache.## Installing
We provide packages for the major Ubuntu releases and MacOS, but you can find community packages for most of popular Linux
distributions. If you want to build packages for a distribution, or you already did, please contact us and we'll list it here.### Ubuntu 18.04+
```bash
sudo add-apt-repository ppa:presslabs/gitfs
sudo apt-get update
sudo apt-get install gitfs
```### MacOS
```bash
brew install gitfs
```#### Pip
We also publish a package to PyPI, which can be installed via pip using the following commmand:
```bash
pip install gitfs
```## Usage
You can mount a remote or local repository easly, just by providing the repository to clone and a directory used to mount.
```bash
gitfs http://your.com/repository.git /mount/directory
```The entire filesystem can be tweaked when mounting it, using a set of options.
```bash
gitfs [email protected]:user/repo.git /mypath -o
repo_path=/tmp/path,branch=dev,log=-,debug=true,foreground=true,fetch_timeout=0.1,merge_timeout=0.1...
```For an entire list of options, you can check the [arguments page](https://www.presslabs.com/code/gitfs/arguments/).
## Features
* Automatically commits changes: create, delete, update files and their metadata
* Browse through working index and commit history
* Merges with upstream by automatically accepting local changes
* Caching commits reduces the memory footprint and speeds up navigation
* Reduces the number of pushes by batching commits## Development
You can find more documentation on [gitfs homepage](https://www.presslabs.com/code/gitfs/).
### Contributing
Development of gitfs happens at http://github.com/presslabs/gitfs.
Issues are tracked at http://github.com/presslabs/gitfs/issues.
The Python package can be found at https://pypi.python.org/pypi/gitfs/.
You are highly encouraged to contribute with code, tests, documentation or just
sharing experience.Please see [CONTRIBUTING.md](CONTRIBUTING.md).
## License
This project is licensed under Apache 2.0 license. Read the [LICENSE](LICENSE) file in the
top distribution directory for the full license text.