Browse Source

Edit README

root 11 years ago
parent
commit
aeb3135bcb
1 changed files with 47 additions and 51 deletions
  1. 47 51
      README.rst

+ 47 - 51
README.rst

@@ -32,17 +32,15 @@ Quickstart
 
 * Install ``git-remote-gcrypt`` by running the supplied ``install.sh`` script.
 
-* Create an encrypted remote by pushing to it:
+* Create an encrypted remote by pushing to it::
 
-    ::
-
-        git remote add cryptremote gcrypt::rsync://example.com:repo
-        git push cryptremote master
-        > gcrypt: Setting up new repository
-        > gcrypt: Remote ID is :id:7VigUnLVYVtZx8oir34R
-        > [ more lines .. ]
-        > To gcrypt::[...]
-        > * [new branch]      master -> master
+    git remote add cryptremote gcrypt::rsync://example.com:repo
+    git push cryptremote master
+    > gcrypt: Setting up new repository
+    > gcrypt: Remote ID is :id:7VigUnLVYVtZx8oir34R
+    > [ more lines .. ]
+    > To gcrypt::[...]
+    > * [new branch]      master -> master
 
 Configuration
 =============
@@ -50,47 +48,47 @@ Configuration
 The following ``git-config(1)`` variables are supported:
 
 ``remote.<name>.gcrypt-participants``
-        ..
+    ..
 ``gcrypt.participants``
-        Space-separated list of GPG key identifiers. The remote is
-        encrypted to these participants and only signatures from these
-        are accepted. ``gpg -k`` lists all public keys you know.
+    Space-separated list of GPG key identifiers. The remote is encrypted
+    to these participants and only signatures from these are accepted.
+    ``gpg -k`` lists all public keys you know.
 
-        When not set we encrypt to your default key and accept any valid
-        signature. This behavior can also be requested explicitly by
-        setting participants to ``simple``.
+    When not set we encrypt to your default key and accept any valid
+    signature. This behavior can also be requested explicitly by setting
+    participants to ``simple``.
 
-        The ``gcrypt-participants`` setting on the remote takes precedence
-        over the repository variable ``gcrypt.participants``.
+    The ``gcrypt-participants`` setting on the remote takes precedence
+    over the repository variable ``gcrypt.participants``.
 
 ``user.signingkey``
-        (From regular git configuration) The key to use for signing.
-        You should set ``user.signingkey`` if your default signing key is
-        not part of the participant list.
+    (From regular git configuration) The key to use for signing.  You
+    should set ``user.signingkey`` if your default signing key is not
+    part of the participant list.
 
 Environment Variables
 =====================
 
 *GCRYPT_FULL_REPACK*
-        This environment variable forces full repack when pushing.
+    This environment variable forces full repack when pushing.
 
 Examples
 ========
 
-::
+How to set up a remote for two participants::
 
-    git config gcrypt.participants YOURKEYID
-    git remote add cryptremote  gcrypt::rsync://example.com:repo
-    git push cryptremote HEAD
+    git remote add cryptremote gcrypt::rsync://example.com:repo
+    git config remote.cryptremote.gcrypt-participants "KEY1 KEY2"
+    git push cryptremote master
 
 How to use a git backend::
 
-    # notice that the target repo must already exist and its
+    # notice that the target git repo must already exist and its
     # `next` branch will be overwritten!
     git remote add gitcrypt gcrypt::git@example.com:repo#next
-    git push gitcrypt HEAD
+    git push gitcrypt master
 
-The URL fragment (`#next` here) indicates which branch is used.
+The URL fragment (`#next` here) indicates which backend branch is used.
 
 Notes
 =====
@@ -104,20 +102,20 @@ Collaboration
 
 Dependencies
     ``rsync`` and ``curl`` for remotes ``rsync:`` and ``sftp:``
-    respectively. The main executable is a script for any
-    POSIX-compliant shell supporting ``local``.
+    respectively. The main executable requires a POSIX-compliant shell
+    that supports ``local``.
 
 GNU Privacy Guard
