maks / MGit

A Git client for Android.
https://manichord.com/projects/mgit.html
GNU General Public License v3.0
1.25k stars 166 forks source link

Feature request to add support for git-remote-gcrypt #588

Open hgkamath opened 3 years ago

hgkamath commented 3 years ago

Is your feature request related to a problem? Please describe. I'm in a investigation phase. I'm looking for ways to keep notes synchronized between phone and laptop, possibly using cloud storage. The notes are plaintext-markdown files created by some note-management system, and can be version controlled. Cloud storage involves privacy and security issues.

Describe the solution you'd like To use a version control repository on cloud storage, that is completely encrypted. There seems to be something called git-remote-gcrypt which creates encrypted remote git-repositories.

Describe alternatives you've considered Alternatives that seem like not a good idea:

Alternatives that seem possible:

Other alternatives:

Additional context

[root@sirius gana]# rpm -qil git-remote-gcrypt
Name        : git-remote-gcrypt
Version     : 1.4
Release     : 1.fc35
Architecture: noarch
Install Date: Sat 06 Nov 2021 09:46:21 PM IST
Group       : Unspecified
Size        : 74758
License     : GPLv3
Signature   : RSA/SHA256, Tue 14 Sep 2021 11:44:31 PM IST, Key ID db4639719867c58f
Source RPM  : git-remote-gcrypt-1.4-1.fc35.src.rpm
Build Date  : Tue 14 Sep 2021 11:41:19 PM IST
Build Host  : buildhw-x86-12.iad2.fedoraproject.org
Packager    : Fedora Project
Vendor      : Fedora Project
URL         : https://git.spwhitton.name/git-remote-gcrypt
Bug URL     : https://bugz.fedoraproject.org/git-remote-gcrypt
Summary     : GNU Privacy Guard-encrypted git remote
Description :
This lets git store git repositories in encrypted form.
It supports storing repositories on rsync or sftp servers.
It can also store the encrypted git repository inside a remote git
repository. All the regular git commands like git push and git pull
can be used to operate on such an encrypted repository.

The aim is to provide confidential, authenticated git storage and
collaboration using typical untrusted file hosts or services.
/usr/bin/git-remote-gcrypt
/usr/share/doc/git-remote-gcrypt
/usr/share/doc/git-remote-gcrypt/CHANGELOG
/usr/share/doc/git-remote-gcrypt/CONTRIBUTING.rst
/usr/share/doc/git-remote-gcrypt/README.rst
/usr/share/licenses/git-remote-gcrypt
/usr/share/licenses/git-remote-gcrypt/COPYING
/usr/share/man/man1/git-remote-gcrypt.1.gz

[root@sirius gana]# head -1  /usr/bin/git-remote-gcrypt
#!/usr/bin/sh

misc

links

dcode commented 2 years ago

An alternative that might be easier to implement is git-crypt. This encrypts files at the path you indicate, transparently and locally. It then pushes using the standard git protocols. The upside, is it's still a standard git repo, but files are individually encrypted. The README of git-crypt admittedly states that encrypting an entire repo, git-remote-gcrypt is better suited due to performance and encryption of filenames, but git-crypt might be easier to implement.