Commit graph

160 commits

Author SHA1 Message Date
root
cd90cea0fe Put the main loop for the git protocol in a function 2013-01-06 18:20:39 -07:00
root
2261a5e7af Fix minor coding style and cleanup local variables 2012-11-16 04:57:54 -08:00
root
575b919143 Don't show errors from git fetch when using the git backend 2013-01-22 09:24:36 +02:00
root
fc191d5b3c Use a function for cleanup at exit 2012-12-13 21:02:14 +04:00
root
d85190ef51 README: Fix to use remote id 2012-11-29 07:45:29 +05:00
root
b54768df01 Simplify formatting of the manifest 2012-11-07 07:21:51 +09:00
root
181bf7f38b Use append_to 2012-10-27 22:40:19 -07:00
root
d1fc6292a9 Group modifiable globals together 2013-01-11 11:01:06 +03:00
root
872e82a427 Update license text 2012-11-16 03:47:51 -03:00
root
feca906231 Use set -u (no unset vars) 2012-12-15 13:37:51 +05:00
root
d6d8d565c9 Use return variables for Goodsig and Signers 2012-12-02 00:41:09 -02:00
root
6e90c21c87 Use setvar for return variables 2012-11-22 03:37:24 +08:00
root
2a65af1d20 Update Gref_rbranch when connecting 2012-12-16 09:01:02 +00:00
root
007bfb29de Fix markup of Repository Format section 2013-01-03 16:31:03 +01:00
root
aeb3135bcb Edit README 2013-01-20 19:22:44 +08:00
root
85e65ca48e Organize the README in a neat way, putting extra info in the Notes chapter 2013-02-14 00:00:00 +00:00
root
cc3fd5b985 Edit the summary of the repository format/process 2013-02-14 00:00:00 +00:00
root
b6cd6f7138 Tone down the development version warnings
We have now implemented the usability changes (No fragment in repository
URL, and default encrypt-to-self), so no big changes planned.
2013-02-14 00:00:00 +00:00
root
eb4b324542 Use a shorter, simpler repo ID since users will see it (occasionally) 2013-02-14 00:00:00 +00:00
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