Commit graph

86 commits

Author SHA1 Message Date
root
402eca0a09 Give warning about future format change 2013-02-14 00:00:00 +00:00
root
5c16aa4bda Allow user to set $GCRYPT_FULL_REPACK to force repack of remote 2013-02-14 00:00:00 +00:00
root
2cac13417a Unify all uses of trap 2013-02-14 00:00:00 +00:00
root
5751a91aef Factor out common code in do_fetch and repack 2013-02-14 00:00:00 +00:00
root
80ac8a61e2 Use normal "url-safe" variant of base64 for repo url fragment 2013-02-14 00:00:00 +00:00
root
677df0e31b Use rsync for both rsync and ssh access 2013-02-14 00:00:00 +00:00
root
68ff0eb7c4 Document the keep field 2013-02-14 00:00:00 +00:00
root
96b7608966 Repack the encrypted remote regularly
Use a simple but slow method of repacking the remote repository.
Download (and verify) all packs not marked 'keep', and repack those into
a new packfile. The new packfile is marked 'keep' with generation 1.
After PUT is called on the manifest, we remove the redundant old
packfiles.

The generation number will allow further iterations of repacking to be
implemented later.
2013-02-14 00:00:00 +00:00
root
6f0af6d0ff Simplify informational output to emphasize the new repo URL 2013-02-14 00:00:00 +00:00
root
3a7f96671e Add ./install.sh to install git-remote-gcrypt and its man page 2013-02-14 00:00:00 +00:00
root
f1614d70ec Parameterise type of hash used 2013-02-14 00:00:00 +00:00
root
fc6d0b6e71 Fix iseq for null strings 2013-02-14 00:00:00 +00:00
root
bb0f05e03a Document manifest fields better 2013-02-14 00:00:00 +00:00
root
7aa54e1ae6 Use config gcrypt.participants for GPG key ids
Instead of using a separate keyring file (gcrypt.keyring is now
deprecated!), use a simple list of key ids. Extract all keyids and use
these to match GOODSIG <keyid> manually on the gpg status output.

The gcrypt.keyring variable is still used, but it will be removed later.
2013-02-14 00:00:00 +00:00
root
6173d0ffe0 Use URL fragment for repository id instead of G.* 2013-02-14 00:00:00 +00:00
root
192befdb62 Request signature on manifest before uploading pack
Just to ensure that the user signs the push before we upload any files
(pack or manifest) to the remote.
2013-02-14 00:00:00 +00:00
root
b1f7d3ec22 Support rsync:// 2013-02-14 00:00:00 +00:00
root
e2de0ce73f Simply detect if using git repository backend. gitception:// is unneeded
Simply treat absolute paths that do not lead to a HEAD file as local
directory backends, and all other as git backends.
2013-02-14 00:00:00 +00:00
root
853dae8914 Use grep instead of sort/uniq 2013-02-14 00:00:00 +00:00
root
0a1730741c Update README 2013-02-14 00:00:00 +00:00
root
fdb2732abb Use batch-check to use only the remote_has commits we also have locally 2013-02-14 00:00:00 +00:00
root
8e1246e738 Allow deleting remote refs 2013-02-14 00:00:00 +00:00
root
543ca86029 Only encrypt to keys with encrypt capability 2013-02-14 00:00:00 +00:00
root
aa4b80db7f Update README so it can generate a man page with rst2man 2013-02-14 00:00:00 +00:00
root
dc2d0b34b1 Minor cleanup (make sure used variables are clear at start) 2013-02-14 00:00:00 +00:00
root
6c203aaa77 Add extension namespace in manifest files, 'extn' lines are preserved 2013-02-14 00:00:00 +00:00
root
c355faebe8 Use a packfile passphrase of 33 bytes, parity with 256-bit crypto 2013-02-14 00:00:00 +00:00
root
e26f617761 Obey git config user.signingkey 2013-02-14 00:00:00 +00:00
root
745b893ebd Use 'initial commit' as message for gitception commits 2013-02-14 00:00:00 +00:00
root
63d7a7437e Use a separate symmetric key per packfile (REPO FORMAT CHANGE)
A separate key per pack is simpler and costs us very little; with
repack changes later it will be possible to change keys regularly.
2013-02-14 00:00:00 +00:00
root
1cb9281b45 Update README 2013-02-14 00:00:00 +00:00
root
5245d68453 Fix microissues 2013-02-14 00:00:00 +00:00
root
27fe6e199d Simplify sort_stable_k2 2013-02-14 00:00:00 +00:00
root
4fe095e1c7 Use a shorter repository id in the URL, to simplify a tiny bit 2013-02-14 00:00:00 +00:00
root
3f3c9f05fc Fix trap resets 2013-02-14 00:00:00 +00:00
root
1e0decc893 Implement stable sort (Lacking in POSIX) 2013-02-14 00:00:00 +00:00
root
da65f512a7 Simplify isnull to use case 2013-02-14 00:00:00 +00:00
root
d6df0f1453 Allow pushing into an empty repo using gitception:// 2013-02-14 00:00:00 +00:00
root
1960c8ede0 Use git rev-list --stdin and cat-file --batch-check 2013-02-14 00:00:00 +00:00
root
a0232a9a67 Use utility functions for testing for equal and null strings
This way we do not show any sensitive data to the [ program.
2013-02-14 00:00:00 +00:00
root
71531be31e Replace use of printf and echo with a safe variant
Use  cat <<EOF  etc for safe output of all data to pipes (mostly that we
don't know what the shell does with echo and printf).
2013-02-14 00:00:00 +00:00
root
ca6a984195 Big coding style shakeup, use Titlecase and lowercase variables 2013-02-14 00:00:00 +00:00
root
d342bbceab Fix quoting of '$' for grep 2013-02-14 00:00:00 +00:00
root
7eb9620b7a Fix incompatibilities with bash 2013-02-14 00:00:00 +00:00
root
6d36367de5 Fix reST syntax in README 2013-02-14 00:00:00 +00:00
root
7d849acd12 Update README 2013-02-14 00:00:00 +00:00
root
8abbe35752 Generate a Repository ID and verify it in the manifest (REPO FORMAT CHANGE)
This is a simplification and defends at someone maliciously switching
around different sign+encrypted manifest files of the same user. This
way we verify the repository we read is the repository we want.

Repo ID is not secret. Only requirement is that the same user does not
generate the same repo id more than onece.
2013-02-14 00:00:00 +00:00
root
1518e3619e Use manifest file for master key, branches and packs (REPO FORMAT CHANGE) 2013-02-14 00:00:00 +00:00
root
0a722b2493 Update README 2013-02-14 00:00:00 +00:00
root
d96f17b02d When decrypting or verifying the master key, check input type
We rely on gpg to exit with success, but we also check the status output
to verify that the expected action (decrypt with privkey or verify) was
performed.
2013-02-14 00:00:00 +00:00