Merge branch 'master' into encryption

This commit is contained in:
Joey Hess 2013-09-04 18:08:47 -04:00
commit 2fcae0348f
81 changed files with 1671 additions and 221 deletions

View file

@ -15,3 +15,11 @@ files transit through a special remote, using modes to limit access to
individual files is not wise.)
--[[Joey]]
> Revisiting this, git-annex already honors core.sharedrepository settings,
> so I just needed to set it to `world` to allow everyone to read.
>
> There was a code path in direct mode where that didn't work; fixed that.
>
> [[done]]
> --[[Joey]]

View file

@ -0,0 +1,22 @@
### Please describe the problem.
When I try to add a box.com cloud repository with the encryption option selected, I get an error that says "internal server error".
### What steps will reproduce the problem?
Anytime I try to set up a cloud repository with box.com (and presumably others, since this seems to be a problem with gpg (see log)) that is encrypted, I get this error.
### What version of git-annex are you using? On what operating system?
The operating system is Mac OS X 10.8.4, and the version of git-annex is 4.20130801-gc88bbc4.
### Please provide any additional information below.
[[!format sh """
# If you can, paste a complete transcript of the problem occurring here.
# If the problem is with the git-annex assistant, paste in .git/annex/daemon.log
(encryption setup) gpg: /Users/adamliter/.gnupg/gpg.conf:233: invalid auto-key-locate list
30/Aug/2013:02:27:11 -0400 [Error#yesod-core] user error (gpg ["--quiet","--trust-model","always","--gen-random","--armor","1","512"] exited 2) @(yesod-core-1.1.8.3:Yesod.Internal.Core ./Yesod/Internal/Core.hs:550:5)
# End of transcript or log.
"""]]

View file

@ -0,0 +1,10 @@
[[!comment format=mdwn
username="guilhem"
ip="129.16.20.209"
subject="comment 1"
date="2013-08-30T11:39:51Z"
content="""
gpg complains about an invalid parameter for the `auto-key-locate` option, which is not passed by git-annex but found in your gpg.conf.
What is on line 233 of `/Users/adamliter/.gnupg/gpg.conf`?
"""]]

View file

@ -0,0 +1,8 @@
[[!comment format=mdwn
username="https://www.google.com/accounts/o8/id?id=AItOawkgH7oNEqNbh3g-N1-UHXuqleXaRYDgj1U"
nickname="Adam"
subject="comment 2"
date="2013-08-30T15:39:16Z"
content="""
\"auto-key-locate cert pka ldap hkp://keys.gnupg.net\" is on line 233
"""]]

View file

@ -0,0 +1,16 @@
[[!comment format=mdwn
username="guilhem"
ip="129.16.20.209"
subject="comment 3"
date="2013-08-30T16:09:58Z"
content="""
Hmm, it looks like a perfectly valid list. Interesting.
But regardless, gpg doesn't seem to like that line; what gpg version
are you using? Also, does it work directly on the command-line
(`gpg -a --gen-random 1 1`)?
Have you tried to setup the remote without that line in the gpg.conf? Of
course it wouldn't solve the core of the issue, but it's irrelevant for
random data generation anyway (the same goes for `--trust-model`);
perhaps this very command should be run with `--no-options`.
"""]]

View file

@ -0,0 +1,12 @@
[[!comment format=mdwn
username="https://www.google.com/accounts/o8/id?id=AItOawkgH7oNEqNbh3g-N1-UHXuqleXaRYDgj1U"
nickname="Adam"
subject="comment 4"
date="2013-08-30T21:39:26Z"
content="""
`gpg -a --gen-random 1 1` on the command line seems to work. At least, when I just ran it it returned `Xg==`. I'm not super familiar with running gpg on the command line, so I'm not sure if that is the desired result when running that.
The version of gpg is GnuPG/MacGPG2 version 2.0.20.
I just tried deleting that line from the config file, and now it worked. Would I be able to replace the line after setting up the repository, or is that going to create problems? I'm not entirely sure what that line does, and I'm a little wary about messing with it in case it breaks the functionality of any of the other things that I use gpg for, like email encryption.
"""]]

View file

@ -0,0 +1,13 @@
[[!comment format=mdwn
username="guilhem"
ip="129.16.20.209"
subject="comment 5"
date="2013-08-30T22:51:56Z"
content="""
OK (you just generated 1 byte of base64-encoded random data).
No, I'm afraid git-annex will croak for each operation using gpg on your remote (which includes get, push, fsck, ...).
This lines specifies how gpg automatically retrieves public keys when you get a signed message for instance. If you don't want to mix configurations, it is easy to create a git-annex-specific GnuPG home directory, but it requires you to point the `GNUPGHOME` to this alternative directory before starting git-annex.
That said, other MacOSX users have encountered the same problem, and it was [[reported_to_be_solved_recently|/bugs/internal_server_error_when_choosing_encrypted_rsync_repo_option/]].
"""]]

View file

@ -0,0 +1,10 @@
[[!comment format=mdwn
username="https://me.yahoo.com/a/2grhJvAC049fJnvALDXek.6MRZMTlg--#eec89"
nickname="John"
subject="comment 9"
date="2013-08-30T05:59:28Z"
content="""
I'll chime in and say that the non-fast behavior being the default seems wrong, and making hard-link invisibly seems wrong. What Joey proposed -- copying a file if there are multiple hard-links -- seems like the right solution.
Just recently I tried to unannex a large repository and was bitten by now-dangling symlinks to files that I couldn't locate anymore. The fact is that the current unannex operation is too dangerous to be useful.
"""]]

View file

@ -0,0 +1,8 @@
[[!comment format=mdwn
username="https://me.yahoo.com/a/2grhJvAC049fJnvALDXek.6MRZMTlg--#eec89"
nickname="John"
subject="comment 6"
date="2013-08-30T04:19:57Z"
content="""
Just saw it happen again today, in a repository that passed \"fsck -A\" multiple times just yesterday. What is going on?
"""]]

View file

@ -0,0 +1,14 @@
[[!comment format=mdwn
username="https://me.yahoo.com/a/2grhJvAC049fJnvALDXek.6MRZMTlg--#eec89"
nickname="John"
subject="comment 7"
date="2013-08-30T04:25:45Z"
content="""
I tried your suggestion of cloning the repository and moving `.git/config` and `.git/annex`, and got this:
fsck Astronomy/12_ATM_2.jpg error: invalid object 100644 06f8fe222f052100101e5c2e77640f2ec3efff98 for '002/0a6/SHA256E-s427690--03aeabcde841b66168b72de80098d74e047f3ffc832d4bbefa1f2f70ee6c92f8.jpg.log'
fatal: git-write-tree: error building trees
git-annex: failed to read sha from git write-tree
What else can I try? Note that I can't even find this `.log` anywhere under my `.git` directory for this repository.
"""]]

