Added a comment: Solved
This commit is contained in:
parent
e63e8b6662
commit
13f2a45b5e
1 changed files with 65 additions and 0 deletions
|
@ -0,0 +1,65 @@
|
|||
[[!comment format=mdwn
|
||||
username="https://www.google.com/accounts/o8/id?id=AItOawkexhIpGcYa22aPQtLm-StpHiF-MHYPh5w"
|
||||
nickname="Robie"
|
||||
subject="Solved"
|
||||
date="2014-06-01T13:55:58Z"
|
||||
content="""
|
||||
Thanks to Joey for pointing me in the right direction. I got this working now.
|
||||
|
||||
There are approximately three steps:
|
||||
|
||||
1. Obtain a mapping of git-annex key to friendly name, and rename all entries
|
||||
in the special remote to their git-annex keys.
|
||||
|
||||
2. Create and commit symlinks in the `master` branch (or wherever you want them).
|
||||
|
||||
3. Add location tracking entries to the `git-annex` branch for all entries.
|
||||
|
||||
First, I created an \"index\" file describing the contents of my special remote,
|
||||
in the form \"KEY NAME\" where KEY is the git-annex key (I used SHA256) and NAME
|
||||
is the name I want to use for each file.
|
||||
|
||||
## Step 1: Map and rename
|
||||
|
||||
In my case I was \"importing\" a ddar remote, so I wrote a quick script
|
||||
(https://github.com/basak/ddar/blob/master/contrib/git-annex-convert.py) to
|
||||
generate this index as well as rename all ddar archive members to their
|
||||
git-annex keys instead.
|
||||
|
||||
## Step 2: Create and commit symlinks
|
||||
|
||||
Then, I created symlinks in my master branch using:
|
||||
|
||||
exec 3<index
|
||||
while read key name <&3; do ln -s `git annex examinekey --format='.git/annex/objects/${hashdirmixed}${key}/${key}' \"$key\"` \"$name\"; git add \"$name\"; done
|
||||
git commit -m'Import ddar repository contents'
|
||||
exec 3<&-
|
||||
|
||||
## Step 3: Add to location tracking
|
||||
|
||||
First I set three variables:
|
||||
|
||||
remote_name=ddar # set to the name of the ddar git-annex special remote
|
||||
|
||||
uuid=`git config remote.\"$remote_name\".annex-uuid`
|
||||
now=`printf %6fs $(date +%s)`
|
||||
|
||||
Then I added the entries from `index` into location tracking as follows:
|
||||
|
||||
git checkout git-annex
|
||||
exec 3<index
|
||||
while read key name <&3; do log=`git annex examinekey --format='${hashdirlower}${key}.log' \"$key\"`; mkdir -p `dirname \"$log\"`; echo \"$now 1 $uuid\" >> \"$log\";git add \"$log\";done
|
||||
exec 3<&-
|
||||
git commit -m'Import knowledge of ddar repository contents'
|
||||
|
||||
## Verifying
|
||||
|
||||
`git-annex fsck --from ddar --fast` checks that the keys expected in the
|
||||
special remote can be found (replace the special remote name as needed).
|
||||
|
||||
Skipping `--fast` will download all data to verify it. I didn't do this -
|
||||
instead I just sampled one entry which seemed to be OK.
|
||||
|
||||
|
||||
|
||||
"""]]
|
Loading…
Add table
Reference in a new issue