git-annex-shell: Added support for operating inside gcrypt repositories.
* Note that the layout of gcrypt repositories has changed, and if you created one you must manually upgrade it. See http://git-annex.branchable.com/upgrades/gcrypt/
This commit is contained in:
parent
f9e438c1bc
commit
4c954661a1
13 changed files with 221 additions and 50 deletions
|
@ -1230,6 +1230,15 @@ Here are all the supported configuration settings.
|
|||
Used to identify the XMPP address of a Jabber buddy.
|
||||
Normally this is set up by the git-annex assistant when pairing over XMPP.
|
||||
|
||||
* `remote.<name>.gcrypt`
|
||||
|
||||
Used to identify gcrypt special remotes.
|
||||
Normally this is automatically set up by `git annex initremote`.
|
||||
|
||||
It is set to "true" if this is a gcrypt remote.
|
||||
If the gcrypt remote is accessible over ssh and has git-annex-shell
|
||||
available to manage it, it's set to "shell"
|
||||
|
||||
# CONFIGURATION VIA .gitattributes
|
||||
|
||||
The key-value backend used when adding a new file to the annex can be
|
||||
|
|
|
@ -29,7 +29,9 @@ gcrypt:
|
|||
## notes
|
||||
|
||||
For git-annex to store files in a repository on a remote server, you need
|
||||
shell access, and `rsync` must be installed.
|
||||
shell access, and `rsync` must be installed. Those are the minimum
|
||||
requirements, but it's also recommended to install git-annex on the remote
|
||||
server, so that [[git-annex-shell]] can be used.
|
||||
|
||||
While you can use git-remote-gcrypt with servers like github, git-annex
|
||||
can't store files on them. In such a case, you can just use
|
||||
|
|
|
@ -50,14 +50,18 @@ the gpg key used to encrypt it, and then:
|
|||
|
||||
## encrypted git-annex repository on a ssh server
|
||||
|
||||
If you have a ssh server that has git-annex and rsync installed, you can
|
||||
set up an encrypted repository there. Works just like the encrypted drive
|
||||
except without the cable.
|
||||
If you have a ssh server that has rsync installed, you can set up an
|
||||
encrypted repository there. Works just like the encrypted drive except
|
||||
without the cable.
|
||||
|
||||
First, on the server, run:
|
||||
|
||||
git init --bare encryptedrepo
|
||||
|
||||
(Also, install git-annex on the server if it's possible & easy to do so.
|
||||
While this will work without git-annex being installed on the server, it
|
||||
is recommended to have it installed.)
|
||||
|
||||
Now, in your existing git-annex repository:
|
||||
|
||||
git annex initremote encryptedrepo type=gcrypt gitrepo=ssh://my.server/home/me/encryptedrepo keyid=$mykey
|
||||
|
|
25
doc/upgrades/gcrypt.mdwn
Normal file
25
doc/upgrades/gcrypt.mdwn
Normal file
|
@ -0,0 +1,25 @@
|
|||
Unfortunately the initial gcrypt repository layout had to be changed
|
||||
after git-annex version 4.20130920. If you have an encrypted git repository
|
||||
created using version 4.20130920 or 4.20130909, you need to manually
|
||||
upgrade it.
|
||||
|
||||
If you look at the contents of your gcrypt repository, you will
|
||||
see a bare git repository, with a few three-letter subdirectories,
|
||||
which are where git-annex stores its encrypted file contents:
|
||||
|
||||
<pre>
|
||||
27f/ branches/ description hooks/ objects/
|
||||
HEAD config f37/ info/ refs/
|
||||
</pre>
|
||||
|
||||
In the example above, the subdirectories are `27f` and `f37`.
|
||||
|
||||
All you need to do to transition is move those subdirectories
|
||||
into an `annex/objects` directory.
|
||||
|
||||
mkdir annex ; mkdir annex/objects ; mv 27f f37 annex/objects
|
||||
|
||||
Probably those are the only 3 letter things inside your git repository,
|
||||
so this will probably work:
|
||||
|
||||
mkdir annex ; mkdir annex/objects ; mv ??? annex
|
Loading…
Add table
Add a link
Reference in a new issue