View file

@ -0,0 +1,8 @@
[[!comment format=mdwn
username="https://me.yahoo.com/a/2grhJvAC049fJnvALDXek.6MRZMTlg--#eec89"
nickname="John"
subject="comment 8"
date="2013-08-30T04:30:14Z"
content="""
The only thing that worked was nuking `.git/annex/index` and letting `git-annex sync` rebuild it.
"""]]

View file

@ -0,0 +1,14 @@
[[!comment format=mdwn
username="https://me.yahoo.com/a/2grhJvAC049fJnvALDXek.6MRZMTlg--#eec89"
nickname="John"
subject="comment 9"
date="2013-08-30T06:20:58Z"
content="""
And yet again it happens:
error: invalid object 100644 3edb1d4a44ffba1ea1491693ae7d9faa82aad717 for '000/4ce/SHA256E-s175006724--a0edc4f880223028b3fa3a27b142c8e027ddf66db973b8272ca845a4a9e01d3e.mp4.log' fatal: git-write-tree: error building trees
This was in a repository that was working perfectly well until I tried to `git-annex get`. The weird thing is that I don't even have any `SHA256E` files anymore.
I think that after my recent migration, none of my repositories can be trusted. This is just happening too often (more than 10 times in the last week, across many repositories on many machines). I will just rebuild them all. But I do wish git-annex was more resilient about this.
"""]]

View file

@ -0,0 +1,68 @@
[[!comment format=mdwn
username="https://www.google.com/accounts/o8/id?id=AItOawknruiCHUcOh2mmpkh7OFJ4iNfAOOamRVs"
nickname="Renaud"
subject="comment 1"
date="2013-08-29T06:38:44Z"
content="""
I wonder if it isn't related to the fact that even if I do `git annex drop` on windows, the file is still marked as modified in git.
What is in repository is the path to the file's data using unix style folder separator but what is in my working directory is a file containing the path using windows style folder separator.
I paste a transcript to describe what I mean:
[[!format sh \"\"\"
$ mkdir tmp
$ cd tmp
$ git init
Initialized empty Git repository in c:/Users/raz/tmp/tmp/.git/
$ git annex init test
init test
Detected a crippled filesystem.
Enabling direct mode.
Detected a filesystem without fifo support.
Disabling ssh connection caching.
ok
(Recording state in git...)
$ echo test > test
$ git annex add
add test (checksum...) ok
(Recording state in git...)
$ git annex sync
commit
ok
git-annex: no branch is checked out
$ git annex drop --force
drop test ok
(Recording state in git...)
$ git status
# On branch master
# Changes not staged for commit:
# (use \"git add <file>...\" to update what will be committed)
# (use \"git checkout -- <file>...\" to discard changes in working directory)
#
# modified: test
#
no changes added to commit (use \"git add\" and/or \"git commit -a\")
$ git diff
diff --git a/test b/test
index a9dd439..62343b2 120000
--- a/test
+++ b/test
@@ -1 +1 @@
-.git/annex/objects/w8/pv/SHA256E-s5--f2ca1bb6c7e907d06dafe4687e579fce76b37e4e93
\ No newline at end of file
+.git\annex\objects\w8\pv\SHA256E-s5--f2ca1bb6c7e907d06dafe4687e579fce76b37e4e93
\ No newline at end of file
\"\"\"]]
"""]]

View file

@ -0,0 +1,8 @@
[[!comment format=mdwn
username="https://www.google.com/accounts/o8/id?id=AItOawkgedYqmQb4dJU7UdVuRLwsQE-KlKVrFto"
nickname="Chungy"
subject="comment 3"
date="2013-09-01T00:25:15Z"
content="""
Just confirming the bug on my Verizon Galaxy S 3 with CyanogenMod 10.2 (Android 4.3), it's not Nexus-specific.
"""]]

View file

@ -0,0 +1,8 @@
[[!comment format=mdwn
username="https://www.google.com/accounts/o8/id?id=AItOawntVnR-Z5ghYInvsElbDeADPSuCsF18iTY"
nickname="Thomas"
subject="comment 4"
date="2013-09-01T20:02:59Z"
content="""
Yet another confirmation of the bug on a Samsung Galaxy Note running 4.3 via Cyanogenmod as well.
"""]]

View file

@ -0,0 +1,9 @@
[[!comment format=mdwn
username="http://edheil.wordpress.com/"
ip="173.162.44.162"
subject="comment 5"
date="2013-09-03T14:38:51Z"
content="""
If there's anything we can do to help debug this, please let us know. Have just started using git-annex on android recently & would love to have it on all my devices.
"""]]

View file

@ -0,0 +1,10 @@
[[!comment format=mdwn
username="http://joeyh.name/"
ip="4.153.8.7"
subject="comment 2"
date="2013-08-29T18:15:08Z"
content="""
I now have a test case that shows that this can happen reliably on OSX if you enter the wrong XMPP password repeatedly. It might also happen if you just enter the wrong password once, with a server like google's, since the assistant will try falling back to different servers. John is aware of this haskell-gnutls problem.
John also found, and we hope fixed (but it's hard to tell) a bug in haskell-gnutls that caused a crash maybe 1 time in 10 under some conditions on OSX, when the right password was entered.
"""]]

View file

@ -0,0 +1,8 @@
[[!comment format=mdwn
username="https://www.google.com/accounts/o8/id?id=AItOawlYsjf5dcZnzs0b9EPxnjVddx1rnrpZASs"
nickname="Duarte"
subject="Any news?"
date="2013-08-31T15:48:39Z"
content="""
Has anyone made any progress on this? Just wondering...
"""]]

View file

