Shane Jaroch [Fri, 9 Jan 2026 17:50:24 +0000 (12:50 -0500)]
update completions
Shane Jaroch [Fri, 9 Jan 2026 17:19:48 +0000 (12:19 -0500)]
show all files (not just top-level dirs) in clean
Shane Jaroch [Fri, 9 Jan 2026 17:17:10 +0000 (12:17 -0500)]
finalize/polish
Shane Jaroch [Fri, 9 Jan 2026 16:12:56 +0000 (11:12 -0500)]
wip
Shane Jaroch [Thu, 8 Jan 2026 23:44:05 +0000 (18:44 -0500)]
update/fix clean command for sft/rclone
Shane Jaroch [Thu, 8 Jan 2026 23:36:18 +0000 (18:36 -0500)]
readme
Shane Jaroch [Thu, 8 Jan 2026 23:35:16 +0000 (18:35 -0500)]
rclone
Shane Jaroch [Thu, 8 Jan 2026 23:34:28 +0000 (18:34 -0500)]
clean URLs filtered specially for protocol
Shane Jaroch [Thu, 8 Jan 2026 23:27:21 +0000 (18:27 -0500)]
don't clean non-gcrypt URLs
Shane Jaroch [Thu, 8 Jan 2026 23:26:02 +0000 (18:26 -0500)]
two fixes? strip gcrypt & report URLs like git.
Shane Jaroch [Thu, 8 Jan 2026 23:16:04 +0000 (18:16 -0500)]
more helpful warning (not error) message; clean msg
Shane Jaroch [Thu, 8 Jan 2026 23:12:53 +0000 (18:12 -0500)]
wip
Shane Jaroch [Thu, 8 Jan 2026 23:09:18 +0000 (18:09 -0500)]
fixup completions for check & clean
Shane Jaroch [Thu, 8 Jan 2026 23:08:12 +0000 (18:08 -0500)]
remove redundant --help pointg from subcommands
Shane Jaroch [Thu, 8 Jan 2026 23:06:57 +0000 (18:06 -0500)]
remove --check
Shane Jaroch [Thu, 8 Jan 2026 23:05:13 +0000 (18:05 -0500)]
wip
Shane Jaroch [Thu, 8 Jan 2026 23:02:35 +0000 (18:02 -0500)]
wip completions
Shane Jaroch [Thu, 8 Jan 2026 22:42:09 +0000 (17:42 -0500)]
fix installer logic test
Shane Jaroch [Thu, 8 Jan 2026 22:32:22 +0000 (17:32 -0500)]
tidy makefile, gen_docs.py
Shane Jaroch [Thu, 8 Jan 2026 22:25:37 +0000 (17:25 -0500)]
update install.sh (automate completion installs?)
Shane Jaroch [Thu, 8 Jan 2026 22:04:27 +0000 (17:04 -0500)]
wip
Shane Jaroch [Thu, 8 Jan 2026 21:54:36 +0000 (16:54 -0500)]
generate script generates from scratch
Shane Jaroch [Thu, 8 Jan 2026 21:44:12 +0000 (16:44 -0500)]
better
Shane Jaroch [Thu, 8 Jan 2026 21:37:08 +0000 (16:37 -0500)]
simpler
Shane Jaroch [Thu, 8 Jan 2026 21:31:32 +0000 (16:31 -0500)]
lint/format
Shane Jaroch [Thu, 8 Jan 2026 21:29:01 +0000 (16:29 -0500)]
bash -> sh
Shane Jaroch [Thu, 8 Jan 2026 21:28:32 +0000 (16:28 -0500)]
trim
Shane Jaroch [Thu, 8 Jan 2026 21:26:53 +0000 (16:26 -0500)]
huge wip
Shane Jaroch [Thu, 8 Jan 2026 21:16:39 +0000 (16:16 -0500)]
more, clean up shellcheck?
Shane Jaroch [Thu, 8 Jan 2026 21:03:00 +0000 (16:03 -0500)]
wip
Shane Jaroch [Thu, 8 Jan 2026 20:55:08 +0000 (15:55 -0500)]
update completions
Shane Jaroch [Thu, 8 Jan 2026 20:48:48 +0000 (15:48 -0500)]
simpler
Shane Jaroch [Thu, 8 Jan 2026 20:45:41 +0000 (15:45 -0500)]
keep simplifying?
Shane Jaroch [Thu, 8 Jan 2026 20:39:20 +0000 (15:39 -0500)]
simplify
Shane Jaroch [Thu, 8 Jan 2026 20:32:44 +0000 (15:32 -0500)]
wip URL resolution logic? or too complicated?
Shane Jaroch [Sat, 3 Jan 2026 05:00:31 +0000 (00:00 -0500)]
linting, testing; coverage reported 63.8%
monkeypatch to fix kcov invocation on posix shell
(add dedicated target for pure /bin/sh testing)
remove old redundant exit 0 in test
add force push/SIGINT tests
fix silently passing (actually failing!) test
force push reword [TODO: restore require-explicit-force-push]
manifest versioning to help verify compatible & authenticity
show signer version; inject version to test
require --force to init or overwrite manifest
split up large repacking test
add separate test for repack with large objects
add method to clean unencrypted files off remote
prevent privacy leaks of previously unencrypted blob
privacy test
more safety/privacy checks and clean command/check early in execution
don't publish participants in new test
remove useless debug log statement
tidy default fetch; small fix to init
Signed-off-by: Shane Jaroch <chown_tee@proton.me>
Shane Jaroch [Thu, 1 Jan 2026 04:35:53 +0000 (23:35 -0500)]
feat: Add shell completions, uninstall script, and CLI flags
Adds bash/zsh/fish completions, an uninstall script, and improves CLI with getopts (supporting -v/--version, -h/--help, and subcommands).
Signed-off-by: Shane Jaroch <chown_tee@proton.me>
Shane Jaroch [Thu, 1 Jan 2026 04:35:42 +0000 (23:35 -0500)]
feat: Add Makefile, CI, and improved testing infrastructure
Adds a Makefile for standardizing test/lint/install workflows, a GitHub Actions CI workflow, and coverage reporting tools. Also updates install.sh to support version detection.
Signed-off-by: Shane Jaroch <chown_tee@proton.me>
Shane Jaroch [Thu, 1 Jan 2026 04:35:15 +0000 (23:35 -0500)]
fix(gpg): Handle ECDH checksum error with many keys
Allow PRIVDECRYPT to iterate all secret keys instead of failing on the
first checksum error.
Anonymous recipients caused a bug in prior versions (with
ed25519 keys)
where if GPG couldn't decrypt using the first key in a user's keybox,
all push and pull operations would fail with a checksum error and exit
code 2 (EVEN IF the user had the correct key in their 2nd or 3rd slot).
The fix traps the 'error' and logs it, but lets PRIVDECRYPT continue.
The manifest's integrity is still verified by the subsequent grep.
If decryption truly fails, the script will exit safely.
Tested with GPG 2.4.8 /
ed25519 keys.
Signed-off-by: Shane Jaroch <chown_tee@proton.me>
Sean Whitton [Sun, 29 Dec 2024 09:41:44 +0000 (09:41 +0000)]
changelog
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Sean Whitton [Sun, 29 Dec 2024 09:36:52 +0000 (09:36 +0000)]
d/copyright: Update main stanza
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Cathy J. Fitzpatrick [Sat, 16 Dec 2023 12:20:53 +0000 (04:20 -0800)]
README: Clarify description of GCRYPT_FULL_REPACK
Signed-off-by: Cathy J. Fitzpatrick <cathy@cathyjf.com>
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Cathy J. Fitzpatrick [Sat, 16 Dec 2023 12:20:53 +0000 (04:20 -0800)]
New integration test for gitception
Signed-off-by: Cathy J. Fitzpatrick <cathy@cathyjf.com>
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Sean Whitton [Sat, 27 Apr 2024 09:11:18 +0000 (10:11 +0100)]
add link to joeyh's proposed fix for the force push issue
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Sean Whitton [Sun, 21 Aug 2022 21:39:13 +0000 (14:39 -0700)]
release 1.5 (Debian revision -1)
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Sean Whitton [Sun, 21 Aug 2022 16:16:46 +0000 (09:16 -0700)]
use stronger language regarding gitception/sftp vs. local/rsync
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Sean Whitton [Tue, 15 Jun 2021 20:49:08 +0000 (13:49 -0700)]
changelog
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Nathan Todd-Stone [Wed, 9 Jun 2021 23:33:15 +0000 (13:33 -1000)]
pass --error-on-no-transfer to 'rclone copyto'
GET and PUT are meant to exit nonzero on failure, and without this flag, they
always exit zero when rclone is used, even when a file is not found. That
confuses other parts of the code.
Signed-off-by: Nathan Todd-Stone <me@nathants.com>
Sean Whitton [Fri, 22 Jan 2021 01:46:47 +0000 (18:46 -0700)]
release 1.4 (Debian revision -1)
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Sean Whitton [Wed, 20 Jan 2021 20:30:12 +0000 (13:30 -0700)]
close bug
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Sean Whitton [Wed, 20 Jan 2021 20:29:39 +0000 (13:29 -0700)]
changelog
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Joey Hess [Wed, 20 Jan 2021 15:23:01 +0000 (11:23 -0400)]
support more standard rsync URIs
This adds support for "rsync://user@host/path", which is a valid URI,
and will be parseable by URI parsers, unlike the old "rsync://user@host:path",
which at least some URI parsers will reject due to the ":path" looking
like an unparseable port number. The old nonstandard URI form is also
still accepted.
Note that, the path in the new URI form is not relative to the home
directory, but absolute. This is necessary because "/path" looks like an
absolute directory, and there needs to be a way to specify an absolute
directory. Something like "/~/path" could be added to specify the home
directory, but seems like an unncessary complication.
Note that rsync supports rsync:// URIs itself, but those communicate
with a rsync daemon on its own port, rather than via ssh. gcrypt already
was using rsync:// to denote rsync over ssh, and this does not change
that. So, the url has to be rewritten from "rsync://user@host/path"
to the rsync location "user@host:/path"
I used this test suite while developing the rather complicated sed
expression, to make sure I did not break handling of the old URI form.
set -e
test $(rsynclocation "rsync://host/path/foo") = host:/path/foo
test $(rsynclocation "rsync://host:path/foo") = host:path/foo
test $(rsynclocation "rsync://user@host/path/foo") = user@host:/path/foo
test $(rsynclocation "rsync://user@host:path/foo") = user@host:path/foo
test $(rsynclocation "rsync://user@host/path:foo") = user@host:/path:foo
test $(rsynclocation "rsync://user@host:path:foo") = user@host:path:foo
test $(rsynclocation "rsync://user@host/path:foo/bar") = user@host:/path:foo/bar
test $(rsynclocation "rsync://user@host:path:foo/bar") = user@host:path:foo/bar
test $(rsynclocation "rsync://user@host/path/foo/bar") = user@host:/path/foo/bar
test $(rsynclocation "rsync://user@host:path/foo/bar") = user@host:path/foo/bar
Signed-off-by: Joey Hess <id@joeyh.name>
Sean Whitton [Fri, 24 Jul 2020 22:34:06 +0000 (15:34 -0700)]
changelog
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Sean Whitton [Wed, 22 Jul 2020 03:09:50 +0000 (20:09 -0700)]
shorten and tweak docs and output
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Sean Whitton [Wed, 22 Jul 2020 03:09:41 +0000 (20:09 -0700)]
rename new config key
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Sean Whitton [Fri, 24 Jul 2020 22:24:54 +0000 (15:24 -0700)]
avoid bashism
git-remote-gcrypt is POSIX sh.
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Sean Whitton [Fri, 24 Jul 2020 22:18:20 +0000 (15:18 -0700)]
add some blank lines back in
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Jay Colson [Thu, 23 Jul 2020 09:53:23 +0000 (10:53 +0100)]
git config to request abort if --force not passed
Default to emit a warning if the git config flag is not set.
Signed-off-by: Jay Colson <jay@karma.net>
Sean Whitton [Mon, 11 May 2020 22:20:43 +0000 (15:20 -0700)]
generalise GNU/Linux installation instructions
There isn't much point in listing distro-specific commands with the
same package name in each one, as users of those distros will already
know those commands.
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Sean Whitton [Fri, 1 May 2020 19:11:22 +0000 (12:11 -0700)]
fix filename
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Sean Whitton [Fri, 1 May 2020 19:08:24 +0000 (12:08 -0700)]
add mailing list & bug reporting info
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Sean Whitton [Sun, 9 Feb 2020 06:01:20 +0000 (23:01 -0700)]
release 1.3 (Debian revision -1)
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Sean Whitton [Sun, 9 Feb 2020 02:35:45 +0000 (19:35 -0700)]
changelog
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Travis Chen [Sat, 8 Feb 2020 19:46:30 +0000 (11:46 -0800)]
Add git-config option to set rsync put flags
Provide the ability to pass flags to `rsync` when uploading.
There are two ways to set the configuration:
- `gcrypt.rsync-put-flags`
- `remote.<name>.gcrypt-rsync-put-flags`
The flags will be applied to `rsync` during uploading when using the `rsync://`
backend. If `remote.<name>.gcrypt-rsync-put-flags` is set, the flags set in
`gcrypt.rsync-put-flags` will not be applied to the remote `<name>`.
This change also includes documentation.
We have tested with the following configurations:
1. none set
2. `git config gcrypt.rsync-put-flags "--perms --chmod=g+rX"`
3. `git config remote.<name>.rsync-put-flags "--perms --chmod=o+rX"`
4. both (2) and (3)
All local files start with only owner permissions set, and umask is set to 077.
In (1), no change in behavior as before, as expected. In (2), the remote files
have the group permissions set, as expected. In (3), the remote files have the
other permissions set, as expected. In (4), the remote files have the other
permissions set, but do not have the group permissions set, as expected.
Signed-off-by: Travis Chen <travis.chen@everchanging.dev>
Sean Whitton [Sat, 26 Oct 2019 18:03:39 +0000 (11:03 -0700)]
changelog
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Dmitry Zhlobo [Thu, 22 Aug 2019 17:52:15 +0000 (20:52 +0300)]
Use rst2man.py for man page generation when available
When docutils is installed on macos via pip or via homebrew there is no
`rst2man` binary but there is `rst2man.py` instead.
Signed-off-by: Dmitry Zhlobo <dima.zhlobo@gmail.com>
Sean Whitton [Sat, 26 Oct 2019 16:39:45 +0000 (09:39 -0700)]
Switch build-dep python-docutils -> python3-docutils
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Sean Whitton [Tue, 15 Oct 2019 16:29:08 +0000 (09:29 -0700)]
changelog
Dusty Mabe [Mon, 30 Sep 2019 03:00:40 +0000 (23:00 -0400)]
rpm: add license/doc files
Signed-off-by: Dusty Mabe <dusty@dustymabe.com>
Dusty Mabe [Mon, 30 Sep 2019 02:58:19 +0000 (22:58 -0400)]
rpm: correct man page entry in files section
Code review comments [1]:
- Man pages should not be marked as %doc
- man pages extension should be globbed as the compression may change in the future.
- the man page should be installed unzipped. The compression will be handled by the rpm build process.
- %doc /usr/share/man/man1/%{name}.1.gz → %{_mandir}/man1/%{name}.1*
[1] https://bugzilla.redhat.com/show_bug.cgi?id=
1750179#c2
Signed-off-by: Dusty Mabe <dusty@dustymabe.com>
Dusty Mabe [Mon, 30 Sep 2019 02:57:04 +0000 (22:57 -0400)]
rpm: use %{_bindir}
Code review comment [1]:
- /usr/bin/%{name} → %{_bindir}/%{name}
[1] https://bugzilla.redhat.com/show_bug.cgi?id=
1750179#c2
Signed-off-by: Dusty Mabe <dusty@dustymabe.com>
Dusty Mabe [Mon, 30 Sep 2019 02:56:19 +0000 (22:56 -0400)]
rpm: debug_package not useful
Code review comment [1]:
- %global debug_package %{nil} is not useful for a noarch package
[1] https://bugzilla.redhat.com/show_bug.cgi?id=
1750179#c2
Signed-off-by: Dusty Mabe <dusty@dustymabe.com>
Dusty Mabe [Mon, 30 Sep 2019 03:04:33 +0000 (23:04 -0400)]
rpm: make the rpm noarch
It's not specific to any CPU architecture.
Signed-off-by: Dusty Mabe <dusty@dustymabe.com>
Dusty Mabe [Mon, 30 Sep 2019 02:54:50 +0000 (22:54 -0400)]
rpm: use full URL for source
Also update the setup line to %{name}-%{version} to
match the folder setup from the tar.gz file downloaded
from https://git.spwhitton.name/%{name}/snapshot/%{name}-%{version}.tar.gz
Signed-off-by: Dusty Mabe <dusty@dustymabe.com>
Dusty Mabe [Mon, 30 Sep 2019 02:53:43 +0000 (22:53 -0400)]
rpm: convert tabs to spaces
Signed-off-by: Dusty Mabe <dusty@dustymabe.com>
Sean Whitton [Sat, 28 Sep 2019 14:30:02 +0000 (07:30 -0700)]
update changelog
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Frank Grüllich [Tue, 28 May 2019 06:57:33 +0000 (08:57 +0200)]
Fixes spec file
- correct BuildRequires,
- bumps version in it.
Signed-off-by: Frank Grüllich <frank.gruellich@gmail.com>
Sean Whitton [Sun, 28 Jul 2019 09:58:10 +0000 (10:58 +0100)]
CONTRIBUTING.md is not just for github
Sean Whitton [Fri, 28 Jun 2019 13:51:20 +0000 (14:51 +0100)]
tweaks to "Signing off your commits"
Sean Whitton [Sun, 3 Mar 2019 16:14:30 +0000 (09:14 -0700)]
changelog
legrostdg [Sun, 3 Mar 2019 09:58:54 +0000 (10:58 +0100)]
GCRYPT_FULL_REPACK usage
Sean Whitton [Tue, 27 Nov 2018 05:08:37 +0000 (22:08 -0700)]
release 1.2 (Debian revision -1)
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Sean Whitton [Tue, 27 Nov 2018 05:07:57 +0000 (22:07 -0700)]
changelog tweak
Sean Whitton [Tue, 27 Nov 2018 05:04:51 +0000 (22:04 -0700)]
don't echo external command errors unless repo ID is set
Otherwise you'll get the error output whenever you push to a new
remote.
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Sean Whitton [Fri, 23 Nov 2018 04:06:41 +0000 (21:06 -0700)]
set urgency=low
Sean Whitton [Fri, 23 Nov 2018 04:04:40 +0000 (21:04 -0700)]
changelog
Sean Whitton [Fri, 23 Nov 2018 04:02:55 +0000 (21:02 -0700)]
bump copyright years
Sean Whitton [Fri, 23 Nov 2018 03:54:56 +0000 (20:54 -0700)]
output stderr from other commands when the repository is not found
Closes: #914059
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Sean Whitton [Tue, 24 Jul 2018 11:45:16 +0000 (19:45 +0800)]
er, fix changelog
Sean Whitton [Tue, 24 Jul 2018 10:26:41 +0000 (18:26 +0800)]
changelog
Sean Whitton [Tue, 24 Jul 2018 10:25:16 +0000 (18:25 +0800)]
tweak wording in Ulrike's patch
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Ulrike Uhlig [Tue, 24 Jul 2018 09:29:18 +0000 (11:29 +0200)]
Document connectivity issue error message
Sometimes, git-remote-gcrypt reports 'gcrypt: Repository not found', but
this can be due to all sorts of connectivity issues, or even due to
ssh-agent using a wrong identity. This should at least be in the docs as
it is a very unprecise error message.
Signed-off-by: Ulrike Uhlig <ulrike@debian.org>
Sean Whitton [Sat, 28 Apr 2018 20:32:53 +0000 (13:32 -0700)]
release git-remote-gcrypt 1.1 (Debian revision 1)
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Sean Whitton [Sat, 28 Apr 2018 19:58:11 +0000 (12:58 -0700)]
suggest rclone
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Sean Whitton [Sat, 28 Apr 2018 19:57:40 +0000 (12:57 -0700)]
changelog
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Sean Whitton [Sat, 28 Apr 2018 19:56:27 +0000 (12:56 -0700)]
rewrite descriptions of rclone backend in README
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Sean Whitton [Sat, 28 Apr 2018 20:05:07 +0000 (13:05 -0700)]
tweak & move experimental warning msg
Move it to where the repository format notice used to be.
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Beren Minor [Sat, 14 Apr 2018 17:51:21 +0000 (19:51 +0200)]
Add support for several cloud storage remotes using rclone
rclone is an open-source command-line too to get and put files to several
cloud storage services that aren't supported by rsync.
git-remote-gcrypt can now push encrypted repositories to any configured rclone
remote using gcrypt::rclone://<rclone-repo>:<folder> URLs.
Signed-off-by: Beren Minor <beren.minor+git@gmail.com>
Sean Whitton [Wed, 18 Apr 2018 18:01:21 +0000 (11:01 -0700)]
add CONTRIBUTING.md and DEVELOPER-CERTIFICATE
Sean Whitton [Fri, 9 Mar 2018 18:18:22 +0000 (11:18 -0700)]
release 1.0.3 (Debian revision -1)