-    GPG 1.4 or 2 are both supported. You need a configured personal
-    keypair. GPG configuration applies to algorithm choices for
-    public-key encryption, symmetric encryption, and signing. See
-    ``man gpg`` for more information.
+    Both GPG 1.4 and 2 are supported. You need a personal GPG key. GPG
+    configuration applies to algorithm choices for public-key
+    encryption, symmetric encryption, and signing. See ``man gpg`` for
+    more information.
 
 Remote ID
-    The generated Remote ID is not secret, it only exists to ensure that
-    two repositories signed by the same user can be distinguished.  You
-    will see a warning if the Remote ID changes, which should
-    only happen if the remote was re-created.
+    The Remote ID is not secret; it only ensures that two repositories
+    signed by the same user can be distinguished.  You will see
+    a warning if the Remote ID changes, which should only happen if the
+    remote was re-created.
 
 Repository Format
 .................
@@ -139,15 +137,15 @@ Repository Format
 |
 | To write the repository:
 |
-| Store each packfile ``P`` as ``P'`` = ``Encrypt(Ki, P)`` in filename ``Hi``
-|   where ``Ki`` is a new random string and ``Hi = Hash(P')``
+| Store each packfile ``P`` as ``Encrypt(Ki, P) -> P'`` in filename ``Hi``
+|   where ``Ki`` is a new random string and ``Hash(P') -> Hi``
 | Store ``EncSign(B || L || R)`` in the manifest
 |
 | To read the repository:
 |
 | Decrypt and verify manifest using GPG keyring ``-> (B, L, R)``
 | Warn if ``R`` does not match previously seen Remote ID
-| ``for each Hi, Ki in L``:
+| for each ``Hi, Ki in L``:
 |   Get file ``Hi`` from the server ``-> P'``
 |   Verify ``Hash(P')`` matches ``Hi``
 |   Decrypt ``P'`` using ``Ki`` -> ``P`` then open ``P`` with git
@@ -157,17 +155,17 @@ Repository Format
 Manifest file
 .............
 
-::
+Example manifest file (with ellipsis for brevity)::
 
     $ gpg -d 91bd0c092128cf2e60e1a608c31e92caf1f9c1595f83f2890ef17c0e4881aa0a
     542051c7cd152644e4995bda63cc3ddffd635958 refs/heads/next
     3c9e76484c7596eff70b21cbe58408b2774bedad refs/heads/master
-    pack :SHA256:f2ad50316fbca42c553810aec3709c24974585ec1b34aae77d5cd4ba67092dc4 z8YoAnFpMlWPIYG8wo1adewd4Fp7Fo3PkI2mND49P1qm
-    pack :SHA256:a6e17bb4c042bdfa8e38856ee6d058d0c0f0c575ace857c4795426492f379584 82+k2cbiUn7i2cW0dgXfyX6wXGpvVaQGj5sF59Y8my5W
-    keep :SHA256:f2ad50316fbca42c553810aec3709c24974585ec1b34aae77d5cd4ba67092dc4 1
+    pack :SHA256:f2ad50316...cd4ba67092dc4 z8YoAnFpMlW...3PkI2mND49P1qm
+    pack :SHA256:a6e17bb4c...426492f379584 82+k2cbiUn7...dgXfyX6wXGpvVa
+    keep :SHA256:f2ad50316...cd4ba67092dc4 1
     repo :id:OYiSleGirtLubEVqJpFF
 
-Each item extends until newline, and matches one of the following forms:
+Each item extends until newline, and matches one of the following:
 
 ``<sha-1> <gitref>``
     Git object id and its ref
@@ -195,7 +193,5 @@ License
 git-remote-gcrypt is licensed under the terms of the GNU GPL version 2
 (or at your option, any later version). See http://www.gnu.org/licenses/
 
-
-.. vim: ft=rst tw=72
 .. this document generates a man page with rst2man
-
+.. vim: ft=rst tw=72 sts=4