@ -0,0 +1,77 @@
### Please describe the problem.
On Mac OS X, I tried to switch a repository to direct mode, but there was a
problem in the middle of the switch (permission denied) and the switch
aborted, leaving the repository in a half switched state.
I tried different manipulations, one of which was a checkout (oops), switch
back to indirect, then direct again, and now I have the repository in direct
mode except one file which caused the permission denied error.
### What steps will reproduce the problem?
Do not know exactly why this file is special. I still have the repository, and
each time I try to get this file, it fails with the same error message.
### What version of git-annex are you using? On what operating system?
On Umba, git-annex version: 4.20130723, on Mac OS X 10.6.8.
### Please provide any additional information below.
Umba is the Mac OS X, camaar and riva are Debian machines.
[[!format sh """
Umba$ git annex version
git-annex version: 4.20130723
build flags: Assistant Webapp Pairing Testsuite S3 WebDAV FsEvents XMPP DNS
Umba$
Umba$ git annex get --from riva --not --in here
get 2013-07-31/2013-07-31_180411.jpg (from riva...)
Password:
SHA256-s2819887--987f9811d7b5c7a287a74b7adbb852be4d18eeda61c3507f4e08c534d2356f4c
2819887 100% 943.08kB/s 0:00:02 (xfer#1, to-check=0/1)
sent 42 bytes received 2820397 bytes 433913.69 bytes/sec
total size is 2819887 speedup is 1.00
failed
git-annex: get: 1 failed
Umba$ find . -name SHA256-s2819887-\*
./.git/annex/objects/wq/3j/SHA256-s2819887--987f9811d7b5c7a287a74b7adbb852be4d18eeda61c3507f4e08c534d2356f4c
./.git/annex/objects/wq/3j/SHA256-s2819887--987f9811d7b5c7a287a74b7adbb852be4d18eeda61c3507f4e08c534d2356f4c/SHA256-s2819887--987f9811d7b5c7a287a74b7adbb852be4d18eeda61c3507f4e08c534d2356f4c.cache
./.git/annex/objects/wq/3j/SHA256-s2819887--987f9811d7b5c7a287a74b7adbb852be4d18eeda61c3507f4e08c534d2356f4c/SHA256-s2819887--987f9811d7b5c7a287a74b7adbb852be4d18eeda61c3507f4e08c534d2356f4c.map
./.git/annex/transfer/failed/download/13fd5d5a-ed97-11e2-9178-574d3b1c0618/SHA256-s2819887--987f9811d7b5c7a287a74b7adbb852be4d18eeda61c3507f4e08c534d2356f4c
./.git/annex/transfer/failed/download/95443f2e-ed96-11e2-9d3f-8ffa5b1aae7a/SHA256-s2819887--987f9811d7b5c7a287a74b7adbb852be4d18eeda61c3507f4e08c534d2356f4c
Umba$ git annex fsck
fsck 2013-07-31/2013-07-31_180411.jpg ok
(Recording state in git...)
Umba$ git annex drop 2013-07-31/2013-07-31_180411.jpg
Umba$ git annex get --from riva --not --in here
get 2013-07-31/2013-07-31_180411.jpg (from riva...)
Password:
SHA256-s2819887--987f9811d7b5c7a287a74b7adbb852be4d18eeda61c3507f4e08c534d2356f4c
2819887 100% 949.58kB/s 0:00:02 (xfer#1, to-check=0/1)
sent 42 bytes received 2820397 bytes 512807.09 bytes/sec
total size is 2819887 speedup is 1.00
failed
git-annex: get: 1 failed
Umba$
camaar% git annex copy --to umba --not --in umba
copy 2013-07-31/2013-07-31_180411.jpg (checking umba...) (to umba...)
SHA256-s2819887--987f9811d7b5c7a287a74b7adbb852be4d18eeda61c3507f4e08c534d2356f4c
2819887 100% 4.19MB/s 0:00:00 (xfer#1, to-check=0/1)
git-annex: //Users/nicolas/Pictures/Petites Boutes/.git/annex/tmp/2013-07-31_18041141700.jpg: rename: permission denied (Operation not permitted)
git-annex-shell: recvkey: 1 failed
sent 2820393 bytes received 42 bytes 1128174.00 bytes/sec
total size is 2819887 speedup is 1.00
rsync error: syntax or usage error (code 1) at main.c(1070) [sender=3.0.9]
rsync failed -- run git annex again to resume file transfer
failed
git-annex: copy: 1 failed
camaar%
"""]]

View file

@ -0,0 +1,17 @@
[[!comment format=mdwn
username="http://a-or-b.myopenid.com/"
ip="203.45.2.230"
subject="comment 1"
date="2013-09-04T01:36:46Z"
content="""
This still is not fixed. :-(
$ git annex version
git-annex version: 4.20130827
build flags: Assistant Webapp Pairing Testsuite S3 WebDAV FsEvents XMPP DNS
...but the ```importfeed``` functionality works.
I know this isn't a particularly high priority bug...
"""]]

View file

@ -0,0 +1,5 @@
Implemented `git annex forget --drop-dead`, which is finally a way to
remove all references to old repositories that you've marked as dead.
I've still not merged in the `forget` branch, because I developed this
while slightly ill, and have not tested it very well yet.

29
doc/devblog/day_-3__.mdwn Normal file
View file

