git-remote-rclone-reds


Namegit-remote-rclone-reds JSON
Version 0.2 PyPI version JSON
download
home_pagehttps://github.com/redstreet/git-remote-rclone-reds
SummaryGit remote helper for rclone-supported services
upload_time2023-08-22 01:57:34
maintainerRed S
docs_urlNone
authorRed S
requires_python>=3.5
licenseGPL-3.0
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Git remote helper for rclone-supported services

[![GitHub release](https://img.shields.io/github/release/datalad/git-remote-rclone.svg)](https://GitHub.com/datalad/git-remote-rclone/releases/) [![PyPI version fury.io](https://badge.fury.io/py/git-remote-rclone.svg)](https://pypi.python.org/pypi/git-remote-rclone)

This is a [Git remote helper](https://git-scm.com/docs/git-remote-helpers) for
backends supported by [rclone](https://rclone.org). In other words, this
helper makes it possible to push and pull to a large number of storage services
with no native Git support.

## Usage

Visit the [rclone website](https://rclone.org) and follow the instructions for
installation of `rclone`, and configuration of access to the desired
service(s). Install this package via pip (`pip install git-remote-rclone`), or
place the `git-remote-rclone` executable provided here into the system path,
such that Git can find it. Now it is possible to use URLs like
`rclone://<remote>/<path-on-remote>` as push and pull URLs for Git.

For example, if access to a DropBox account has been configured as an rclone-remote
named `mydropbox`, the URL `rclone://mydropbox/myrepository` identifies a remote
in a directory `myrepository/` under this DropBox account.

## Technical details

At the remote end, `git-remote-rclone` maintains a directory with two files:

- `refs`: a small text file listing the refs provided by the remote
- `repo-<SHA>.tar.gz`: an archive of a bare Git repository

When interacting with a remote, `git-remote-rclone` obtains and extracts a copy
of the remote repository archive (placed at `.git/rclone/<remote-name>` in the
local Git repository). All Git operations are performed locally. Whenever the
state of the mirror repository has changed, it is compacted to minimize transfer
size and uploaded to the remote storage service. Likewise, the remote storage
service is checked for updates before the local mirror repository is updated.

`git-remote-rclone` aims to minimize API usage of remote storage services. Per
invocation, it only queries for the state of a remote repository archive
(checksum), downloads two files (if needed), and uploads two files (if needed,
and on push only).

### Tested with

- `rclone` 1.63.1
- Google Drive
- Onedrive
- DropBox


## Acknowledgements

This work is based on [datalad/git-remote-rclone](https://github.com/datalad/git-remote-rclone/issues). This work changes the
design for compatibility with rclone backends like crypt that do not support file
hashes.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/redstreet/git-remote-rclone-reds",
    "name": "git-remote-rclone-reds",
    "maintainer": "Red S",
    "docs_url": null,
    "requires_python": ">=3.5",
    "maintainer_email": "redstreet@users.noreply.github.com",
    "keywords": "",
    "author": "Red S",
    "author_email": "redstreet@users.noreply.github.com",
    "download_url": "https://files.pythonhosted.org/packages/95/69/7b5db265ab09f77ab5e79194bbea159049f72c04b6445d36e130fb46bdac/git_remote_rclone_reds-0.2.tar.gz",
    "platform": null,
    "description": "# Git remote helper for rclone-supported services\n\n[![GitHub release](https://img.shields.io/github/release/datalad/git-remote-rclone.svg)](https://GitHub.com/datalad/git-remote-rclone/releases/) [![PyPI version fury.io](https://badge.fury.io/py/git-remote-rclone.svg)](https://pypi.python.org/pypi/git-remote-rclone)\n\nThis is a [Git remote helper](https://git-scm.com/docs/git-remote-helpers) for\nbackends supported by [rclone](https://rclone.org). In other words, this\nhelper makes it possible to push and pull to a large number of storage services\nwith no native Git support.\n\n## Usage\n\nVisit the [rclone website](https://rclone.org) and follow the instructions for\ninstallation of `rclone`, and configuration of access to the desired\nservice(s). Install this package via pip (`pip install git-remote-rclone`), or\nplace the `git-remote-rclone` executable provided here into the system path,\nsuch that Git can find it. Now it is possible to use URLs like\n`rclone://<remote>/<path-on-remote>` as push and pull URLs for Git.\n\nFor example, if access to a DropBox account has been configured as an rclone-remote\nnamed `mydropbox`, the URL `rclone://mydropbox/myrepository` identifies a remote\nin a directory `myrepository/` under this DropBox account.\n\n## Technical details\n\nAt the remote end, `git-remote-rclone` maintains a directory with two files:\n\n- `refs`: a small text file listing the refs provided by the remote\n- `repo-<SHA>.tar.gz`: an archive of a bare Git repository\n\nWhen interacting with a remote, `git-remote-rclone` obtains and extracts a copy\nof the remote repository archive (placed at `.git/rclone/<remote-name>` in the\nlocal Git repository). All Git operations are performed locally. Whenever the\nstate of the mirror repository has changed, it is compacted to minimize transfer\nsize and uploaded to the remote storage service. Likewise, the remote storage\nservice is checked for updates before the local mirror repository is updated.\n\n`git-remote-rclone` aims to minimize API usage of remote storage services. Per\ninvocation, it only queries for the state of a remote repository archive\n(checksum), downloads two files (if needed), and uploads two files (if needed,\nand on push only).\n\n### Tested with\n\n- `rclone` 1.63.1\n- Google Drive\n- Onedrive\n- DropBox\n\n\n## Acknowledgements\n\nThis work is based on [datalad/git-remote-rclone](https://github.com/datalad/git-remote-rclone/issues). This work changes the\ndesign for compatibility with rclone backends like crypt that do not support file\nhashes.\n",
    "bugtrack_url": null,
    "license": "GPL-3.0",
    "summary": "Git remote helper for rclone-supported services",
    "version": "0.2",
    "project_urls": {
        "Homepage": "https://github.com/redstreet/git-remote-rclone-reds"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3618f8b5eceefc6efb859a8985650ac389deefac538533e0032e41a501c2e2a4",
                "md5": "06eaefc06650cef1d384b8cb48d36e41",
                "sha256": "86d0a8926ec80491812f47ed76ef3daffd0571d7b09be9a4785aec74ed9a8e26"
            },
            "downloads": -1,
            "filename": "git_remote_rclone_reds-0.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "06eaefc06650cef1d384b8cb48d36e41",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.5",
            "size": 8668,
            "upload_time": "2023-08-22T01:57:32",
            "upload_time_iso_8601": "2023-08-22T01:57:32.877821Z",
            "url": "https://files.pythonhosted.org/packages/36/18/f8b5eceefc6efb859a8985650ac389deefac538533e0032e41a501c2e2a4/git_remote_rclone_reds-0.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "95697b5db265ab09f77ab5e79194bbea159049f72c04b6445d36e130fb46bdac",
                "md5": "3214e9b69586e6a913eb955897ca02cd",
                "sha256": "77d708dc422af015517492ae08fb0d7162deaf88814afe07f25d4ca39408f068"
            },
            "downloads": -1,
            "filename": "git_remote_rclone_reds-0.2.tar.gz",
            "has_sig": false,
            "md5_digest": "3214e9b69586e6a913eb955897ca02cd",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.5",
            "size": 8157,
            "upload_time": "2023-08-22T01:57:34",
            "upload_time_iso_8601": "2023-08-22T01:57:34.479172Z",
            "url": "https://files.pythonhosted.org/packages/95/69/7b5db265ab09f77ab5e79194bbea159049f72c04b6445d36e130fb46bdac/git_remote_rclone_reds-0.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-08-22 01:57:34",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "redstreet",
    "github_project": "git-remote-rclone-reds",
    "github_not_found": true,
    "lcname": "git-remote-rclone-reds"
}
        
Elapsed time: 0.11167s