Commit graph

91 commits

Author SHA1 Message Date
root
64eb50b695 Automatically forward-port repository config
Change remote configurations when encountered:

* gcrypt::ssh -> gcrypt::rsync
* repo/G.XXXX -> #XXX
* gitception:// -> ""
2013-02-14 00:00:00 +00:00
root
789cb4d7c3 Update README for remote.<name>.gcrypt-participants and default simple mode 2013-02-14 00:00:00 +00:00
root
4f04d2d43b Encrypt to self by default; basic functionality now needs no configuration
Introduces gcrypt.participants "simple" mode which encrypts to self, and
accepts any valid signature by default. No configuration needed for
private repositories.

We also adds  remote.<name>.gcrypt-participants to configure this per
remote.
2013-02-14 00:00:00 +00:00
root
14da0a4d33 Migrate to SHA-256 and implicit repo ID (PARTIAL REPO FORMAT CHANGE)
* local, rsync, ssh, sftp repositories are still compatible
* gitception/git backend repositories are not compatible and need to be
  deleted and recreated
* Put manifest in a static location, so we don't need #fragment in the URL
* Record repository ID for each remote, and warn if it changes.
* Use SHA-256 by default but allow reading SHA-224-identified packfiles
* The URL #fragment identifies branch to use when using the git backend
2013-02-14 00:00:00 +00:00
root
4d28d8fe4d Do not use grep -F (busybox incompatible) 2013-02-14 00:00:00 +00:00
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