@ -0,0 +1,29 @@
John Millikin came through and fixed that haskell-gnutls segfault
on OSX that I developed a reproducible test case for the other day.
It's a bit hard to test, since the bug doesn't always happen, but the
fix is already deployed for Mountain Lion autobuilder.
However, I then found another way to make haskell-gnutls segfault, more
reliably on OSX, and even sometimes on Linux. Just entering the wrong XMPP
password in the assistant can trigger this crash. Hopefully John will work
his magic again.
---
Meanwhile, I fixed the sync-after-forget problem. Now sync always forces
its push of the git-annex branch (as does the assistant). I considered but
rejected having sync do the kind of uuid-tagged branch push that the
assistant sometimes falls back to if it's failing to do a normal sync. It's
ugly, but worse, it wouldn't work in the workflow where multiple clients
are syncing to a central bare repository, because they'd not pull down the
hidden uuid-tagged branches, and without the assistant running on the
repository, nothing would ever merge their data into the git-annex branch.
Forcing the push of synced/git-annex was easy, once I satisfied myself
that it was always ok to do so.
Also factored out a module that knows about all the different log files
stored on the git-annex branch, which is all the support infrastructure
that will be needed to make `git annex forget --drop-dead` work. Since this
is basically a routing module, perhaps I'll get around to making it use
a nice bidirectional routing library like
[Zwaluw](http://hackage.haskell.org/package/Zwaluw) one day.

View file

@ -0,0 +1,8 @@
[[!comment format=mdwn
username="Sandra.Devil"
ip="77.172.73.184"
subject="New laptop"
date="2013-09-01T09:38:32Z"
content="""
What is the new laptop you are going to use? Specs please :)
"""]]

View file

@ -0,0 +1,11 @@
I try hard to keep this devblog about git-annex development and not me.
However, it is a shame that what I wanted to be the beginning of my first
real month of work funded by the new campaign has been marred by my home's
internet connection being taken out by a lightning strike, and by illness.
Nearly back on my feet after that, and waiting for my new laptop to
finally get here.
Today's work: Finished up the `git annex forget` feature and merged it in.
Fixed the bug that was causing the commit race detection code to
incorrectly fire on the commit made by the transition code. Few other bits
and pieces.

View file

@ -0,0 +1,10 @@
[[!comment format=mdwn
username="rjc"
ip="86.22.66.200"
subject="laptop"
date="2013-09-04T21:42:52Z"
content="""
Are you retiring your Dell mini?
What kind of laptop are you getting?
"""]]

View file

@ -0,0 +1,8 @@
[[!comment format=mdwn
username="http://pnijjar.livejournal.com/"
ip="99.236.22.229"
subject="comment 1"
date="2013-08-31T00:05:16Z"
content="""
Do we need to update our RSS feeds? I appear to be getting your devblog posts in my old feed, but I do not know whether that will continue working.
"""]]

View file

@ -0,0 +1,10 @@
[[!comment format=mdwn
username="https://www.google.com/accounts/o8/id?id=AItOawmkBwMWvNKZZCge_YqobCSILPMeK6xbFw8"
nickname="develop"
subject="comment 2"
date="2013-08-31T10:03:04Z"
content="""
The old RSS feed will continue working.
So sit back, relax, and enjoy the show.
"""]]

View file

@ -0,0 +1,10 @@
[[!comment format=mdwn
username="https://me.yahoo.com/a/2grhJvAC049fJnvALDXek.6MRZMTlg--#eec89"
nickname="John"
subject="comment 4"
date="2013-08-30T06:06:16Z"
content="""
Just to confirm, this wasn't a git-annex problem at all, but just a misstep during migration as you suggested.
I think what I'm going to do now is to just wipe the slate clean and start over again, by using `unannex -fast` on all the files, wiping `.git`, and then adding everything back in using my new default backend of SHA512E. The bigger pain is doing the same thing on all the servers where I have this data (to avoid having to upload it again), but in such a way that I'm not replicating file history. I think I should be able to just clone, `mv $OLDREPO/.git/annex/objects objects`, `git annex add objects`, `git rm -r --cached objects`, and then everything should be good without even needing a new commit on the remote machine, just a git-annex sync.
"""]]

View file

@ -0,0 +1,72 @@
I've been experiencing problems with Box.com for a few days now and I don't know what's causing them. Is anyone else experiencing anything similar?
I paste the log.
[2013-09-02 12:27:26 CEST] TransferWatcher: transfer finishing: Transfer {transferDirection = Upload, transferUUID = UUID "72111b4c-28fe-42fd-a77b-e4cb9240a1c9", transferKey = Key {keyName = "c9e1d5421e78924c21e3d68e84f80a8d1f64f9488020107ca0eeee0c4f10e763.py", keyBackendName = "SHA256E", keySize = Just 1891, keyMtime = Nothing}}
[2013-09-02 12:27:26 CEST] TransferScanner: queued Upload UUID "72111b4c-28fe-42fd-a77b-e4cb9240a1c9" Documentos/diveintopython-5.4/py/kgp/kant.xml Nothing : expensive scan found missing object
[2013-09-02 12:27:26 CEST] Transferrer: Transferring: Upload UUID "72111b4c-28fe-42fd-a77b-e4cb9240a1c9" Documentos/diveintopython-5.4/py/argecho.py Nothing
[2013-09-02 12:27:26 CEST] TransferWatcher: transfer starting: Upload UUID "72111b4c-28fe-42fd-a77b-e4cb9240a1c9" Documentos/diveintopython-5.4/py/argecho.py Nothing
[2013-09-02 12:27:26 CEST] TransferWatcher: transfer starting: Upload UUID "72111b4c-28fe-42fd-a77b-e4cb9240a1c9" Documentos/diveintopython-5.4/py/argecho.py Nothing
100% 0.0 B/s 0s[2013-09-02 12:27:26 CEST] TransferWatcher: transfer starting: Upload UUID "72111b4c-28fe-42fd-a77b-e4cb9240a1c9" Documentos/diveintopython-5.4/py/argecho.py Just 437
ResponseTimeout
ResponseTimeout
[2013-09-02 12:27:44 CEST] TransferWatcher: transfer finishing: Transfer {transferDirection = Upload, transferUUID = UUID "72111b4c-28fe-42fd-a77b-e4cb9240a1c9", transferKey = Key {keyName = "dd3cc45d91430c6f7d68eb807f4ac1561cd0297b11a2de77b5fe66017d125798.py", keyBackendName = "SHA256E", keySize = Just 437, keyMtime = Nothing}}
[2013-09-02 12:27:44 CEST] TransferScanner: queued Upload UUID "72111b4c-28fe-42fd-a77b-e4cb9240a1c9" Documentos/diveintopython-5.4/py/kgp/kgp.dtd Nothing : expensive scan found missing object
[2013-09-02 12:27:44 CEST] Transferrer: Transferring: Upload UUID "72111b4c-28fe-42fd-a77b-e4cb9240a1c9" Documentos/diveintopython-5.4/py/autosize.py Nothing
[2013-09-02 12:27:44 CEST] TransferWatcher: transfer starting: Upload UUID "72111b4c-28fe-42fd-a77b-e4cb9240a1c9" Documentos/diveintopython-5.4/py/autosize.py Nothing
[2013-09-02 12:27:44 CEST] TransferWatcher: transfer starting: Upload UUID "72111b4c-28fe-42fd-a77b-e4cb9240a1c9" Documentos/diveintopython-5.4/py/autosize.py Nothing
100% 0.0 B/s 0s[2013-09-02 12:27:44 CEST] TransferWatcher: transfer starting: Upload UUID "72111b4c-28fe-42fd-a77b-e4cb9240a1c9" Documentos/diveintopython-5.4/py/autosize.py Just 2861
ResponseTimeout
ResponseTimeout
[2013-09-02 12:28:02 CEST] TransferWatcher: transfer finishing: Transfer {transferDirection = Upload, transferUUID = UUID "72111b4c-28fe-42fd-a77b-e4cb9240a1c9", transferKey = Key {keyName = "d6b7940ac68768a8e37e72f248e2d94f19fb0d47062084d9baf0ec08cebbf692.py", keyBackendName = "SHA256E", keySize = Just 2861, keyMtime = Nothing}}
[2013-09-02 12:28:02 CEST] TransferScanner: queued Upload UUID "72111b4c-28fe-42fd-a77b-e4cb9240a1c9" Documentos/diveintopython-5.4/py/kgp/kgp.py Nothing : expensive scan found missing object
[2013-09-02 12:28:02 CEST] Transferrer: Transferring: Upload UUID "72111b4c-28fe-42fd-a77b-e4cb9240a1c9" Documentos/diveintopython-5.4/py/builddialectexamples.py Nothing
[2013-09-02 12:28:03 CEST] TransferWatcher: transfer starting: Upload UUID "72111b4c-28fe-42fd-a77b-e4cb9240a1c9" Documentos/diveintopython-5.4/py/builddialectexamples.py Nothing
[2013-09-02 12:28:03 CEST] TransferWatcher: transfer starting: Upload UUID "72111b4c-28fe-42fd-a77b-e4cb9240a1c9" Documentos/diveintopython-5.4/py/builddialectexamples.py Nothing
100% 0.0 B/s 0s[2013-09-02 12:28:03 CEST] TransferWatcher: transfer starting: Upload UUID "72111b4c-28fe-42fd-a77b-e4cb9240a1c9" Documentos/diveintopython-5.4/py/builddialectexamples.py Just 1090
ResponseTimeout
ResponseTimeout
[2013-09-02 12:28:21 CEST] TransferWatcher: transfer finishing: Transfer {transferDirection = Upload, transferUUID = UUID "72111b4c-28fe-42fd-a77b-e4cb9240a1c9", transferKey = Key {keyName = "f1492b80d05b96cc7cf2904d461c99d430fa86a4eb1d99f1b155c9147ff4420f.py", keyBackendName = "SHA256E", keySize = Just 1090, keyMtime = Nothing}}
[2013-09-02 12:28:21 CEST] TransferScanner: queued Upload UUID "72111b4c-28fe-42fd-a77b-e4cb9240a1c9" Documentos/diveintopython-5.4/py/kgp/russiansample.xml Nothing : expensive scan found missing object
[2013-09-02 12:28:21 CEST] Transferrer: Transferring: Upload UUID "72111b4c-28fe-42fd-a77b-e4cb9240a1c9" Documentos/diveintopython-5.4/py/colorize.py Nothing
[2013-09-02 12:28:21 CEST] TransferWatcher: transfer starting: Upload UUID "72111b4c-28fe-42fd-a77b-e4cb9240a1c9" Documentos/diveintopython-5.4/py/colorize.py Nothing
[2013-09-02 12:28:21 CEST] TransferWatcher: transfer starting: Upload UUID "72111b4c-28fe-42fd-a77b-e4cb9240a1c9" Documentos/diveintopython-5.4/py/colorize.py Nothing
100% 0.0 B/s 0s[2013-09-02 12:28:21 CEST] TransferWatcher: transfer starting: Upload UUID "72111b4c-28fe-42fd-a77b-e4cb9240a1c9" Documentos/diveintopython-5.4/py/colorize.py Just 4864
ResponseTimeout
ResponseTimeout
[2013-09-02 12:28:40 CEST] TransferWatcher: transfer finishing: Transfer {transferDirection = Upload, transferUUID = UUID "72111b4c-28fe-42fd-a77b-e4cb9240a1c9", transferKey = Key {keyName = "b577eaf8b6ddbf9fef866c455cae248aec3b22e3f2e91aa2b75ece90f1801689.py", keyBackendName = "SHA256E", keySize = Just 4864, keyMtime = Nothing}}
[2013-09-02 12:28:40 CEST] TransferScanner: queued Upload UUID "72111b4c-28fe-42fd-a77b-e4cb9240a1c9" Documentos/diveintopython-5.4/py/kgp/stderr.py Nothing : expensive scan found missing object
[2013-09-02 12:28:40 CEST] Transferrer: Transferring: Upload UUID "72111b4c-28fe-42fd-a77b-e4cb9240a1c9" Documentos/diveintopython-5.4/py/dialect.py Nothing
[2013-09-02 12:28:40 CEST] TransferWatcher: transfer starting: Upload UUID "72111b4c-28fe-42fd-a77b-e4cb9240a1c9" Documentos/diveintopython-5.4/py/dialect.py Nothing
[2013-09-02 12:28:40 CEST] TransferWatcher: transfer starting: Upload UUID "72111b4c-28fe-42fd-a77b-e4cb9240a1c9" Documentos/diveintopython-5.4/py/dialect.py Nothing
100% 0.0 B/s 0s[2013-09-02 12:28:40 CEST] TransferWatcher: transfer starting: Upload UUID "72111b4c-28fe-42fd-a77b-e4cb9240a1c9" Documentos/diveintopython-5.4/py/dialect.py Just 4449
ResponseTimeout
ResponseTimeout
[2013-09-02 12:28:58 CEST] TransferWatcher: transfer finishing: Transfer {transferDirection = Upload, transferUUID = UUID "72111b4c-28fe-42fd-a77b-e4cb9240a1c9", transferKey = Key {keyName = "c5e5d9b1bee2710c7ed05270a363d3e93270b0fb6779c4c8d59ace06c11db684.py", keyBackendName = "SHA256E", keySize = Just 4449, keyMtime = Nothing}}
[2013-09-02 12:28:58 CEST] TransferScanner: queued Upload UUID "72111b4c-28fe-42fd-a77b-e4cb9240a1c9" Documentos/diveintopython-5.4/py/kgp/stdout.py Nothing : expensive scan found missing object
[2013-09-02 12:28:58 CEST] Transferrer: Transferring: Upload UUID "72111b4c-28fe-42fd-a77b-e4cb9240a1c9" Documentos/diveintopython-5.4/py/fibonacci.py Nothing
[2013-09-02 12:28:58 CEST] TransferWatcher: transfer starting: Upload UUID "72111b4c-28fe-42fd-a77b-e4cb9240a1c9" Documentos/diveintopython-5.4/py/fibonacci.py Nothing
[2013-09-02 12:28:58 CEST] TransferWatcher: transfer starting: Upload UUID "72111b4c-28fe-42fd-a77b-e4cb9240a1c9" Documentos/diveintopython-5.4/py/fibonacci.py Nothing
100% 0.0 B/s 0s[2013-09-02 12:28:58 CEST] TransferWatcher: transfer starting: Upload UUID "72111b4c-28fe-42fd-a77b-e4cb9240a1c9" Documentos/diveintopython-5.4/py/fibonacci.py Just 532

View file

@ -0,0 +1,8 @@
[[!comment format=mdwn
username="http://sunny256.sunbase.org/"
nickname="sunny256"
subject="It works here"
date="2013-09-02T11:47:00Z"
content="""
I set up a box.com remote a couple of months ago or so just for testing. Haven't used it that much, but I tested it now to see if it still works. No errors or problems. I have pasted the output from a session where I copied a file to box.com, dropped it locally, then got it back from box.com here: <https://gist.github.com/sunny256/6411972>. The computer I ran the test on is using the newest git-annex binary (v4.20130827), Ubuntu 10.04.4 LTS. Pretty old distro, but it still works.
"""]]

View file

@ -0,0 +1,177 @@
Hello,
i am trying to run the walkthrough on Windows 7. When i try to get the contents of a file, i only get a some git annex text string and not the real file. Both repositories are on the same ntfs filesystem.
C:\tmp>git annex version
git-annex version: 4.20130827-g4f18612
build flags: Pairing Testsuite S3 WebDAV DNS
local repository version: 4
default repository version: 3
supported repository versions: 3 4
upgrade supported from repository versions: 2
C:\tmp\server>git --version
git version 1.8.3.msysgit.0
# walkthrough.bat
doskey /history > commands.log
mkdir laptop
cd laptop
git init
git annex init laptop
cd ..
git clone laptop server
cd server
git annex init server
git remote add laptop c:\tmp\laptop
cd ..\laptop
git remote add server c:\tmp\server
copy ..\1.pdf .
git annex add 1.pdf
git commit -m add
dir
cd ..\server
dir
git fetch laptop
git merge laptop/master
git annex get 1.pdf
dir
type 1.pdf
# walkthrough.log
C:\tmp>walkthrough.bat
C:\tmp>doskey /history 1>commands.log
C:\tmp>mkdir laptop
C:\tmp>cd laptop
C:\tmp\laptop>git init
Initialized empty Git repository in C:/tmp/laptop/.git/
C:\tmp\laptop>git annex init laptop
init laptop
Detected a crippled filesystem.
Enabling direct mode.
Detected a filesystem without fifo support.
Disabling ssh connection caching.
ok
(Recording state in git...)
C:\tmp\laptop>cd ..
C:\tmp>git clone laptop server
Cloning into 'server'...
done.
warning: remote HEAD refers to nonexistent ref, unable to checkout.
C:\tmp>cd server
C:\tmp\server>git annex init server
init server
Detected a crippled filesystem.
Enabling direct mode.
Detected a filesystem without fifo support.
Disabling ssh connection caching.
ok
(Recording state in git...)
C:\tmp\server>git remote add laptop c:\tmp\laptop
C:\tmp\server>cd ..\laptop
C:\tmp\laptop>git remote add server c:\tmp\server
C:\tmp\laptop>copy ..\1.pdf .
1 file(s) copied.
C:\tmp\laptop>git annex add 1.pdf
add 1.pdf (checksum...) ok
(Recording state in git...)
C:\tmp\laptop>git commit -m add
[master (root-commit) 7ad1514] add
1 file changed, 1 insertion(+)
create mode 120000 1.pdf
C:\tmp\laptop>dir
Volume in drive C has no label.
Volume Serial Number is x
Directory of C:\tmp\laptop
09/01/2013 11:03 AM <DIR> .
09/01/2013 11:03 AM <DIR> ..
08/30/2013 12:43 PM 37,500 1.pdf
1 File(s) 37,500 bytes
2 Dir(s) 7,698,817,024 bytes free
C:\tmp\laptop>cd ..\server
C:\tmp\server>dir
Volume in drive C has no label.
Volume Serial Number is x
Directory of C:\tmp\server
09/01/2013 11:03 AM <DIR> .
09/01/2013 11:03 AM <DIR> ..
0 File(s) 0 bytes
2 Dir(s) 7,698,817,024 bytes free
C:\tmp\server>git fetch laptop
remote: Counting objects: 9, done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 8 (delta 1), reused 0 (delta 0)
Unpacking objects: 100% (8/8), done.
From c:\tmp\laptop
* [new branch] git-annex -> laptop/git-annex
* [new branch] master -> laptop/master
C:\tmp\server>git merge laptop/master
C:\tmp\server>git annex get 1.pdf
get 1.pdf (merging laptop/git-annex origin/git-annex into git-annex...)
(Recording state in git...)
(from laptop...)
1.pdf
37500 100% 4.51MB/s 0:00:00 (xfer#1, to-check=0/1)
sent 37573 bytes received 31 bytes 75208.00 bytes/sec
total size is 37500 speedup is 1.00
ok
(Recording state in git...)
C:\tmp\server>dir
Volume in drive C has no label.
Volume Serial Number is x
Directory of C:\tmp\server
09/01/2013 11:03 AM <DIR> .
09/01/2013 11:03 AM <DIR> ..
09/01/2013 11:03 AM 194 1.pdf
1 File(s) 194 bytes
2 Dir(s) 7,698,767,872 bytes free
C:\tmp\server>type 1.pdf
.git/annex/objects/kM/0q/SHA256E-s37500--32d8190c7e189d45f48245a100e4cc981ea1bbc
02ac8bfa6188db73e41ce06f3.pdf/SHA256E-s37500--32d8190c7e189d45f48245a100e4cc981e
a1bbc02ac8bfa6188db73e41ce06f3.pdfC:\tmp\server>
C:\tmp\server>

View file

@ -0,0 +1,12 @@
[[!comment format=mdwn
username="http://joeyh.name/"
ip="4.153.8.7"
subject="comment 1"
date="2013-09-03T17:59:03Z"
content="""
The walkthrough assumes a system that uses indirect mode by default, so it won't work quite right on Windows, which is forced to use direct mode.
Running `git annex fsck` in the server repository will fix up this situation, but the right thing on Windows is to use `git annex sync` rather than the manual `git fetch + git merge` the walkthrough shows.
Guess I'll make the walkthrough use sync, although it may make it harder for people to understand what's going on internally.
"""]]

View file

@ -0,0 +1,14 @@
Hello,
I want to be safe and have two copies of my files on two different backend. Currently I only have a SSH backend, that stores all my data. I have full(root) access to that machine/backend. On my laptop I have only a few bytes of data, because all is moved/copied to that SSH backend. Now, I want to duplicate the data on the SSH backend to a Google Drive account (or any other). How could I do that (without downloading all data from the SSH backend)??? Encryption is not a must.
I looked into the annex/objects folder on the SSH backend, but there are 3 char length directories compared to what I see on a test Google Drive backend, where only 2 char length directory names are.
Example SSH backend: [git-annex root]/annex/objects/c10/90a/SHA256E-s445227--14c3f85d6dd3464f116f6a5bbd411012781d36794549d136b18d1914c4158820.jpg/SHA256E-s445227--14c3f85d6dd3464f116f6a5bbd411012781d36794549d136b18d1914c4158820.jpg
Example Google Drive: [Google Drive root]/annex/W7/xQ/SHA256E-s913904--29f9800b0dd34d4200c4e9ee152b79c3556a9a473848720be7cf83d20eff65a4.JPG
Is there a way to convert these directory names and do a simpe copy???
Thank you,
Bence

View file

@ -0,0 +1,12 @@
[[!comment format=mdwn
username="http://joeyh.name/"
ip="2001:4830:1600:187::2"
subject="comment 2"
date="2013-09-04T06:43:26Z"
content="""
Recently git-annex has gotten the ability to do this: `git annex forget --drop-dead`
That prunes all history relating to all dead remotes. You need to be running a git-annex that supports this on all computers you use the repos on, or the pruned history will get merged back in.
I don't recommend doing this just because you want to \"clean history\". Think of it as something you can do at some point in the future if the .git/objects somehow gets too large or too slow. Put off deleting data until tomorrow if you don't absolutely need to do it today.
"""]]

View file

@ -0,0 +1,14 @@
[[!comment format=mdwn
username="konubinix"
ip="82.243.233.186"
subject="Dropping dead repositories"
date="2013-09-04T07:40:22Z"
content="""
Actually, it may be a good idea to remove repositories made for tests purposes.
I now have 2 dead repositories that are USB_test1 and USB_test2 that I created before knowing I could reuse the annex uuid.
They are now there and it is difficult to remove them.
For that special case, the --drop-dead feature is very welcome.
"""]]

View file

@ -0,0 +1,8 @@
[[!comment format=mdwn
username="https://me.yahoo.com/a/2grhJvAC049fJnvALDXek.6MRZMTlg--#eec89"
nickname="John"
subject="comment 1"
date="2013-08-29T07:23:13Z"
content="""
Maybe one way to solve this that would be general is to have some kind of `prune-history` command, which keeps only the HEAD and drops everything else. Because there are some repositories that I want to manage with `git-annex` for many reasons, but I don't care about keep history around at all.
"""]]

View file

@ -0,0 +1,8 @@
[[!comment format=mdwn
username="https://me.yahoo.com/a/2grhJvAC049fJnvALDXek.6MRZMTlg--#eec89"
nickname="John"
subject="comment 2"
date="2013-08-30T06:18:42Z"
content="""
This was answered quite thoroughly in:http://git-annex.branchable.com/forum/safely_dropping_git-annex_history/
"""]]

View file

@ -0,0 +1,8 @@
[[!comment format=mdwn
username="http://joeyh.name/"
ip="2001:4830:1600:187::2"
subject="comment 3"
date="2013-09-04T06:36:15Z"
content="""
`git annex forget` automates this now. Needs a version of git-annex supporting it installed on *all* the computers you use the repo on.
"""]]

View file

@ -0,0 +1,14 @@
[[!comment format=mdwn
username="https://www.google.com/accounts/o8/id?id=AItOawnRai_qFYPVvEgC6i1nlM1bh-C__jbhqS0"
nickname="Matthew"
subject="Looks great"
date="2013-08-29T12:45:10Z"
content="""
This looks great as I have:
* A preference for multiple small repositories.
* Old versions for `git-annex` due to being on Ubuntu LTS for my server.
* A Samsung Galaxy Nexus which somehow seems too slow to run the assistant.
So these steps combined with some locking and maybe `inotify` seem perfect
"""]]

View file

@ -0,0 +1,10 @@
[[!comment format=mdwn
username="http://joeyh.name/"
ip="2001:4830:1600:187::2"
subject="comment 4"
date="2013-09-04T06:44:42Z"
content="""
Status no longer shows dead repositories.
See also, answer here: <http://git-annex.branchable.com/forum/How_to_delete_a_remote__63__/#comment-7ebf3804709a5aa64f1ca057a7df74f9>
"""]]

View file

@ -0,0 +1,20 @@
[[!comment format=mdwn
username="arand"
ip="130.243.226.21"
subject="comment 4"
date="2013-09-01T18:06:51Z"
content="""
Yet another solution, keeping it all in one script
#!/bin/sh
while IFS= read line
do
test -n \"${line%%#*}\" && echo git annex importfeed --relaxed \"$line\"
done <<EOF
# FooCast - Alice & Bob
http://feeds.foo.com/foocast
# FrobCast
http://meep.moop.com/feed
EOF
"""]]

View file

@ -0,0 +1,8 @@
[[!comment format=mdwn
username="http://joeyh.name/"
ip="2001:4830:1600:187::2"
subject="comment 12"
date="2013-09-04T06:38:00Z"
content="""
`git annex forget` automates this now, without needing to force-push or have a flag day. Needs a version of git-annex supporting it installed on *all* the computers you use the repo on. Repos notice they need to forget when git annex is run in them, and do, automatically.
"""]]

View file

@ -503,6 +503,23 @@ subdirectories).
Upgrades the repository to current layout.
* forget
Causes the git-annex branch to be rewritten, throwing away historical
data about past locations of files. The resulting branch will use less
space, but `git annex log` will not be able to show where
files used to be located.
To also prune references to repositories that have been marked as dead,
specify --drop-dead.
When this rewritten branch is merged into other clones of
the repository, git-annex will automatically perform the same rewriting
to their local git-annex branches. So the forgetfulness will automatically
propigate out from its starting point until all repositories running
git-annex have forgotten their old history. (You may need to force
git to push the branch to any git repositories not running git-annex.
# QUERY COMMANDS
* version

View file

@ -0,0 +1,10 @@
[[!comment format=mdwn
username="RaspberryPie"
ip="96.47.226.20"
subject="git-annex assistant for the Raspberry Pi"
date="2013-09-04T03:58:37Z"
content="""
It took a while and a few tries, but I finally built the git-annex binary including the assistant on a Raspberry Pi. The build comes without the flags webapp, webdav, and dbus as these rely on a Template Haskell compiler that hasn't been ported to Arm architecture yet.
I put the binary up on Github in case anyone's interested: <https://github.com/tradloff/git-annex-RPi>
"""]]

View file

@ -0,0 +1,11 @@
[[!comment format=mdwn
username="http://sunny256.sunbase.org/"
nickname="sunny256"
subject="Missing from the downloads.kitenet.net annex"
date="2013-08-29T18:05:38Z"
content="""
Great release, thanks a lot. It's missing from the annex at downloads.kitenet.net, though.
Cheers,<br />
Øyvind (sunny256)
"""]]

View file

@ -0,0 +1,25 @@
[[!comment format=mdwn
username="http://joeyh.name/"
ip="4.153.8.7"
subject="comment 2"
date="2013-08-29T18:26:00Z"
content="""
It seems to be there on downloads.kitenet.net. When I run `git log` in there I see commit 82de1ed1a354e389bc71a15af1a3e67b5bd56f23 which added the release to the annex, and all the files seem to be present. For example, git-annex-standalone-amd64.tar.gz is pointing at the key `SHA256E-s20143752--388c33138185fb2eb5fdb00bf2155a9168e5a76501216887ea1ffa7ada06b776.tar.gz`, which is right.
<pre>
joey@wren:~>wget http://downloads.kitenet.net/git-annex/linux/current/git-annex-standalone-amd64.tar.gz
--2013-08-29 14:25:00-- http://downloads.kitenet.net/git-annex/linux/current/git-annex-standalone-amd64.tar.gz
Resolving downloads.kitenet.net (downloads.kitenet.net)... 2001:41c8:125:49::10, 80.68.85.49
Connecting to downloads.kitenet.net (downloads.kitenet.net)|2001:41c8:125:49::10|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 20143752 (19M) [application/x-gzip]
Saving to: git-annex-standalone-amd64.tar.gz
100%[======================================>] 20,143,752 48.9MB/s in 0.4s
2013-08-29 14:25:01 (48.9 MB/s) - git-annex-standalone-amd64.tar.gz saved [20143752/20143752]
joey@wren:~>sha256sum git-annex-standalone-amd64.tar.gz
388c33138185fb2eb5fdb00bf2155a9168e5a76501216887ea1ffa7ada06b776 git-annex-standalone-amd64.tar.gz
</pre>
"""]]

View file

@ -0,0 +1,39 @@
[[!comment format=mdwn
username="http://sunny256.sunbase.org/"
nickname="sunny256"
subject="comment 3"
date="2013-08-30T11:43:44Z"
content="""
Hm, commit 82de1ed1a3 doesn't exist here after git-annex sync. This is the output from another computer, running Linux Mint 15:
$ ga sync
commit
ok
pull linode
ok
pull kitenet
WARNING: gnome-keyring:: couldn't connect to: /run/user/sunny/keyring-WSsS6N/pkcs11: No such file or directory
ok
push linode
Everything up-to-date
ok
push kitenet
WARNING: gnome-keyring:: couldn't connect to: /run/user/sunny/keyring-WSsS6N/pkcs11: No such file or directory
WARNING: gnome-keyring:: couldn't connect to: /run/user/sunny/keyring-WSsS6N/pkcs11: No such file or directory
error: Cannot access URL http://downloads.kitenet.net/.git/, return code 22
fatal: git-http-push failed
failed
git-annex: sync: 1 failed
$ git log -1
commit e4d2f03d9b37b2fac9508bf755ff7619bf46590c (HEAD, linode/synced/master, linode/master, linode/HEAD, kitenet/synced/master, kitenet/master, synced/master, master)
Author: Joey Hess <joey@kitenet.net>
Date: 3 weeks ago
update
2013-08-30 13:36:37 sunny@passp:~/src/other/annex/downloads.kitenet.net/git-annex (master u=)
$ git log 82de1ed1a354e389bc71a15af1a3e67b5bd56f23
fatal: bad object 82de1ed1a354e389bc71a15af1a3e67b5bd56f23
There's some warnings from gnome-keyring and a failed push (sorry about that, happens automatically), but the fetch from kitenet seems to succeed.
"""]]

View file

@ -0,0 +1,8 @@
[[!comment format=mdwn
username="http://sunny256.sunbase.org/"
nickname="sunny256"
subject="comment 4"
date="2013-08-30T11:49:20Z"
content="""
And some additional info, I'm using `http://downloads.kitenet.net/.git/` as the address to your annex. Maybe this repo is missing a `git update-server-info` in the `post-update` hook or something.
"""]]

View file

@ -0,0 +1,10 @@
[[!comment format=mdwn
username="http://joeyh.name/"
ip="4.153.8.7"
subject="sorry for delay.."
date="2013-09-03T18:07:34Z"
content="""
That's weird.. I have a post-update hook that runs git-update-server-info, but I reproduced the problem, and manually running that fixed it.
Guess I will need to keep an eye on this at the next release to see if it was a one-off problem..
"""]]

View file

@ -0,0 +1,12 @@
[[!comment format=mdwn
username="https://www.google.com/accounts/o8/id?id=AItOawmTNrhkVQ26GBLaLD5-zNuEiR8syTj4mI8"
nickname="Juan"
subject="comment 10"
date="2013-08-31T18:20:58Z"
content="""
I'm already spreading the word. Handling scientific papers, data, simulations and code has been quite a challenge during my academic career. While code was solved long ago, the three first items remained a huge problem.
I'm sure many of my colleagues will be happy to use it.
Is there any hashtag or twitter account? I've seen that you collected some of my tweets, but I don't know how you did it. Did you search for git-annex?
Best,
Juan
"""]]

View file

@ -9,18 +9,20 @@ Here's how I set it up. --[[Joey]]
1. Set up a web site. I used Apache, and configured it to follow symlinks.
`Options FollowSymLinks`
2. Put some files on the website. Make sure it works.
4. `git init; git annex init`
3. We want users to be able to clone the git repository over http, because
3. `git init; git annex init`
4. `git config core.sharedrepository world` (Makes sure files
are always added with permissions that allow everyone to read them.)
5. We want users to be able to clone the git repository over http, because
git-annex can download files from it over http as well. For this to
work, `git update-server-info` needs to get run after commits. The
git `post-update` hook will take care of this, you just need to enable
the hook. `chmod +x .git/hooks/post-update`
5. `git annex add; git commit -m added`
6. Make sure users can still download files from the site directly.
7. Instruct advanced users to clone a http url that ends with the "/.git/"
6. `git annex add; git commit -m added`
7. Make sure users can still download files from the site directly.
8. Instruct advanced users to clone a http url that ends with the "/.git/"
directory. For example, for downloads.kitenet.net, the clone url
is `https://downloads.kitenet.net/.git/`
8. Set up a git `post-receive` hook to update the repository's working tree
9. Set up a git `post-receive` hook to update the repository's working tree
when changes are pushed to it. See below for details.
When users clone over http, and run git-annex, it will

View file

@ -0,0 +1,8 @@
[[!comment format=mdwn
username="https://me.yahoo.com/a/2grhJvAC049fJnvALDXek.6MRZMTlg--#eec89"
nickname="John"
subject="comment 2"
date="2013-08-30T06:09:29Z"
content="""
You may want to try my `sizes` tool on Hackage. Just pass `-A` and it will be aware of the annex and report sizes as if no files were annexed. The only downside is that it reports file usage for replicated content multiple times, as if you'd copied the data out of the annex rather than hardlinked all duplicate copies (although, this may be exactly the behavior some people want).
"""]]

View file

@ -0,0 +1,13 @@
[[!comment format=mdwn
username="Gastlag"
ip="109.190.97.30"
subject="Gittorrent"
date="2013-08-28T21:49:56Z"
content="""
May this could interest you : few years ago somes tried to mix Git and Bittorrent.
http://www.advogato.org/article/994.html
http://utsl.gen.nz/gittorrent/rfc.html
http://code.google.com/p/gittorrent/
https://git.wiki.kernel.org/index.php/SoC2010Application#Did_your_organization_participate_in_past_GSoCs.3F_If_so.2C_please_summarize_your_involvement_and_the_successes_and_challenges_of_your_participation
"""]]

View file

@ -6,7 +6,7 @@ We can use this to copy everything in the laptop's annex to the
USB drive.
# cd /media/usb/annex
# git fetch laptop; git merge laptop/master
# git annex sync laptop
# git annex get .
get my_cool_big_file (from laptop...) ok
get iso/debian.iso (from laptop...) ok