code:
[[!comment format=mdwn
 username="http://joeyh.name/"
 ip="4.154.0.21"
 subject="comment 5"
 date="2013-07-30T21:12:54Z"
 content="""
All Windows and Android builds have been updated with the bug fixed.

Test suite fixed to test `git annex sync` on Windows.. although the test suite is still failing for unknown reasons in the autobuilder environment and so does not stop the build. I have added a recommendation to the Windows install page that users run `git annex test` themselves to make sure they have a good build that works on their Windows system.
"""]]


code:
[[!comment format=mdwn
 username="https://www.google.com/accounts/o8/id?id=AItOawknruiCHUcOh2mmpkh7OFJ4iNfAOOamRVs"
 nickname="Renaud"
 subject="comment 6"
 date="2013-07-31T05:34:33Z"
 content="""
Great, thank you very much!

I successfully ran the test suite and it's now working fine.
"""]]

repo_name: kakafarm/git

license: unknown


code:
[[!comment format=mdwn
 username="Remy"
 ip="82.94.186.146"
 subject="comment 7"
 date="2013-07-31T13:55:07Z"
 content="""
I got the same problem with the dummy symlinks while syncing to an annex on an EncFS mount on Ubuntu so I hope the fix doesn't just apply to Windows and Android.
"""]]


code:
### Please describe the problem.

I created somelargefile on host1. A file with that name appears in the right place on host2 but I can't use it:

    host2:~/annex% cat somelargefile
    cat: somelargefile: No such file or directory

### What steps will reproduce the problem?

I am running http://downloads.kitenet.net/git-annex/linux/current/git-annex-standalone-amd64.tar.gz and I connected two hosts with the 'Local computer' workflow. I run assistant on both sides.

I make a file on either side, wait a minute for it to sync, and then observe this on the remote side:

    lrwxrwxrwx 1 drewp drewp 178 Jul  9 23:58 somelargefile -> .git/annex/objects/Pw/vw/SHA256E-s8--bf87165d313027621936809a01da1994f9bd20ff9580c1380e7636e2443fe4ed/SHA256E-s8--bf87165d313027621936809a01da1994f9bd20ff9580c1380e7636e2443fe4ed

    host2:~/annex% ls -l .git/annex/objects/Pw/vw/SHA256E-s8--bf87165d313027621936809a01da1994f9bd20ff9580c1380e7636e2443fe4ed/
    total 4
    -rw------- 1 drewp drewp 14 Jul  9 23:58 SHA256E-s8--bf87165d313027621936809a01da1994f9bd20ff9580c1380e7636e2443fe4ed.map

My "large file" is in fact 8 bytes long. The .map file contains the string "somelargefile\n"

### What version of git-annex are you using? On what operating system?

git-annex version: 4.20130709-g339d1e0
build flags: Assistant Webapp Pairing Testsuite S3 WebDAV Inotify DBus XMPP
local repository version: 3
default repository version: 3
supported repository versions: 3 4
upgrade supported from repository versions: 0 1 2

ubuntu 12.10 64-bit

### 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

New lines in .git/annex/daemon.log when I add another new file:

    (merging synced/git-annex into git-annex...)

    Updating bac8b65..0422d27
    Fast-forward
     newfile2 |    1 +
     1 file changed, 1 insertion(+)
     create mode 120000 newfile2
    [2013-07-10 00:08:38 PDT] Committer: Committing changes to git
    (Recording state in git...)
    [2013-07-10 00:08:38 PDT] Pusher: Syncing with host1.local_annex
    To ssh://drewp@git-annex-host1.local-drewp_annex/~/annex/
       a80b6f5..72c0865  git-annex -> synced/git-annex

    Already up-to-date.

# End of transcript or log.
"""]]

[[!meta title="local pairing git-annex-shell issue when using standalone tarball"]]

[[!tag moreinfo]]


code:
[[!comment format=mdwn
 username="http://bigasterisk.com/"
 nickname="Drew Perttula"
 subject="comment 10"
 date="2013-07-27T07:42:26Z"
 content="""
Sorry, I meant to get those logs earlier but I got distracted.

One confounding thing in the previous runs is that I may have had accidental instances of git-annex assistant running on at least one of the machines. I killed them all for this next attempt, and named the dir annex2 just in case.

daemon.log files are now at http://bigasterisk.com/post/git-annex/logs1/
"""]]


code:
[[!comment format=mdwn
 username="http://joeyh.name/"
 ip="4.152.246.110"
 subject="comment 11"
 date="2013-07-28T00:06:53Z"
 content="""
From the log on bang:

<pre>
[2013-07-27 00:33:15 PDT] read: ssh [\"-S\",\"/home/drewp/annex2/.git/annex/ssh/drewp@git-annex-dash.local-drewp_annex2\",\"-o\",\"ControlMaster=auto\",\"-o\",\"ControlPersist=yes\",\"-T\",\"drewp@git-annex-dash.local-drewp_annex2\",\"git-annex-shell 'configlist' '/~/annex2/'\"]
zsh:1: command not found: git-annex-shell
Remote dash.local_annex2 does not have git-annex installed; setting remote.dash.local_annex2.annex-ignore
</pre>

You said you're running from the standalone tarball. I think that's the problem, probably if you get git-annex-shell into your path it'll just work.

Can you paste the line git-annex added to \"dash\"'s .ssh/authorized_keys?
"""]]


code:
[[!comment format=mdwn
 username="http://bigasterisk.com/"
 nickname="Drew Perttula"
 subject="comment 12"
 date="2013-07-28T05:36:39Z"
 content="""
Thanks for finding that. I added git-annex-shell to my path and ran again. The repo lists look good now.

For the record, here's what I am getting in authorized_keys on dash:

    command=\"GIT_ANNEX_SHELL_DIRECTORY='/home/drewp/annex2' ~/.ssh/git-annex-shell\",no-agent-forwarding,no-port-forwarding,no-X11-forwarding ssh-rsa AAAAB3NzaC1y.......0c2ilnh drewp@bang

When I went to the settings on each box, all 4 repository group select boxes were blank. I set them all to 'client'.

How do we make this long ticket worth your time by improving the code so people don't hit the same trap in the future? I think I would have looked in the right direction if, instead of saying nothing and not having a uuid to make the links work, the web ui said something like this:

    'command not found: git-annex-shell' on remote host. Sync disabled with this host.

--------

Next, I ran \"date > annex2/file1\" on bang. The web consoles said they synced, but no file appeared on dash. There was a ~/annex2/.git/annex/objects/../../SHA256.../SHA256... file on dash with the right contents, but no symlink showed up in dash:~/annex2.

I ran \"date > annex2/file2\" on dash, and then I got both file1 and file2 on both boxes.

In the new logs at http://bigasterisk.com/post/git-annex/logs2/, the surprise is at [2013-07-27 22:10:49 PDT] where I thought dash would make a symlink called 'file1' but instead it reports no attempt or error. Later at [2013-07-27 22:12:08 PDT], while dealing with the upload of file2, dash finally makes the symlink for file1.

"""]]


code:
[[!comment format=mdwn
 username="http://joeyh.name/"
 ip="4.154.0.21"
 subject="comment 13"
 date="2013-07-30T18:51:38Z"
 content="""
I'm more interested in fixing core problems, like why it was not able to find git-annex-shell, than in fixing bugs in the web UI that follow on from those problems.

When you're using the standalone tarball, it's supposed to set up `~/.ssh/git-annex-shell` to point to wherever you've unpacked the tarball. The assistant does this the first time you run it, and any time it sees the file is out of date.
I've tested this, and it appears to be working ok. I don't understand what happened in your case to prevent this from happening.
"""]]


code:
[[!comment format=mdwn
 username="http://joeyh.name/"
 ip="4.154.7.235"
 subject="comment 1"
 date="2013-07-10T16:31:40Z"
 content="""
Everything you've described is expected behavior, when the content of the file has not yet been transferred to the repository.

There should be something in daemon.log about the transfer of the file. If there's an error message for the transfer, it will certainly show up there. You can enable debugging to get more information in daemon.log about file transfers.
"""]]


code:
[[!comment format=mdwn
 username="http://bigasterisk.com/"
 nickname="Drew Perttula"
 subject="debug log"
 date="2013-07-16T04:02:40Z"
 content="""
receiver side logs again, with --debug mode on. I don't see anything weird.

    [2013-07-15 20:53:02 PDT] read: git [\"--git-dir=/home/drewp/annex/.git\",\"--work-tree=/home/drewp/annex\",\"show-ref\",\"git-annex\"]
    [2013-07-15 20:53:02 PDT] read: git [\"--git-dir=/home/drewp/annex/.git\",\"--work-tree=/home/drewp/annex\",\"show-ref\",\"--hash\",\"refs/heads/git-annex\"]
    [2013-07-15 20:53:02 PDT] read: git [\"--git-dir=/home/drewp/annex/.git\",\"--work-tree=/home/drewp/annex\",\"log\",\"refs/heads/git-annex..a7cb1b3f2a3f2a7d24827e10f9f3ac5848fd11d9\",\"--oneline\",\"-n1\"]
    [2013-07-15 20:53:02 PDT] read: git [\"--git-dir=/home/drewp/annex/.git\",\"--work-tree=/home/drewp/annex\",\"log\",\"refs/heads/git-annex..4a2771e15cb5c7a0a8d70443e76b65c12115a8cd\",\"--oneline\",\"-n1\"]
    [2013-07-15 20:53:02 PDT] read: git [\"--git-dir=/home/drewp/annex/.git\",\"--work-tree=/home/drewp/annex\",\"log\",\"refs/heads/git-annex..ddf6aa74d771521b11657edfae558858b60e8368\",\"--oneline\",\"-n1\"]
    (merging synced/git-annex into git-annex...)
    [2013-07-15 20:53:02 PDT] feed: git [\"--git-dir=/home/drewp/annex/.git\",\"--work-tree=/home/drewp/annex\",\"update-index\",\"-z\",\"--index-info\"]
    [2013-07-15 20:53:02 PDT] read: git [\"--git-dir=/home/drewp/annex/.git\",\"--work-tree=/home/drewp/annex\",\"diff-index\",\"--raw\",\"-z\",\"-r\",\"--no-renames\",\"-l0\",\"--cached\",\"4a2771e15cb5c7a0a8d70443e76b65c12115a8cd\"]
    [2013-07-15 20:53:02 PDT] read: git [\"--git-dir=/home/drewp/annex/.git\",\"--work-tree=/home/drewp/annex\",\"log\",\"4a2771e15cb5c7a0a8d70443e76b65c12115a8cd..refs/heads/git-annex\",\"--oneline\",\"-n1\"]
    [2013-07-15 20:53:02 PDT] call: git [\"--git-dir=/home/drewp/annex/.git\",\"--work-tree=/home/drewp/annex\",\"update-ref\",\"refs/heads/git-annex\",\"4a2771e15cb5c7a0a8d70443e76b65c12115a8cd\"]
    [2013-07-15 20:53:02 PDT] read: git [\"--git-dir=/home/drewp/annex/.git\",\"--work-tree=/home/drewp/annex\",\"symbolic-ref\",\"HEAD\"]
    [2013-07-15 20:53:02 PDT] read: git [\"--git-dir=/home/drewp/annex/.git\",\"--work-tree=/home/drewp/annex\",\"show-ref\",\"refs/heads/master\"]
    [2013-07-15 20:53:02 PDT] Merger: merging refs/heads/synced/master into refs/heads/master

    [2013-07-15 20:53:02 PDT] read: git [\"--git-dir=/home/drewp/annex/.git\",\"--work-tree=/home/drewp/annex\",\"symbolic-ref\",\"HEAD\"]
    [2013-07-15 20:53:02 PDT] read: git [\"--git-dir=/home/drewp/annex/.git\",\"--work-tree=/home/drewp/annex\",\"show-ref\",\"refs/heads/master\"]
    [2013-07-15 20:53:02 PDT] read: git [\"--git-dir=/home/drewp/annex/.git\",\"--work-tree=/home/drewp/annex\",\"show-ref\",\"--hash\",\"refs/heads/master\"]
    [2013-07-15 20:53:02 PDT] call: git [\"--git-dir=/home/drewp/annex/.git\",\"--work-tree=/home/drewp/annex/.git/annex/merge/\",\"merge\",\"--no-edit\",\"refs/heads/synced/master\"]
    Updating 6f8cbe0..18cea18
    Fast-forward
     test-2013-07-15e |    1 +
     1 file changed, 1 insertion(+)
     create mode 120000 test-2013-07-15e
    [2013-07-15 20:53:02 PDT] read: git [\"--git-dir=/home/drewp/annex/.git\",\"--work-tree=/home/drewp/annex\",\"show-ref\",\"--hash\",\"refs/heads/master\"]
    [2013-07-15 20:53:02 PDT] read: git [\"--git-dir=/home/drewp/annex/.git\",\"--work-tree=/home/drewp/annex\",\"diff-tree\",\"-z\",\"--raw\",\"--no-renames\",\"-l0\",\"-r\",\"6f8cbe0a34d70e70a6365385bbd4338d97047d4b\",\"18cea18855143095a872a463eb0a7cf5dd81de4c\"]
    [2013-07-15 20:53:02 PDT] read: git [\"--git-dir=/home/drewp/annex/.git\",\"--work-tree=/home/drewp/annex\",\"show-ref\",\"git-annex\"]
    [2013-07-15 20:53:02 PDT] read: git [\"--git-dir=/home/drewp/annex/.git\",\"--work-tree=/home/drewp/annex\",\"show-ref\",\"--hash\",\"refs/heads/git-annex\"]
    [2013-07-15 20:53:02 PDT] read: git [\"--git-dir=/home/drewp/annex/.git\",\"--work-tree=/home/drewp/annex\",\"log\",\"refs/heads/git-annex..4a2771e15cb5c7a0a8d70443e76b65c12115a8cd\",\"--oneline\",\"-n1\"]
    [2013-07-15 20:53:02 PDT] read: git [\"--git-dir=/home/drewp/annex/.git\",\"--work-tree=/home/drewp/annex\",\"log\",\"refs/heads/git-annex..ddf6aa74d771521b11657edfae558858b60e8368\",\"--oneline\",\"-n1\"]
    [2013-07-15 20:53:02 PDT] read: git [\"--git-dir=/home/drewp/annex/.git\",\"--work-tree=/home/drewp/annex\",\"log\",\"refs/heads/git-annex..a7cb1b3f2a3f2a7d24827e10f9f3ac5848fd11d9\",\"--oneline\",\"-n1\"]
    [2013-07-15 20:53:02 PDT] feed: git [\"--git-dir=/home/drewp/annex/.git\",\"--work-tree=/home/drewp/annex\",\"update-index\",\"-z\",\"--index-info\"]
    [2013-07-15 20:53:02 PDT] read: git [\"--git-dir=/home/drewp/annex/.git\",\"--work-tree=/home/drewp/annex\",\"diff-index\",\"--raw\",\"-z\",\"-r\",\"--no-renames\",\"-l0\",\"--cached\",\"refs/heads/git-annex\"]
    [2013-07-15 20:53:02 PDT] Watcher: add symlink test-2013-07-15e
    [2013-07-15 20:53:02 PDT] chat: git [\"--git-dir=/home/drewp/annex/.git\",\"--work-tree=/home/drewp/annex\",\"hash-object\",\"-t\",\"blob\",\"-w\",\"--stdin\",\"--no-filters\"]
    [2013-07-15 20:53:02 PDT] Committer: committing 1 changes
    [2013-07-15 20:53:02 PDT] Committer: Committing changes to git
    (Recording state in git...)
    [2013-07-15 20:53:02 PDT] feed: git [\"--git-dir=/home/drewp/annex/.git\",\"--work-tree=/home/drewp/annex\",\"update-index\",\"-z\",\"--index-info\"]
    [2013-07-15 20:53:02 PDT] read: git [\"--git-dir=/home/drewp/annex/.git\",\"--work-tree=/home/drewp/annex\",\"commit\",\"--allow-empty-message\",\"--no-edit\",\"-m\",\"\",\"--quiet\",\"--no-verify\"]
    [2013-07-15 20:53:02 PDT] Pusher: Syncing with host1.local_annex
    [2013-07-15 20:53:02 PDT] read: git [\"--git-dir=/home/drewp/annex/.git\",\"--work-tree=/home/drewp/annex\",\"symbolic-ref\",\"HEAD\"]
    [2013-07-15 20:53:02 PDT] read: git [\"--git-dir=/home/drewp/annex/.git\",\"--work-tree=/home/drewp/annex\",\"show-ref\",\"refs/heads/master\"]
    [2013-07-15 20:53:02 PDT] Pusher: pushing to [Remote { name =\"host1.local_annex\" }]
    [2013-07-15 20:53:02 PDT] call: git [\"--git-dir=/home/drewp/annex/.git\",\"--work-tree=/home/drewp/annex\",\"branch\",\"-f\",\"synced/master\"]
    [2013-07-15 20:53:02 PDT] call: git [\"--git-dir=/home/drewp/annex/.git\",\"--work-tree=/home/drewp/annex\",\"push\",\"host1.local_annex\",\"git-annex:synced/git-annex\",\"master:synced/master\"]
    To ssh://drewp@git-annex-host1.local-drewp_annex/~/annex/
       a7cb1b3..4a2771e  git-annex -> synced/git-annex
    [2013-07-15 20:53:02 PDT] read: git [\"--git-dir=/home/drewp/annex/.git\",\"--work-tree=/home/drewp/annex\",\"show-ref\",\"git-annex\"]
    [2013-07-15 20:53:02 PDT] read: git [\"--git-dir=/home/drewp/annex/.git\",\"--work-tree=/home/drewp/annex\",\"push\",\"host1.local_annex\",\"git-annex:synced/git-annex\",\"master\"]
    [2013-07-15 20:53:02 PDT] read: git [\"--git-dir=/home/drewp/annex/.git\",\"--work-tree=/home/drewp/annex\",\"show-ref\",\"--hash\",\"refs/heads/git-annex\"]
    [2013-07-15 20:53:02 PDT] read: git [\"--git-dir=/home/drewp/annex/.git\",\"--work-tree=/home/drewp/annex\",\"log\",\"refs/heads/git-annex..4a2771e15cb5c7a0a8d70443e76b65c12115a8cd\",\"--oneline\",\"-n1\"]
    [2013-07-15 20:53:02 PDT] read: git [\"--git-dir=/home/drewp/annex/.git\",\"--work-tree=/home/drewp/annex\",\"log\",\"refs/heads/git-annex..ddf6aa74d771521b11657edfae558858b60e8368\",\"--oneline\",\"-n1\"]
    [2013-07-15 20:53:02 PDT] read: git [\"--git-dir=/home/drewp/annex/.git\",\"--work-tree=/home/drewp/annex\",\"symbolic-ref\",\"HEAD\"]
    [2013-07-15 20:53:02 PDT] read: git [\"--git-dir=/home/drewp/annex/.git\",\"--work-tree=/home/drewp/annex\",\"show-ref\",\"refs/heads/master\"]
    [2013-07-15 20:53:02 PDT] Merger: merging refs/remotes/host1.local_annex/synced/master into refs/heads/master

    [2013-07-15 20:53:02 PDT] read: git [\"--git-dir=/home/drewp/annex/.git\",\"--work-tree=/home/drewp/annex\",\"symbolic-ref\",\"HEAD\"]
    [2013-07-15 20:53:02 PDT] read: git [\"--git-dir=/home/drewp/annex/.git\",\"--work-tree=/home/drewp/annex\",\"show-ref\",\"refs/heads/master\"]
    [2013-07-15 20:53:02 PDT] read: git [\"--git-dir=/home/drewp/annex/.git\",\"--work-tree=/home/drewp/annex\",\"show-ref\",\"--hash\",\"refs/heads/master\"]
    [2013-07-15 20:53:02 PDT] call: git [\"--git-dir=/home/drewp/annex/.git\",\"--work-tree=/home/drewp/annex/.git/annex/merge/\",\"merge\",\"--no-edit\",\"refs/remotes/host1.local_annex/synced/master\"]
    Already up-to-date.
    [2013-07-15 20:53:02 PDT] read: git [\"--git-dir=/home/drewp/annex/.git\",\"--work-tree=/home/drewp/annex\",\"show-ref\",\"--hash\",\"refs/heads/master\"]
    [2013-07-15 20:53:02 PDT] read: git [\"--git-dir=/home/drewp/annex/.git\",\"--work-tree=/home/drewp/annex\",\"diff-tree\",\"-z\",\"--raw\",\"--no-renames\",\"-l0\",\"-r\",\"18cea18855143095a872a463eb0a7cf5dd81de4c\",\"18cea18855143095a872a463eb0a7cf5dd81de4c\"]
    [2013-07-15 20:53:28 PDT] read: git [\"--git-dir=/home/drewp/annex/.git\",\"--work-tree=/home/drewp/annex\",\"ls-tree\",\"-z\",\"--\",\"refs/heads/git-annex\",\"uuid.log\",\"remote.log\",\"trust.log\",\"group.log\",\"preferred-content.log\"]

I also noticed on host1 where the file was made, there is a git node in gitk that says 'Local uncommitted changes, not checked in to index' and this node appears to have all my file contents as diffs. So the problem is maybe not the transfer, but the failure of the originating side to commit the file contents properly?
"""]]


code:
[[!comment format=mdwn
 username="http://joeyh.name/"
 ip="4.154.4.90"
 subject="comment 3"
 date="2013-07-16T18:03:40Z"
 content="""
It's normal for git diff and gitk to look like that in a repository that's using direct mode.

In your log, I see you added a file \"test-2013-07-15e\". And I don't see any indication that it tried to transfer it.

There are a few reasons that could happen. If you've \"paused\" syncing with a remote in the webapp, it could do that.

I think more likely would be if you've put the remote repository in a repository group that doesn't want the file. If it's configured to be in the Manual group or the Source group (or the Transfer, Public, or Small Archive group for that matter), the assistant won't try to send files to it. You can check this by editing the repository in the webapp. It should probably be set to be in the Client group.
"""]]


code:
[[!comment format=mdwn
 username="http://bigasterisk.com/"
 nickname="Drew Perttula"
 subject="comment 4"
 date="2013-07-25T05:02:16Z"
 content="""
I saw the 'syncing enabled'/'syncing disabled' switch in the webapp, which I think is what you're calling pause. That was always enabled.

I never adjusted the groups, but I see in the webapp that my remote is busted in other ways. It has no title, and settings->edit makes an error page. The edit link is like this:

http://127.0.0.1:38187/config/repository/edit/NoUUID?auth=4294a...333c

and the error is

    Internal Server Error
    Unknown UUID

I'll try re-configuring that remote. I wish the webapp could tell me more about what is broken with the remote repo and where I might go to repair it.
"""]]


code:
[[!comment format=mdwn
 username="http://bigasterisk.com/"
 nickname="Drew Perttula"
 subject="comment 5"
 date="2013-07-25T05:14:12Z"
 content="""
BTW \"go enter it into the computer you want to pair with\" is a very frustrating instruction to read. Every time I try to do a pairing and I encounter that, it's telling me \"now it's time for you to guess what to do, so this is probably where you'll screw things up.\" I have no idea where to enter that secret phrase. I would also like to know if 'asdfasdf' is a good secret phrase or not, presuming the two computers are both on my internal network. Does the secret matter later or is it just used for a minute?

So far, I keep getting blank repo names with the NoUUID edit url, or I fail to accomplish a pairing at all.
"""]]


code:
[[!comment format=mdwn
 username="http://bigasterisk.com/"
 nickname="Drew Perttula"
 subject="comment 6"
 date="2013-07-25T05:36:07Z"
 content="""
Here's how little it takes for things to go wrong:

----
First host:

bang(pts/17):~/annex% git init
Initialized empty Git repository in /home/drewp/annex/.git/

bang(pts/17):~/annex% git-annex init
init  ok
(Recording state in git...)

bang(pts/17):~/annex% git-annex webapp --listen 10.1.0.1:9999
http://10.1.0.1:9999/?auth=6f9a8b...

----
Second host:

dash(pts/34):~/annex% git init
Initialized empty Git repository in /home/drewp/annex/.git/

dash(pts/34):~/annex% git-annex init
init  ok
(Recording state in git...)

dash(pts/34):~/annex% git-annex webapp --listen 10.1.0.229:9999
http://10.1.0.229:9999/?auth=f28bd56b456....

Browse to first URI. Add another repo. Local computer. Enter 'qwerty'.
Browse to second URI. Respond to pairing request. Enter 'qwerty' again.
View both dashboards: http://bigasterisk.com/post/git-annex-bad-pair.png

"""]]


code:
[[!comment format=mdwn
 username="http://joeyh.name/"
 ip="2001:4978:f:21a::2"
 subject="comment 7"
 date="2013-07-25T20:02:18Z"
 content="""
What settings does `.git/config` have for the git remote created by the local pairing process?

Since I can't reproduce any problems with local pairing -- it works great on this network -- you will need to enable debugging, reproduce the bug, and send a debug log for me to debug this any further.
"""]]


code:
[[!comment format=mdwn
 username="http://bigasterisk.com/"
 nickname="Drew Perttula"
 subject="~/annex/.git/config files (after running the steps above)"
 date="2013-07-26T13:20:29Z"
 content="""
    dash(pts/32):~/annex% cat .git/config
    [core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
    [annex]
        uuid = ddbb5112-3cff-46d3-b42a-f3a6826827a5
        version = 3
    [remote \"bang.local_annex\"]
        url = ssh://drewp@git-annex-bang.local-drewp_annex/~/annex/
        fetch = +refs/heads/*:refs/remotes/bang.local_annex/*
        annex-ignore = true
        annex-cost = 175.0

    bang(pts/16):~/annex% cat .git/config
    [core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
    [annex]
        uuid = c8a6c420-0567-4f33-8abb-e44b2012ad55
        version = 3
    [remote \"dash.local_annex\"]
        url = ssh://drewp@git-annex-dash.local-drewp_annex/~/annex/
        fetch = +refs/heads/*:refs/remotes/dash.local_annex/*
        annex-ignore = true
        annex-cost = 175.0

"""]]


code:
[[!comment format=mdwn
 username="http://joeyh.name/"
 ip="2001:4978:f:21a::2"
 subject="comment 9"
 date="2013-07-26T16:55:08Z"
 content="""
Like I sort of expected, this is missing a remote.$foo.annex-uuid setting. But I don't know why yet. I need a debug log to figure this out.

Can you enable debugging (run git-annex webapp --debug), reproduce the problem again, and send me the log?
"""]]


code:
### Please describe the problem.

I've setup a gcrypt based git backup repository as per the examples here:

http://git-annex.branchable.com/tips/fully_encrypted_git_repositories_with_gcrypt/

It all seems to work well until I try to do any kind git annex operation from the console on the gcrypted repo on the remote server.  If I run a `git annex fsck` (this seems a reasonable thing to do) then it initialises the encrypted remote with a different uuid to the one in the creation step.  The initial repository that created the repo seems to work okay but it's no longer possible to add further repositories without getting conflicting uuid errors.

### What steps will reproduce the problem?

### What version of git-annex are you using? On what operating system?

### 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

# End of transcript or log.
"""]]

> [[fixed|done]]; <>. I have updated the OSX autobuilder so tonight's
> build will include the fixed git-remote-gcrypt. --[[Joey]]
>
> Note that gcrypt repositories affected by this bug are in fact empty, so
> the first time a push is made with the fixed gcrypt it will probably
> generate a new gcrypt-id and push everything.


code:
[[!comment format=mdwn
 username="https://www.google.com/accounts/o8/id?id=AItOawnXybLxkPMYpP3yw4b_I6IdC3cKTD-xEdU"
 nickname="Matt"
 subject="comment 1"
 date="2014-04-27T15:04:09Z"
 content="""
Thinking about it some more perhaps it's not a reasonable thing to do if you don't want people to be able to discover info about the repo.  However it would be good to somehow prevent git-annex from running a local init operation when working with a gcrypt repo.
"""]]


code:
[[!comment format=mdwn
 username="https://www.google.com/accounts/o8/id?id=AItOawnXybLxkPMYpP3yw4b_I6IdC3cKTD-xEdU"
 nickname="Matt"
 subject="comment 2"
 date="2014-04-27T19:19:22Z"
 content="""
I'm having a pretty bad time with gcrypt based repos.  Seemingly at random a `git-annex sync` will occasionally decide that the remote repo doesn't exist and then attempt to create a new one - it generates a new gcryptid and the repository seems lost.

This sometimes happens after a good few hours of use, sometimes it happens immediately after creation (but maybe due to the fact that annexs are sullied by previous bad attempts).  I've cleaned up making the repo dead, removing via `git remote` and editing the remote.log in the git-annex branch.  No idea if that's enough.

What do you need from me to try to sort this?

Cheers,

Matt.
"""]]


code:
[[!comment format=mdwn
 username="https://www.google.com/accounts/o8/id?id=AItOawnXybLxkPMYpP3yw4b_I6IdC3cKTD-xEdU"
 nickname="Matt"
 subject="comment 3"
 date="2014-04-29T03:00:59Z"
 content="""
Hi,  I'm finally through trial and error am able to reproduce the bug...

On OSX using version 5.20140420-ga25b8bb the creation of an gcrypt remote via initremote does not work properly.  See the attached debug log for what happens - no errors but subsequent syncs fail and creates a new repo.

Using linux and version 5.20140421-g515d251 to create the gcrypt does work without issue.  Interestingly the OSX client will happily use the linux created repo without problem (at least it hasn't borked it yet).  This suggests something up in the creation step.  Perhaps this is fixed in the later version (see the other bug about the latest OSX upgrade having the older binary)?  But I didn't see anything in the change log about it?  But I did see the gcrypt script in the manifest now...

<pre>~/iMovies $ git annex initremote isilon-2 type=gcrypt gitrepo=ssh://rss/home/matt/mnt/isilon/rss/zzalsmf3/git-annex/mov2 keyid=matt@dancingfrog.co.uk
[2014-04-29 01:54:47 BST] read: git [\"--git-dir=/Volumes/Media/iTunes Media/Movies/.git\",\"--work-tree=/Volumes/Media/iTunes Media/Movies\",\"show-ref\",\"git-annex\"]
[2014-04-29 01:54:47 BST] read: git [\"--git-dir=/Volumes/Media/iTunes Media/Movies/.git\",\"--work-tree=/Volumes/Media/iTunes Media/Movies\",\"show-ref\",\"--hash\",\"refs/heads/git-annex\"]
[2014-04-29 01:54:47 BST] read: git [\"--git-dir=/Volumes/Media/iTunes Media/Movies/.git\",\"--work-tree=/Volumes/Media/iTunes Media/Movies\",\"log\",\"refs/heads/git-annex..3269adaaa41b42dab88399e8212d77301967f436\",\"--oneline\",\"-n1\"]
git [2014-04-29 01:54:47 BST] read: git [\"--git-dir=/Volumes/Media/iTunes Media/Movies/.git\",\"--work-tree=/Volumes/Media/iTunes Media/Movies\",\"log\",\"refs/heads/git-annex..4dc8becdffd42c9af57e0d1007892516f2114c0e\",\"--oneline\",\"-n1\"]
[2014-04-29 01:54:47 BST] read: git [\"--git-dir=/Volumes/Media/iTunes Media/Movies/.git\",\"--work-tree=/Volumes/Media/iTunes Media/Movies\",\"log\",\"refs/heads/git-annex..13d8993b7d9a89ea4198ec3edd63aa575745c64c\",\"--oneline\",\"-n1\"]
[2014-04-29 01:54:47 BST] chat: git [\"--git-dir=/Volumes/Media/iTunes Media/Movies/.git\",\"--work-tree=/Volumes/Media/iTunes Media/Movies\",\"cat-file\",\"--batch\"]
initremote isilon-2 (encryption setup) [2014-04-29 01:54:47 BST] read: gpg [\"--batch\",\"--no-tty\",\"--use-agent\",\"--quiet\",\"--trust-model\",\"always\",\"--with-colons\",\"--list-public-keys\",\"matt@dancingfrog.co.uk\"]
[2014-04-29 01:54:47 BST] read: gpg [\"--batch\",\"--no-tty\",\"--use-agent\",\"--quiet\",\"--trust-model\",\"always\",\"--gen-random\",\"--armor\",\"2\",\"512\"]
[2014-04-29 01:54:47 BST] chat: gpg [\"--batch\",\"--no-tty\",\"--use-agent\",\"--quiet\",\"--trust-model\",\"always\",\"--recipient\",\"68D8501429C42E01\",\"--encrypt\",\"--no-encrypt-to\",\"--no-default-recipient\",\"--force-mdc\",\"--no-textmode\"]
(hybrid cipher with gpg key 68D8501429C42E01) [2014-04-29 01:54:47 BST] call: git [\"--git-dir=/Volumes/Media/iTunes Media/Movies/.git\",\"--work-tree=/Volumes/Media/iTunes Media/Movies\",\"remote\",\"add\",\"isilon-2\",\"gcrypt::ssh://rss/home/matt/mnt/isilon/rss/zzalsmf3/git-annex/mov2\"]
[2014-04-29 01:54:47 BST] call: git [\"--git-dir=/Volumes/Media/iTunes Media/Movies/.git\",\"--work-tree=/Volumes/Media/iTunes Media/Movies\",\"config\",\"remote.isilon-2.gcrypt-participants\",\"68D8501429C42E01\"]
[2014-04-29 01:54:47 BST] read: git [\"config\",\"--null\",\"--list\"]
[2014-04-29 01:54:48 BST] read: gpg [\"--batch\",\"--no-tty\",\"--use-agent\",\"--quiet\",\"--trust-model\",\"always\",\"--with-colons\",\"--list-secret-keys\",\"--fixed-list-mode\"]
[2014-04-29 01:54:48 BST] call: git [\"--git-dir=/Volumes/Media/iTunes Media/Movies/.git\",\"--work-tree=/Volumes/Media/iTunes Media/Movies\",\"config\",\"remote.isilon-2.gcrypt-signingkey\",\"68D8501429C42E01\"]
[2014-04-29 01:54:48 BST] read: git [\"config\",\"--null\",\"--list\"]
[2014-04-29 01:54:48 BST] call: git [\"--git-dir=/Volumes/Media/iTunes Media/Movies/.git\",\"--work-tree=/Volumes/Media/iTunes Media/Movies\",\"fetch\",\"isilon-2\"]
gcrypt: Development version -- Repository format MAY CHANGE
gcrypt: Repository not found: ssh://rss/home/matt/mnt/isilon/rss/zzalsmf3/git-annex/mov2
[2014-04-29 01:54:49 BST] call: git [\"--git-dir=/Volumes/Media/iTunes Media/Movies/.git\",\"--work-tree=/Volumes/Media/iTunes Media/Movies\",\"push\",\"isilon-2\",\"refs/heads/git-annex\"]
gcrypt: Development version -- Repository format MAY CHANGE
gcrypt: Repository not found: ssh://rss/home/matt/mnt/isilon/rss/zzalsmf3/git-annex/mov2
gcrypt: Setting up new repository
gcrypt: Remote ID is :id:oWSdoSaFhKA19TcXRHPS
Counting objects: 4170, done.
Compressing objects: 100% (3113/3113), done.
Total 4170 (delta 149), reused 146 (delta 3)
gcrypt: Encrypting to:  -R 68D8501429C42E01
gcrypt: Requesting manifest signature

You need a passphrase to unlock the secret key for
user: \"Matt Ford (Work) <matt.ford@manchester.ac.uk>\"
1024-bit DSA key, ID 29C42E01, created 2010-03-10

gpg: 68D8501429C42E01: skipped: public key already present
To gcrypt::ssh://rss/home/matt/mnt/isilon/rss/zzalsmf3/git-annex/mov2
 * [new branch]      git-annex -> git-annex
[2014-04-29 01:54:52 BST] read: git [\"config\",\"--null\",\"--list\"]
[2014-04-29 01:54:52 BST] call: ssh [\"-S\",\".git/annex/ssh/rss\",\"-o\",\"ControlMaster=auto\",\"-o\",\"ControlPersist=yes\",\"-T\",\"rss\",\"git-annex-shell 'gcryptsetup' '/home/matt/mnt/isilon/rss/zzalsmf3/git-annex/mov2' ':id:oWSdoSaFhKA19TcXRHPS'\"]
ok
[2014-04-29 01:54:53 BST] call: git [\"--git-dir=/Volumes/Media/iTunes Media/Movies/.git\",\"--work-tree=/Volumes/Media/iTunes Media/Movies\",\"config\",\"remote.isilon-2.annex-gcrypt\",\"shell\"]
[2014-04-29 01:54:53 BST] call: git [\"--git-dir=/Volumes/Media/iTunes Media/Movies/.git\",\"--work-tree=/Volumes/Media/iTunes Media/Movies\",\"config\",\"remote.isilon-2.annex-uuid\",\"8fc5d933-d76f-5a61-b3a0-96b909e3f06c\"]
ok
[2014-04-29 01:54:53 BST] chat: git [\"--git-dir=/Volumes/Media/iTunes Media/Movies/.git\",\"--work-tree=/Volumes/Media/iTunes Media/Movies\",\"hash-object\",\"-w\",\"--stdin-paths\",\"--no-filters\"]
[2014-04-29 01:54:53 BST] feed: git [\"--git-dir=/Volumes/Media/iTunes Media/Movies/.git\",\"--work-tree=/Volumes/Media/iTunes Media/Movies\",\"update-index\",\"-z\",\"--index-info\"]
[2014-04-29 01:54:53 BST] read: git [\"--git-dir=/Volumes/Media/iTunes Media/Movies/.git\",\"--work-tree=/Volumes/Media/iTunes Media/Movies\",\"show-ref\",\"--hash\",\"refs/heads/git-annex\"]
(Recording state in git...)
[2014-04-29 01:54:53 BST] read: git [\"--git-dir=/Volumes/Media/iTunes Media/Movies/.git\",\"--work-tree=/Volumes/Media/iTunes Media/Movies\",\"write-tree\"]
[2014-04-29 01:54:53 BST] chat: git [\"--git-dir=/Volumes/Media/iTunes Media/Movies/.git\",\"--work-tree=/Volumes/Media/iTunes Media/Movies\",\"commit-tree\",\"8c27761996045cb6daf7dc83920e15bfe0f2b2ed\",\"-p\",\"refs/heads/git-annex\"]
[2014-04-29 01:54:53 BST] call: git [\"--git-dir=/Volumes/Media/iTunes Media/Movies/.git\",\"--work-tree=/Volumes/Media/iTunes Media/Movies\",\"update-ref\",\"refs/heads/git-annex\",\"0755de89ac06bb3babc73de294a550d9b62f39f1\"]
[2014-04-29 01:54:53 BST] read: ssh [\"-O\",\"stop\",\"-S\",\"rss\",\"-o\",\"ControlMaster=auto\",\"-o\",\"ControlPersist=yes\",\"localhost\"]

~/iMovies $ git annex sync
[2014-04-29 01:57:55 BST] read: git [\"--git-dir=/Volumes/Media/iTunes Media/Movies/.git\",\"--work-tree=/Volumes/Media/iTunes Media/Movies\",\"show-ref\",\"git-annex\"]
[2014-04-29 01:57:55 BST] read: git [\"--git-dir=/Volumes/Media/iTunes Media/Movies/.git\",\"--work-tree=/Volumes/Media/iTunes Media/Movies\",\"show-ref\",\"--hash\",\"refs/heads/git-annex\"]
[2014-04-29 01:57:55 BST] read: git [\"--git-dir=/Volumes/Media/iTunes Media/Movies/.git\",\"--work-tree=/Volumes/Media/iTunes Media/Movies\",\"log\",\"refs/heads/git-annex..0755de89ac06bb3babc73de294a550d9b62f39f1\",\"--oneline\",\"-n1\"]
[2014-04-29 01:57:55 BST] read: git [\"--git-dir=/Volumes/Media/iTunes Media/Movies/.git\",\"--work-tree=/Volumes/Media/iTunes Media/Movies\",\"log\",\"refs/heads/git-annex..4dc8becdffd42c9af57e0d1007892516f2114c0e\",\"--oneline\",\"-n1\"]
[2014-04-29 01:57:55 BST] read: git [\"--git-dir=/Volumes/Media/iTunes Media/Movies/.git\",\"--work-tree=/Volumes/Media/iTunes Media/Movies\",\"log\",\"refs/heads/git-annex..3269adaaa41b42dab88399e8212d77301967f436\",\"--oneline\",\"-n1\"]
[2014-04-29 01:57:55 BST] read: git [\"--git-dir=/Volumes/Media/iTunes Media/Movies/.git\",\"--work-tree=/Volumes/Media/iTunes Media/Movies\",\"log\",\"refs/heads/git-annex..13d8993b7d9a89ea4198ec3edd63aa575745c64c\",\"--oneline\",\"-n1\"]
[2014-04-29 01:57:55 BST] chat: git [\"--git-dir=/Volumes/Media/iTunes Media/Movies/.git\",\"--work-tree=/Volumes/Media/iTunes Media/Movies\",\"cat-file\",\"--batch\"]
commit  [2014-04-29 01:57:55 BST] read: git [\"--git-dir=/Volumes/Media/iTunes Media/Movies/.git\",\"--work-tree=/Volumes/Media/iTunes Media/Movies\",\"commit\",\"-a\",\"-m\",\"git-annex automatic sync\"]
ok
[2014-04-29 01:57:55 BST] read: git [\"--git-dir=/Volumes/Media/iTunes Media/Movies/.git\",\"--work-tree=/Volumes/Media/iTunes Media/Movies\",\"symbolic-ref\",\"HEAD\"]
[2014-04-29 01:57:55 BST] read: git [\"--git-dir=/Volumes/Media/iTunes Media/Movies/.git\",\"--work-tree=/Volumes/Media/iTunes Media/Movies\",\"show-ref\",\"refs/heads/master\"]
[2014-04-29 01:57:55 BST] call: git [\"--git-dir=/Volumes/Media/iTunes Media/Movies/.git\",\"--work-tree=/Volumes/Media/iTunes Media/Movies\",\"show-ref\",\"--verify\",\"-q\",\"refs/heads/synced/master\"]
[2014-04-29 01:57:55 BST] read: git [\"--git-dir=/Volumes/Media/iTunes Media/Movies/.git\",\"--work-tree=/Volumes/Media/iTunes Media/Movies\",\"log\",\"refs/heads/master..refs/heads/synced/master\",\"--oneline\",\"-n1\"]
pull isilon
[2014-04-29 01:57:55 BST] call: git [\"--git-dir=/Volumes/Media/iTunes Media/Movies/.git\",\"--work-tree=/Volumes/Media/iTunes Media/Movies\",\"fetch\",\"isilon\"]
gcrypt: Development version -- Repository format MAY CHANGE
gcrypt: Repository not found: ssh://rss/home/matt/mnt/isilon/rss/zzalsmf3/git-annex/mov
[2014-04-29 01:57:56 BST] call: git [\"--git-dir=/Volumes/Media/iTunes Media/Movies/.git\",\"--work-tree=/Volumes/Media/iTunes Media/Movies\",\"show-ref\",\"--verify\",\"-q\",\"refs/remotes/isilon/master\"]
[2014-04-29 01:57:56 BST] read: git [\"--git-dir=/Volumes/Media/iTunes Media/Movies/.git\",\"--work-tree=/Volumes/Media/iTunes Media/Movies\",\"log\",\"refs/heads/master..refs/remotes/isilon/master\",\"--oneline\",\"-n1\"]
[2014-04-29 01:57:56 BST] call: git [\"--git-dir=/Volumes/Media/iTunes Media/Movies/.git\",\"--work-tree=/Volumes/Media/iTunes Media/Movies\",\"show-ref\",\"--verify\",\"-q\",\"refs/remotes/isilon/synced/master\"]
[2014-04-29 01:57:56 BST] read: git [\"--git-dir=/Volumes/Media/iTunes Media/Movies/.git\",\"--work-tree=/Volumes/Media/iTunes Media/Movies\",\"log\",\"refs/heads/synced/master..refs/remotes/isilon/synced/master\",\"--oneline\",\"-n1\"]
ok
pull isilon-2
[2014-04-29 01:57:57 BST] call: git [\"--git-dir=/Volumes/Media/iTunes Media/Movies/.git\",\"--work-tree=/Volumes/Media/iTunes Media/Movies\",\"fetch\",\"isilon-2\"]
gcrypt: Development version -- Repository format MAY CHANGE
gcrypt: Repository not found: ssh://rss/home/matt/mnt/isilon/rss/zzalsmf3/git-annex/mov2
[2014-04-29 01:57:57 BST] call: git [\"--git-dir=/Volumes/Media/iTunes Media/Movies/.git\",\"--work-tree=/Volumes/Media/iTunes Media/Movies\",\"show-ref\",\"--verify\",\"-q\",\"refs/remotes/isilon-2/master\"]
[2014-04-29 01:57:57 BST] call: git [\"--git-dir=/Volumes/Media/iTunes Media/Movies/.git\",\"--work-tree=/Volumes/Media/iTunes Media/Movies\",\"show-ref\",\"--verify\",\"-q\",\"refs/remotes/isilon-2/synced/master\"]
ok
[2014-04-29 01:57:57 BST] read: git [\"--git-dir=/Volumes/Media/iTunes Media/Movies/.git\",\"--work-tree=/Volumes/Media/iTunes Media/Movies\",\"show-ref\",\"git-annex\"]
[2014-04-29 01:57:57 BST] read: git [\"--git-dir=/Volumes/Media/iTunes Media/Movies/.git\",\"--work-tree=/Volumes/Media/iTunes Media/Movies\",\"show-ref\",\"--hash\",\"refs/heads/git-annex\"]
[2014-04-29 01:57:57 BST] read: git [\"--git-dir=/Volumes/Media/iTunes Media/Movies/.git\",\"--work-tree=/Volumes/Media/iTunes Media/Movies\",\"log\",\"refs/heads/git-annex..0755de89ac06bb3babc73de294a550d9b62f39f1\",\"--oneline\",\"-n1\"]
[2014-04-29 01:57:58 BST] read: git [\"--git-dir=/Volumes/Media/iTunes Media/Movies/.git\",\"--work-tree=/Volumes/Media/iTunes Media/Movies\",\"log\",\"refs/heads/git-annex..4dc8becdffd42c9af57e0d1007892516f2114c0e\",\"--oneline\",\"-n1\"]
[2014-04-29 01:57:58 BST] read: git [\"--git-dir=/Volumes/Media/iTunes Media/Movies/.git\",\"--work-tree=/Volumes/Media/iTunes Media/Movies\",\"log\",\"refs/heads/git-annex..3269adaaa41b42dab88399e8212d77301967f436\",\"--oneline\",\"-n1\"]
[2014-04-29 01:57:58 BST] read: git [\"--git-dir=/Volumes/Media/iTunes Media/Movies/.git\",\"--work-tree=/Volumes/Media/iTunes Media/Movies\",\"log\",\"refs/heads/git-annex..13d8993b7d9a89ea4198ec3edd63aa575745c64c\",\"--oneline\",\"-n1\"]
[2014-04-29 01:57:58 BST] call: git [\"--git-dir=/Volumes/Media/iTunes Media/Movies/.git\",\"--work-tree=/Volumes/Media/iTunes Media/Movies\",\"branch\",\"-f\",\"synced/master\"]
[2014-04-29 01:57:58 BST] call: git [\"--git-dir=/Volumes/Media/iTunes Media/Movies/.git\",\"--work-tree=/Volumes/Media/iTunes Media/Movies\",\"show-ref\",\"--verify\",\"-q\",\"refs/remotes/isilon/synced/master\"]
[2014-04-29 01:57:58 BST] read: git [\"--git-dir=/Volumes/Media/iTunes Media/Movies/.git\",\"--work-tree=/Volumes/Media/iTunes Media/Movies\",\"log\",\"refs/remotes/isilon/synced/master..refs/heads/synced/master\",\"--oneline\",\"-n1\"]
[2014-04-29 01:57:58 BST] call: git [\"--git-dir=/Volumes/Media/iTunes Media/Movies/.git\",\"--work-tree=/Volumes/Media/iTunes Media/Movies\",\"show-ref\",\"--verify\",\"-q\",\"refs/remotes/isilon/git-annex\"]
[2014-04-29 01:57:58 BST] read: git [\"--git-dir=/Volumes/Media/iTunes Media/Movies/.git\",\"--work-tree=/Volumes/Media/iTunes Media/Movies\",\"log\",\"refs/remotes/isilon/git-annex..git-annex\",\"--oneline\",\"-n1\"]
push isilon
[2014-04-29 01:57:58 BST] call: git [\"--git-dir=/Volumes/Media/iTunes Media/Movies/.git\",\"--work-tree=/Volumes/Media/iTunes Media/Movies\",\"push\",\"isilon\",\"+git-annex:synced/git-annex\",\"master:synced/master\"]
gcrypt: Development version -- Repository format MAY CHANGE
gcrypt: Repository not found: ssh://rss/home/matt/mnt/isilon/rss/zzalsmf3/git-annex/mov
gcrypt: Setting up new repository
gcrypt: Remote ID is :id:p4cHPeAFIRIvZTnm4UrK
Counting objects: 5649, done.
Compressing objects: 100% (4579/4579), done.
Total 5649 (delta 151), reused 146 (delta 3)
gcrypt: Encrypting to:  -R 68D8501429C42E01
gcrypt: Requesting manifest signature

You need a passphrase to unlock the secret key for
user: \"Matt Ford (Work) <matt.ford@manchester.ac.uk>\"
1024-bit DSA key, ID 29C42E01, created 2010-03-10

gpg: 68D8501429C42E01: skipped: public key already present
To gcrypt::ssh://rss/home/matt/mnt/isilon/rss/zzalsmf3/git-annex/mov
 * [new branch]      git-annex -> synced/git-annex
 * [new branch]      master -> synced/master
[2014-04-29 01:58:01 BST] read: git [\"--git-dir=/Volumes/Media/iTunes Media/Movies/.git\",\"--work-tree=/Volumes/Media/iTunes Media/Movies\",\"push\",\"isilon\",\"master\"]

You need a passphrase to unlock the secret key for
user: \"Matt Ford (Work) <matt.ford@manchester.ac.uk>\"
1024-bit DSA key, ID 29C42E01, created 2010-03-10

ok
[2014-04-29 01:58:03 BST] call: git [\"--git-dir=/Volumes/Media/iTunes Media/Movies/.git\",\"--work-tree=/Volumes/Media/iTunes Media/Movies\",\"show-ref\",\"--verify\",\"-q\",\"refs/remotes/isilon-2/synced/master\"]
push isilon-2
[2014-04-29 01:58:03 BST] call: git [\"--git-dir=/Volumes/Media/iTunes Media/Movies/.git\",\"--work-tree=/Volumes/Media/iTunes Media/Movies\",\"push\",\"isilon-2\",\"+git-annex:synced/git-annex\",\"master:synced/master\"]
gcrypt: Development version -- Repository format MAY CHANGE
gcrypt: Repository not found: ssh://rss/home/matt/mnt/isilon/rss/zzalsmf3/git-annex/mov2
gcrypt: Setting up new repository
gcrypt: Remote ID is :id:wTHlCd+vFviIzoTDv2Xu
Counting objects: 5649, done.
Compressing objects: 100% (4579/4579), done.
Total 5649 (delta 152), reused 146 (delta 3)
gcrypt: Encrypting to:  -R 68D8501429C42E01
gcrypt: Requesting manifest signature

You need a passphrase to unlock the secret key for
user: \"Matt Ford (Work) <matt.ford@manchester.ac.uk>\"
1024-bit DSA key, ID 29C42E01, created 2010-03-10

gpg: 68D8501429C42E01: skipped: public key already present
To gcrypt::ssh://rss/home/matt/mnt/isilon/rss/zzalsmf3/git-annex/mov2
 * [new branch]      git-annex -> synced/git-annex
 * [new branch]      master -> synced/master
[2014-04-29 01:58:06 BST] read: git [\"--git-dir=/Volumes/Media/iTunes Media/Movies/.git\",\"--work-tree=/Volumes/Media/iTunes Media/Movies\",\"push\",\"isilon-2\",\"master\"]

You need a passphrase to unlock the secret key for
user: \"Matt Ford (Work) <matt.ford@manchester.ac.uk>\"
1024-bit DSA key, ID 29C42E01, created 2010-03-10

ok
[2014-04-29 01:58:09 BST] read: ssh [\"-O\",\"stop\",\"-S\",\"rss\",\"-o\",\"ControlMaster=auto\",\"-o\",\"ControlPersist=yes\",\"localhost\"]
</pre>
"""]]


code:
[[!comment format=mdwn
 username="http://joeyh.name/"
 ip="216.145.95.162"
 subject="comment 4"
 date="2014-05-19T16:28:01Z"
 content="""
I can reproduce this problem on OSX.

I've only gotten as far as seeing that the gcrypt repository never gets initialized as a git repository. It has a config file, but no objects are ever pushed to it. This is why gcrypt sees no repository there in subsequent runs.

This is a bug in gcrypt, so filed: <https://github.com/blake2-ppc/git-remote-gcrypt/issues/15>
"""]]


code:
### Please describe the problem.

This is a followup on [[bugs/internal_server_error:_unknown_UUID_on_webapp]]. In that issue, webapps previous to 20130929 would crash with `internal server error: unknown UUID`. This was fixed at that date, but some problems remain, namely that the remote that is recognized on the commandline doesn't show up in the webapp.

`markov` is able to push to `marcos`, but not the reverse because `markov` is hidden behind a NAT. `git annex sync` seems to do the right thing accordingly on both ends (which is: `marcos` doesn't try to push to `markov` but `markov` pushes to `marcos`).

### What steps will reproduce the problem?

See [[bugs/internal_server_error:_unknown_UUID_on_webapp]]. I didn't do any further changes other than upgrade `git-annex` on both ends.

### What version of git-annex are you using? On what operating system?

`marcos` is now running `Version: 4.20131105-g8efdc1a Build flags: Assistant Webapp Pairing Testsuite S3 WebDAV Inotify DBus XMPP DNS Feeds Quvi TDFA CryptoHash`

`markov` is now running the wheezy backport, `4.20131002~bpo70+1`.

### Please provide any additional information below.

#### On `marcos`

Here's the output of `git annex status` on `marcos`:

[[!format sh """
anarcat@marcos:books$ git annex status
repository mode: direct
trusted repositories: 0
semitrusted repositories: 3
        00000000-0000-0000-0000-000000000001 -- web
        a75cbbf7-e055-423e-b375-443e0552c9e2 -- here (anarcat@marcos:/srv/books)
        aa500f29-42d9-4777-ae02-4a2c3d47db44 -- anarcat@markov:~/books
untrusted repositories: 0
transfers in progress: none
available local disk space: 7.04 gigabytes (+1 megabyte reserved)
local annex keys: 736
local annex size: 3.92 gigabytes
annexed files in working tree: 721
size of annexed files in working tree: 3.92 gigabytes
bloom filter size: 16 mebibytes (0.1% full)
backend usage:
        SHA256E: 1457
# End of transcript or log.
"""]]

Here's a screenshot of the idle webapp on marcos:

You can clearly see that the webapp doesn't see the `markov` remote.

When `markov` transfers stuff, `marcos` sees the transfers happening, but marks it as going to the `unknown` remote:

Clicking on that link is what was previously triggering [[bugs/internal_server_error:_unknown_UUID_on_webapp]] but now yields a "Unknown remote" error.

#### On `markov`:

Here is a screenshot from `markov` that shows *it* knows about both repositories and seem to behave properly:

And here's the output of `git annex status` on markov:

[[!format sh """
anarcat@desktop008:books$ git annex status
repository mode: indirect
trusted repositories: 0
semitrusted repositories: 3
        00000000-0000-0000-0000-000000000001 -- web
        a75cbbf7-e055-423e-b375-443e0552c9e2 -- origin (anarcat@marcos:/srv/books)
        aa500f29-42d9-4777-ae02-4a2c3d47db44 -- here (anarcat@markov:~/books)
untrusted repositories: 0
transfers in progress:
        downloading Patrick K. O'Brien/Philip's Atlas of World History, Concise Edition (115)/Philip's Atlas of World History, Concise Edition - Patrick K. O'Brien.pdf from origin
available local disk space: 93.25 gigabytes (+1 megabyte reserved)
temporary directory size: 50.07 megabytes (clean up with git-annex unused)
local annex keys: 708
local annex size: 3.81 gigabytes
known annex keys: 721
known annex size: 3.92 gigabytes
bloom filter size: 16 mebibytes (0.1% full)
backend usage:
        SHA256E: 1429
"""]]

Finally, note that you sometimes see `desktop008` above: it turns out I am running `git annex` from my workstation, which NFS-mounts the `/home` directory of `markov` into `/srv/musique`.  --[[anarcat]]

Yesterday, I made the webapp register ssh remotes it creates.
They then show up in the webapp when run in a repository where that ssh
remote is not enabled.

You can also manually register a ssh remote. First set up the git remote
as usual. Then run `git annex initremote type=git name=foo
location=$url`.

[[!meta title="webapp shows transfer from 'unknown' when no remote is configured for a system that is downloading files"]]

[[!tag confirmed]]


code:
[[!comment format=mdwn
 username="http://joeyh.name/"
 ip="209.250.56.47"
 subject="comment 1"
 date="2013-11-06T16:38:47Z"
 content="""
marcov does not show up in the webapp because there is no configured git remote for it.

This is a slightly confusing corner of the webapp. The webapp will show repositories that do not have a configured remote, but it only does it for special remotes. ssh repos, being regular git remotes, don't currently show up in the webapp unless that repository is actually set up as a remote.

It should certainly not show it as \"unknown\"; it would be much better to use the full repo description here, since it does not have a remote name.
(Unless the description is really long!)

I think you'll also get the \"unknown uuid\" screen even for a special remote that is not configured in the local repository. So that needs to be fixed.

Finally, it would probably be good for the webapp to show ssh repos that don't have remotes as existing, and let the user enter a ssh address to configure them. The problem with trying to do this is it actually has no idea that this is a ssh repo. It could just as easily be a local directory. The UI to configure  it would be pretty elaborate.
"""]]


code:
[[!comment format=mdwn
 username="https://id.koumbit.net/anarcat"
 ip="72.0.72.144"
 subject="comment 2"
 date="2014-04-19T04:26:57Z"
 content="""
i hit that thing again, utterly confused. it happens all the time with my laptop, which has access to my workstation, but not the other way around. so from the POV of my laptop, things make sense somehow, but from the workstation, the laptop doesn't show up at all, and when there's a transfer, it says it's into the unknown.

really confusing... surely there's a way to show the remote name at least...
"""]]


code:
[[!comment format=mdwn
 username="http://joeyh.name/"
 ip="24.159.78.125"
 subject="comment 3"
 date="2014-05-23T14:57:43Z"
 content="""
Yesterday, I made the webapp register ssh remotes it creates.
They then show up in the webapp when run in a repository where that ssh
remote is not enabled.

You can also manually register a ssh remote. First set up the git remote
as usual. Then run `git annex initremote type=git name=foo
location=$url`.

So, this bugs titular issue is fixed, but the issue of it displaying \"unknown\" rather than the remote description is not yet fixed. Will retitle this bug appropriately, and leave open until that gets fixed.
"""]]


code:
Hello everyone,
Creating a new repository through the web-app fails on Android 4.4.3, git annex version 5.20140612-g1bebb0d.

Steps to reproduce the problem:

1. Install git annex for android 4.4.3

2. Launch git annex.

3. The terminal opens up reporting some (non-fatal?) errors. (I notice that I can't do anything in the terminal, is it supposed to reply to git annex commands? typing in "git annex version" does nothing).

4. The web-app is launched.

5. Click on make repository.

6. Error message.

I've made a few screenshots to illustrate:

[terminal screenshot](https://drive.google.com/file/d/0B1qM91oKErVDSEJwbnhiaFJhQVU/edit?usp=sharing)

This is the webapp error when creating a new repo:

[first](https://drive.google.com/file/d/0B1qM91oKErVDVHVuLVpacmJaOEU/edit?usp=sharing)

[second](https://drive.google.com/file/d/0B1qM91oKErVDX3R3cFhyb2VjcHc/edit?usp=sharing)

Being on android I can't find any ".git/annex/daemon.log to" to report. I tried to look in the repo folder but there was no .git in it (maybe hidden?)

> dup; [[done]] --[[Joey]]


code:
[[!comment format=mdwn
 username="https://www.google.com/accounts/o8/id?id=AItOawnxFr-i4nNUVrj3PJ_JKhp7GtZ5Xom7-3w"
 nickname="John"
 subject="Errors from Screenshots"
 date="2014-07-03T20:00:25Z"
 content="""
A low-bandwidth version.

*terminal screenshot:*

Falling back to hardcoded app location; cannot find expected files in /data/app-lib
git annex webapp
nex webapp
WARNING: linker: git-annex has text relocations. This is wasting memory and is a security risk.  Please fix.
error: fchmod on /sdcard/annex/.git/config.lock failed: Operation not permitted
error: fchmod on /sdcard/annex/.git/config.lock failed: Operation not permitted

*first:*

git [Param \"config\",Param \"annex.uuid\",Param \"51e7d274-9723-4b14-8c5

*second:*

ram \"annex.uuid\",Param \"51e7d274-9723-4b14-8c57-1d72263e3982\"] failed

"""]]


code:
[[!comment format=mdwn
 username="http://joeyh.name/"
 ip="209.250.56.55"
 subject="comment 2"
 date="2014-07-03T20:13:57Z"
 content="""
Thanks, this is then a dup of [[bugs/Android_fails_on_Google_Nexus_10_Jellybean]].
"""]]


code:
[[!comment format=mdwn
 username="http://joeyh.name/"
 ip="209.250.56.55"
 subject="comment 3"
 date="2014-07-04T17:52:41Z"
 content="""
This problem should be fixed in the most recent daily build of git-annex for android. Testing appreciated.
"""]]


code:
    ~$ mkdir test annex
    ~$ cd test
    ~$ git init
    Initialized empty Git repository in /home/user/test/.git/
    ~$ git annex init test
    init test ok
    ~$ git annex initremote localrsync encryption=none type=rsync rsyncurl=localhost:annex/
    initremote localrsync ok
    ~$ cp /home/user/Music/Charming\ Hostess/Eat/03\ Mi\ Nuera.ogg ./
    ~$ git annex add 03\ Mi\ Nuera.ogg
    add 03 Mi Nuera.ogg ok
    (Recording state in git...)
    ~$ git commit -m "add ogg"
    fatal: No HEAD commit to compare with (yet)
    fatal: No HEAD commit to compare with (yet)
    [master (root-commit) 12608af] add ogg
     1 files changed, 1 insertions(+), 0 deletions(-)
     create mode 120000 03 Mi Nuera.ogg
    ~$ git annex move 03\ Mi\ Nuera.ogg --to localrsync
    move 03 Mi Nuera.ogg (checking localrsync...) (to localrsync...)
    sending incremental file list
    1X/
    1X/39/
    1X/39/WORM-s6296772-m1311874383--03 Mi Nuera.ogg/
    1X/39/WORM-s6296772-m1311874383--03 Mi Nuera.ogg/WORM-s6296772-m1311874383--03 Mi Nuera.ogg
         6296772 100%   42.98MB/s    0:00:00 (xfer#1, to-check=0/5)

    sent 6297754 bytes  received 43 bytes  4198531.33 bytes/sec
    total size is 6296772  speedup is 1.00
    ok
    ~$ git annex get 03\ Mi\ Nuera.ogg
    get 03 Mi Nuera.ogg (from localrsync...)
    rsync: link_stat "/home/user/annex/1X/39/WORM-s6296772-m1311874383--03" failed: No such file or directory (2)
    rsync: link_stat "/home/user/Mi" failed: No such file or directory (2)
    rsync: change_dir "/home/user/Nuera.ogg" failed: No such file or directory (2)
    rsync: link_stat "/home/user/Mi" failed: No such file or directory (2)
    rsync: link_stat "/home/user/Nuera.ogg" failed: No such file or directory (2)

    sent 8 bytes  received 12 bytes  13.33 bytes/sec
    total size is 0  speedup is 0.00
    rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1526) [Receiver=3.0.7]

      rsync failed -- run git annex again to resume file transfer
      Unable to access these remotes: localrsync
      Try making some of these repositories available:
            b8b1ea7a-b93f-11e0-b712-d7bffb6e61e6  -- localrsync
    failed
    git-annex: 1 failed

> [[fixed|done]] --[[Joey]]


code:
### Please describe the problem.

I created an encrypted rsync remote with a username (user@host). The rsync command issued by git-annex doesn't contain the username. I solved the problem using .ssh/config.

### What steps will reproduce the problem?

[[!format sh """
# Add remote like that
git-annex initremote encrsync type=rsync rsyncurl=user@xxx.rsync.net:rsync/X keyid=0xXXX
# Sync it
git-annex sync --content

# You'll see
$> ps ax | grep rsync
30652 pts/3    S+     0:00 /home/ganwell/bin/git-annex.linux//lib64/ld-linux-x86-64.so.2 --library-path /home/ganwell/bin/git-annex.linux//etc/ld.so.conf.d:/home/ganwell/bin/git-annex.linux//usr/lib/x86_64-linux-gnu/gconv:/home/ganwell/bin/git-annex.linux//usr/lib/x86_64-linux-gnu/libc:/home/ganwell/bin/git-annex.linux//usr/lib:/home/ganwell/bin/git-annex.linux//usr/lib/x86_64-linux-gnu:/home/ganwell/bin/git-annex.linux//lib64:/home/ganwell/bin/git-annex.linux//lib/x86_64-linux-gnu: /home/ganwell/bin/git-annex.linux/shimmed/rsync/rsync xxx.rsync.net:rsync/X/9fa/634/'GPGHMACSHA1--X/GPGHMACSHA1--X
"""]]

### What version of git-annex are you using? On what operating system?

OS: Linux

Ver: git-annex version: 5.20140210-g1e0a3ad

Type: prebuilt

### 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

# End of transcript or log.
"""]]

> Argh! How did that break? I know it used to work.
> I have fixed it, unfortunately the fix was too late for today's release,
> but it will be available in autobuilds shortly.
> [[fixed|done]] --[[Joey]]


code:
Make 2 million files and `git annex add` (indirect mode), fails at the end:

<pre>
add 999996 ok
add 999997 ok
(Recording state in git...)
[2014-06-21 11:49:28 JEST] feed: xargs ["-0","git","--git-dir=/home/joey/tmp/r/.git","--work-tree=/home/joey/tmp/r","add","--"]
add 999998 ok
add 999999 ok
[2014-06-21 11:49:49 JEST] read: git ["--git-dir=/home/joey/tmp/r/.git","--work-tree=/home/joey/tmp/r","diff","--name-only","--diff-filter=T","-z","--","."]
(Recording state in git...)
[2014-06-21 11:52:24 JEST] feed: xargs ["-0","git","--git-dir=/home/joey/tmp/r/.git","--work-tree=/home/joey/tmp/r","add","--"]
Stack space overflow: current size 8388608 bytes.
Use `+RTS -Ksize -RTS' to increase it.
</pre>

> [[fixed|done]] --[[Joey]]


code:
[[!comment format=mdwn
 username="http://joeyh.name/"
 ip="209.250.56.55"
 subject="comment 1"
 date="2014-07-04T18:24:51Z"
 content="""
The diff-filter=T comes from when Command.Add runs its pass to find unlocked files. It's finished adding all the files, so it must either be that or the git-annex branch commit that's running out of memory, I think.
"""]]


code:
[[!comment format=mdwn
 username="http://joeyh.name/"
 ip="209.250.56.55"
 subject="comment 2"
 date="2014-07-04T18:36:49Z"
 content="""
Does not seem to be the diff-filter=T command that is the problem. It's not outputting a lot of files, and should stream over them even if it did.

The last xargs appears to be at or near the problem. It is called by Annex.Content.saveState, which first does a Annex.Queue.flush, followed by a Annex.Branch.commit. I suspect the problem is the latter; at this point there are 2 million files in .git/annex/journal waiting to be committed to the git-annex branch.

In the same big repo, I can add one more file and reproduce the problem running `git annex add $newfile`.
"""]]


code:
[[!comment format=mdwn
 username="http://joeyh.name/"
 ip="209.250.56.55"
 subject="comment 3"
 date="2014-07-04T19:26:00Z"
 content="""
Looking at the code, it's pretty clear why this is using a lot of memory:

<pre>
        fs <- getJournalFiles jl
        liftIO $ do
                h <- hashObjectStart g
                Git.UpdateIndex.streamUpdateIndex g
                        [genstream dir h fs]
                hashObjectStop h
        return $ liftIO $ mapM_ (removeFile . (dir </>)) fs
</pre>

So the big list in `fs` has to be retained in memory after the files are streamed to update-index, in order for them to be deleted!

Fixing is a bit tricky.. New journal files can appear while this is going on, so it can't just run getJournalFiles a second time to get the files to clean.
Maybe delete the file after it's been sent to git-update-index? But git-update-index is going to want to read the file, and we don't really know when it will choose to do so. It could wait a while after we've sent the filename to it, potentially.

Also, per [[!commit 750c4ac6c282d14d19f79e0711f858367da145e4]], we cannot delete the journal files until *after* the commit, or another git-annex process would see inconsistent data!

I actually think I am going to need to use a temp file to hold the list of files..
"""]]


code:
[[!comment format=mdwn
 username="http://joeyh.name/"
 ip="209.250.56.55"
 subject="comment 4"
 date="2014-07-04T19:38:18Z"
 content="""
While I fixed the problem analized above, it still runs out of memory in the same place. Must be other strictness problems..
"""]]


code:
[[!comment format=mdwn
 username="http://joeyh.name/"
 ip="209.250.56.55"
 subject="comment 5"
 date="2014-07-04T19:53:43Z"
 content="""
The other memory leak is in getJournalFiles itself!
"""]]


code:
[[!comment format=mdwn
 username="http://joeyh.name/"
 ip="209.250.56.55"
 subject="comment 6"
 date="2014-07-04T21:10:17Z"
 content="""
Actually, it is in getDirectoryContents itself, so not even in git-annex's code. Filed a bug w/patch: <https://ghc.haskell.org/trac/ghc/ticket/9266>

I do not feel this is serious enough to work around in git-annex with a fixed copy of getDirectoryContents, so I'll wait for that get fixed.

Testing with my patched getDirectoryContents, git-annex still uses up a lot of memory in this situation. It no longer blows the stack, but getDirectoryContents is still using entirely more memory than it needs to.
"""]]


code:
[[!comment format=mdwn
 username="http://joeyh.name/"
 ip="209.250.56.55"
 subject="comment 7"
 date="2014-07-04T22:09:38Z"
 content="""
I wrote my own getDirectoryContents' with different exception semantics and entirely fixed this now. git-annex's memory use remains stable at around 1.5 mb during the entire staging of the millions of files. git itself uses a few hundred mb ;)
"""]]


code:
[[!comment format=mdwn
 username="https://www.google.com/accounts/o8/id?id=AItOawmwjQzWgiD7_I3zw-_91rMRf_6qoThupis"
 nickname="Mike"
 subject="comment 8"
 date="2014-07-30T20:33:44Z"
 content="""
Great work Joeyh :-) I will install the new version soon. I is fantastic that you fixed this so thoroughly.
"""]]


code:
### Please describe the problem.

For an example I wanted to add different metadata to some test files,
but the outcome is that the last metadata gets applied to all three files. see transcript below.

### What steps will reproduce the problem?

1. Create a git annex repository
2. add a few files
3. add some metadata to the files, same keys, differnt values
4. watch the metadata, only the last added one is shown for all files

### What version of git-annex are you using? On what operating system?
    $cat /etc/debian_version; uname -a; git annex version
    7.4
    Linux jupiter 3.13.0ct #33 SMP PREEMPT Tue Jan 21 05:04:01 CET 2014 x86_64 GNU/Linux
    git-annex version: 5.20140306~bpo70+1
    build flags: Assistant Webapp Pairing S3 Inotify DBus XMPP Feeds Quvi TDFA
    key/value backends: SHA256E SHA1E SHA512E SHA224E SHA384E SHA256 SHA1 SHA512 SHA224 SHA384 WORM URL
    remote types: git gcrypt S3 bup directory rsync web tahoe glacier hook external
    local repository version: 5
    supported repository version: 5
    upgrade supported from repository versions: 0 1 2 4

### Please provide any additional information below.

Debian/Wheezy with git annex from backports. The test was done in /tmp which is a tmpfs.

[[!format sh """
$export LC_ALL=C
$mkdir /tmp/annextest
$cd /tmp/annextest
$git init
Initialized empty Git repository in /tmp/annextest/.git/
$git annex init
init  ok
(Recording state in git...)

$touch a.txt b.txt c.txt
$git annex add a.txt b.txt c.txt
add a.txt ok
add b.txt ok
add c.txt ok
(Recording state in git...)
$git commit -m init
[master (root-commit) 5470bdb] init
 3 files changed, 3 insertions(+)
 create mode 120000 a.txt
 create mode 120000 b.txt
 create mode 120000 c.txt

$git annex metadata a.txt -s foo=bar -s num=1
metadata a.txt
  foo=bar
  num=1
ok
(Recording state in git...)
$git annex metadata b.txt -s foo=baz -s num=2
metadata b.txt
  foo=baz
  num=2
ok
(Recording state in git...)
$git annex metadata c.txt -s foo=barf -s num=3
metadata c.txt
  foo=barf
  num=3
ok
(Recording state in git...)
$git annex metadata
metadata a.txt
  foo=barf
  num=3
ok
metadata b.txt
  foo=barf
  num=3
ok
metadata c.txt
  foo=barf
  num=3
ok
"""]]

> [[fixed|done]]; documentation improved --[[Joey]]


code:
[[!comment format=mdwn
 username="http://joeyh.name/"
 ip="209.250.56.41"
 subject="comment 1"
 date="2014-03-26T20:55:07Z"
 content="""
This is because metadata applies to the contents of files, and all 3 of your files have the same single content. I will update the documentation to make it more clear metadata works this way.
"""]]


code:
For the record, there is a slight weirdness with how git-annex
handles a signal like ctrl-c.

For example:

	joey@gnu:~/tmp/b>git annex copy a b --to origin
	copy a (checking origin...) (to origin...)
	SHA256-s104857600--20492a4d0d84f8beb1767f6616229f85d44c2827b64bdbfb260ee12fa1109e0e
	        3272   0%    0.00kB/s    0:00:00  ^C
	zsh: interrupt  git annex copy a --to origin
	joey@gnu:~/tmp/b>
	rsync error: unexplained error (code 130) at rsync.c(549) [sender=3.0.9]

Here git-annex exits before rsync has fully exited. Not a large problem
but sorta weird.

The culprit is `CmdLine.startup` in Utility.SafeCommand, which installs
a default signal handler for SIGINT, which causes it to immediatly
terminate git-annex. rsync, in turn, has its own SIGINT handler, which
prints the message, typically later.

(Why it prints that message and not its more usual message about having
received a signal, I'm not sure?)

It's more usual for a `system` like thing to block SIGINT, letting the child
catch it and exit, and then detecting the child's exit status and terminating.
However, since rsync *is* trapping SIGINT, and exiting nonzero explicitly,
git-annex can't tell that rsync failed due to a SIGINT by examining the
`waitpid` result.
And, git-annex typically doesn't stop when a single child fails. In the
example above, it would go on to copy `b` after a ctrl-c!

A further complication is that git-annex is itself a child process
of git, which does not block SIGINT either. So if git-annex blocks SIGINT,
it will be left running in the background after git exits, and continuing
with further actions too. (Perhaps its SIGINT handling is a bug in git.)

Now, rsync does have a documented exit code it uses after a SIGINT.
But other programs git-annex runs generally do not. So it would be possible
to special case in support for rsync, blocking SIGINT while running it,
noticing it exited with 20, and git-annex then stopping. But this is
ugly and failure prone if rsync's code 20 changes. And it only
would fix the rsync case, not helping with other commands like wget, unless
it assumes they never trap SIGINT on their own.

Which is why the current behavior of not blocking SIGINT was chosen,
as a less bad alternative. Still, I'd like to find a better one.
--[[Joey]]

[[!tag confirmed]]


code:
### Please describe the problem.

ATM git annex assistant app is the largest one installed on my phone.  I simply keep hitting the available storage space limits and keep pruning some apps

According to file
$> file lib/armeabi/lib.git-annex.so
lib/armeabi/lib.git-annex.so: ELF 32-bit LSB  executable, ARM, EABI5 version 1 (SYSV), dynamically linked (uses shared libs), not stripped
so largest annex's .so is 133M and is not stripped.  stripping it seems to half its size:

$> ls -l lib.git-annex.so
62052 -rw------- 1 yoh yoh 63468304 Nov 25 22:21 lib.git-annex.so
$> file lib.git-annex.so
lib.git-annex.so: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), stripped

so may be it could be the first step to make the .apk and installation itself more lightweight and thus easier to "manage"

thanks in advance

### What steps will reproduce the problem?

install provided .apk on Android

### What version of git-annex are you using? On what operating system?

Android, just fetched the most recent "release" apk from the
http://downloads.kitenet.net/git-annex/android/current/4.0/git-annex.apk
Last-Modified: Mon, 18 Nov 2013 11:57:25 GMT

### 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

# End of transcript or log.
"""]]

> Seems that I lost stripping of the git-annex binary when adding the build
> for the newer android versions. [[fixed|done]] (There is not otherwise
> much way to shrink the size.) --[[Joey]]


code:
[[!comment format=mdwn
 username="http://yarikoptic.myopenid.com/"
 nickname="site-myopenid"
 subject="sure there is no other ways to shrink?"
 date="2013-11-27T04:26:35Z"
 content="""
Might be quite a stretch but it is hard to grasp that all 60MB are really needed... although with haskell -- it might indeed be the case, but I thought that may be there could be some symbols pulled in which aren't used, and for which when in gcc/ld world there are ways to get rid of them, e.g. -dead_strip (just excercising ideas)

"""]]


code:
[[!comment format=mdwn
 username="http://joeyh.name/"
 ip="209.250.56.64"
 subject="comment 2"
 date="2013-11-27T04:55:51Z"
 content="""
The git-annex binary is around 45 mb on Linux. The android binary statically links a few additional C libraries, so is slightly larger.

The only way I know of to potentially shrink it is to fix certian ghc / ld interactions that, in my limited understanding, cause functions that are never used to be linked into the binary if another function in the same file (or module) is used. That might half its size or something.
"""]]


code:
### Please describe the problem.

When I try to add remote ssh server repository it fails with an error:

Internal Server Error
ssh-keygen failed"

### What steps will reproduce the problem?
1. Select "Add another repository", then choose "Remote server", enter credentials.
2. On the page "Ready to add remote server" click any choice ("Use a git repository on the server" or "Use an encrypted rsync repository on the server")
3. Error is raised

### What version of git-annex are you using? On what operating system?
git-annex version 4.20130922-g7dc188a

Fedora 18 x86_64

### 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

[2013-10-03 19:27:27 NOVT] main: starting assistant version 4.20130922-g7dc188a
(scanning...) [2013-10-03 19:27:27 NOVT] Watcher: Performing startup scan
(started...)
ssh-keygen: symbol lookup error: /lib64/libldap-2.4.so.2: undefined symbol: ber_sockbuf_io_udp
ssh-keygen: symbol lookup error: /lib64/libldap-2.4.so.2: undefined symbol: ber_sockbuf_io_udp
ssh-keygen: symbol lookup error: /lib64/libldap-2.4.so.2: undefined symbol: ber_sockbuf_io_udp
ssh-keygen: symbol lookup error: /lib64/libldap-2.4.so.2: undefined symbol: ber_sockbuf_io_udp
ssh-keygen: symbol lookup error: /lib64/libldap-2.4.so.2: undefined symbol: ber_sockbuf_io_udp
ssh-keygen: symbol lookup error: /lib64/libldap-2.4.so.2: undefined symbol: ber_sockbuf_io_udp
ssh-keygen: symbol lookup error: /lib64/libldap-2.4.so.2: undefined symbol: ber_sockbuf_io_udp
ssh-keygen: symbol lookup error: /lib64/libldap-2.4.so.2: undefined symbol: ber_sockbuf_io_udp
ssh-keygen: symbol lookup error: /lib64/libldap-2.4.so.2: undefined symbol: ber_sockbuf_io_udp
[2013-10-03 19:55:23 NOVT] call: ssh-keygen ["-P","","-f","/tmp/git-annex-keygen.0/key"]
ssh-keygen: symbol lookup error: /lib64/libldap-2.4.so.2: undefined symbol: ber_sockbuf_io_udp

# End of transcript or log.
"""]]

> Added ssh-keygen to bundle. [[fixed|done]] --[[Joey]]


code:
[[!comment format=mdwn
 username="http://joeyh.name/"
 ip="108.236.230.124"
 subject="comment 1"
 date="2013-11-08T18:28:37Z"
 content="""
Apologies for not following up on this bug sooner..

It seems to me that your system has a broken ssh-keygen program. You didn't say how you installed git-annex, but based on the git rev in the version number, I'm guessing you either built it yourself, or you're using the standalone tarball I build.

In the case of the latter, it didn't include ssh-keygen, so would try to use the one that comes with fedora. It seems likely that the problem comes from the libraries included in the bundle being used with a binary not in the bundle, that in turn is also using additional libraries.

So, I think I should add ssh-keygen to the standalone bundle!
"""]]


code:
### Please describe the problem.

When pairing two machines with git-annex assistant, the assistant kept asking for the ssh password.  Checking the git-annex daemon logs, I saw that ssh was refusing to use the key the assistant had created because it was group readable (see below for the log extract).

### What steps will reproduce the problem?

The assistant was installed from the ubuntu precise ppa backport on an up-to-date copy of ubuntu precise.
It was started using "git-annex webapp --listen=XYZ".
This was done on two machines on the same network.
Created a repository using the web-app, the same on both machines.
Did a pair request.  This initially worked fine, until it got to the point of using ssh, when it started asking for the password many many  times.

### What version of git-annex are you using? On what operating system?

git-annex version: 5.20140306
build flags: Assistant Webapp Pairing S3 WebDAV Inotify DBus XMPP Feeds Quvi TDFA CryptoHash
key/value backends: SHA256E SHA1E SHA512E SHA224E SHA384E SKEIN256E SKEIN512E SHA256 SHA1 SHA512 SHA224 SHA384 SKEIN256 SKEIN512 WORM URL
remote types: git gcrypt S3 bup directory rsync web webdav tahoe glacier hook external
local repository version: 5
supported repository version: 5
upgrade supported from repository versions: 0 1 2 4

Ubuntu 12.04.4 LTS

### 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

(started...) Generating public/private rsa key pair.
Your identification has been saved in /tmp/git-annex-keygen.0/key.
Your public key has been saved in /tmp/git-annex-keygen.0/key.pub.
The key fingerprint is:
2b:f4:28:35:72:2c:9e:5b:d3:1d:d1:a1:b7:c7:a5:34 ABC@XYZ
The key's randomart image is:
+--[ RSA 2048]----+
|            .    |
|           o .   |
|          o o E .|
|     .     o + + |
|    o * S . . +  |
|   . B = o . .   |
|    + = + .      |
|     + o         |
|    .            |
+-----------------+
[2014-03-14 13:35:45 GMT] main: Pairing in progress
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0620 for 'ABC/.ssh/git-annex/key.git-annex-XYZ_annex' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: ABC/.ssh/git-annex/key.git-annex-XYZ_annex
(merging XYZ_annex/git-annex into git-annex...)

# End of transcript or log.
"""]]

> [[Fixed|done]]; the code made sure the file did not have any group or
> world read bits, but did not clear write bits. --[[Joey]]


code:
### Please describe the problem.

Lots of issues setting up assistant using SSH running on non-standard ports. Tested local pairing (which did seem to show other computer, but then wouldn't sync) and Remote Server.

### What steps will reproduce the problem?

Change Port 22 in /etc/ssh/sshd_config to Port 9999, restart ssh on both computers. With a clean local .ssh/config and directory, try to set up local pairing or remote server. It appears to work, especially if XMPP is working properly with remote server, but then some operations fail. (Iirc, metadata does sync but not data.) Ultimately, I had to go back to using Port 22 and using denyhosts/fail2ban (which occasionally erroneously ban my IP).

(Although it's probably not relevant to the bug report, it could be argued that this is security through obscurity. There is some truth in this, but scanning an entire machine is 65,535 times slower than scanning just port 22, so it introduces a real cost to bulk scanning. I almost never, ever have attacks on random ports, whereas I have dozens per day on each server on port 22, and often thousands of attacks.)

### What version of git-annex are you using? On what operating system?

When I was experiencing this issue, I was running the default on Jessie/Wheezy. Now I'm running the latest (via auto-update and distributed binary) but don't know if this is still an issue with latest versions (I switched to 22 as a workaround).

[[!tag moreinfo]]


code:
[[!comment format=mdwn
 username="http://joeyh.name/"
 ip="108.236.230.124"
 subject="comment 1"
 date="2014-06-05T16:37:27Z"
 content="""
I'm going to assume that the \"jessie/wheezy\" is a typo, since those are two completely different versions. It sounds to me like you were using the git-annex 3.x distributed with debian stable.

I cannot reproduce ssh port issues with the current release, and there have been ssh port fixes in the over 2 years since the version in Debian stable.
"""]]


code:
[[!comment format=mdwn
 username="jamieson"
 ip="71.11.173.17"
 subject="comment 2"
 date="2014-06-05T16:50:20Z"
 content="""
Jessie on one machine, Wheezy on the other; exactly, that is the version I was using. Git Annex is awesome. Thanks!!
"""]]


code:
[[!comment format=mdwn
 username="http://joeyh.name/"
 ip="108.236.230.124"
 subject="comment 3"
 date="2014-06-05T16:50:30Z"
 content="""
I did notice a problem where the same ssh config stanza was used if the webapp set up a repository on a host first using one port, and later using a different port. I've fixed that.
"""]]


code:
[[!comment format=mdwn
 username="http://joeyh.name/"
 ip="108.236.230.124"
 subject="comment 4"
 date="2014-06-05T16:51:42Z"
 content="""
Did the failure occur on the machine running jessie, or on the machine running wheezy?
"""]]


code:
[[!comment format=mdwn
 username="jamieson"
 ip="71.11.173.17"
 subject="comment 5"
 date="2014-06-05T16:56:33Z"
 content="""
I'm not sure. I'll do some more testing!
"""]]


code:
Let's say that http://people.collabora.com/~alsuren/git/fate-suite.git/ is a bare git repo. It has been 'git update-server-info'd so that it can be served on a dumb http server.

The repo is also a git annex remote, created using the following commands:

* git remote add alsuren git+ssh://people.collabora.co.uk/user/alsuren/public_html/fate-suite.git
* git push alsuren --all
* git annex copy --to=alsuren

so http://people.collabora.com/~alsuren/git/fate-suite.git/annex is a valid git annex (though listing dirs is forbidden, so you need to know the filenames ahead of time).

I would like to be able to use the following commands to get a clone of the repo:

* git clone http://people.collabora.com/~alsuren/git/fate-suite.git/
* cd fate-suite
* git annex get

This would allow contributors to quickly get a copy of our upstream repo and start contributing with minimal bandwidth/effort.

> This is now supported.. I look forward to seeing your project using it!
> --[[Joey]] [[!tag done]]


code:
### Please describe the problem.

The documentation of `git annex sync` states

> The sync process involves first committing all local changes, then fetching and merging […]
> You can use standard git commands to do each of those steps  by  hand,  or  if  you
> don't want to worry about the details, you can use sync.

The documentation of `alwasycommit` states

> By default, git-annex automatically commits data to the git-annex branch after each
> command is run. To disable these commits, set to false. Then data will only be
> committed when running `git annex merge` (or by automatic merges) or `git annex sync`.

In fact, however, `git annex sync` will not commit or will not commit some pieces of information when `alwasycommit` is false. This leads to various problems, the first of which is that cloned repositories do not have information about the other remotes.

It is hard to work around this problem because `git commit` cannot be used in direct mode.

This problem does not show up when using local, non over-the-network, remotes.

### What steps will reproduce the problem?

The following script (available at <https://gist.github.com/gioele/5ffeff8988a535164e5b>) will reproduce this problem. If you do not have SSH running on localhost, you can change the `h` variable to point to another host.

    #!/bin/sh -x

    set -e ; set -u
    export LC_ALL=C

    h=${h:-localhost}
    dr="/tmp/annex"

    chmod a+rwx -R pc1 pc2 || true
    rm -Rf pc1 pc2

    # create central git repo
    ssh $h "chmod a+rwx -R ${dr}/Docs.git" || true
    ssh $h "rm -Rf ${dr}/Docs.git"
    ssh $h "mkdir -p ${dr}/Docs.git"
    ssh $h "cd ${dr}/Docs.git ; git init --bare"

    d=$(pwd)

    # populate repo in PC1
    mkdir -p pc1/Docs
    cd pc1/Docs
    echo AAA > fileA
    echo BBB > fileB

    git init
    git config annex.alwayscommit false # change to true to solve this problem

    git remote add origin $h:$dr/Docs.git
    git fetch --all

    # simulate a host without git-annex
    git config remote.origin.annex-ignore true

    git annex init "pc1"
    git annex info

    git annex direct
    git annex sync origin

    git annex add .
    git annex sync

    # re-create repo on PC2
    cd $d
    mkdir -p pc2
    cd pc2
    git clone $h:$dr/Docs.git
    cd Docs

    git config remote.origin.annex-ignore true

    git annex init "pc2"
    git annex direct
    git annex info

    # git annex info shows only pc2, shouldn't pc1 be there as well?

### What version of git-annex are you using? On what operating system?

git-annex version: 5.20140708-g8c9c55c on Ubuntu 12.04.4

> I have improved the documentation to not imply that sync/merge are a
> special case. They honor the autocommit settings more or less
> intentionally, and to get a commit to be made, just pass -c
> autocommit=true when running them. [[done]] --[[Joey]]


code:
[[!comment format=mdwn
 username="http://svario.it/gioele"
 nickname="gioele"
 subject="comment 1"
 date="2014-07-29T14:25:19Z"
 content="""
For the records, the solution Joey suggested works but the correct option to pass to `sync` is `-c annex.alwayscommit=true`.
"""]]


code:
### Please describe the problem.

git annex test reports failures

### What steps will reproduce the problem?

running git annex test (from standard cmd, with: git version: 1.7.11.msysgit.1)

### What version of git-annex are you using? On what operating system?

5.20131118 from installers

### Please provide any additional information below.

operating system:

windows XP, NTFS = 1 FAIL
windows 7, NTFS = 2 FAILs

see attachment for full log of git annex test output

> Reproduced and [[fixed|done]]. --[[Joey]]


code:
[[!comment format=mdwn
 username="https://www.google.com/accounts/o8/id?id=AItOawkJafmCf-sg9_OM0pynFYM3AO4WCgJiaMI"
 nickname="Michele"
 subject="seems i'm not allowed to attach full logs."
 date="2013-11-23T16:06:17Z"
 content="""
here's an excerpt (the context of FAIL), hopefully i've interpreted correctely the test begin message.

win7:

        unannex (with copy):                              Detected a filesystem without fifo support.
  Disabling ssh connection caching.
  Detected a crippled filesystem.
  Enabling direct mode.
get foo (merging origin/git-annex into git-annex...)
(Recording state in git...)
(from origin...)
foo
          20 100%    0.00kB/s    0:00:00
          20 100%    0.00kB/s    0:00:00 (xfer#1, to-check=0/1)

sent 87 bytes  received 31 bytes  236.00 bytes/sec
total size is 20  speedup is 0.17
ok
(Recording state in git...)
unannex foo
git-annex: M:\gitannex.test\.t\tmprepo4\.git\annex\objects\6cd\e82\SHA256E-s20--e394a389d787383843decc5d3d99b6d184ffa5fddeec23b911f9ee7fc8b9ea77\SHA256E-s20--e394a389d787383843decc5d3d99b6d184ffa5fddeec23b911f9ee7fc8b9ea77.map4432.tmp: MoveFileEx \"M:\\gitannex.test\\.t\\tmprepo4\\.git\\annex\\objects\\6cd\\e82\\SHA256E-s20--e394a389d787383843decc5d3d99b6d184ffa5fddeec23b911f9ee7fc8b9ea77\\SHA256E-s20--e394a389d787383843decc5d3d99b6d184ffa5fddeec23b911f9ee7fc8b9ea77.map4432.tmp\" \"M:\\gitannex.test\\.t\\tmprepo4\\.git\\annex\\objects\\6cd\\e82\\SHA256E-s20--e394a389d787383843decc5d3d99b6d184ffa5fddeec23b911f9ee7fc8b9ea77\\SHA256E-s20--e394a389d787383843decc5d3d99b6d184ffa5fddeec23b911f9ee7fc8b9ea77.map\": permission denied (Access is denied.)
failed
git-annex: unannex: 1 failed
FAIL

		conflict_resolution (mixed directory and file):   Detected a filesystem without fifo support.
	  Disabling ssh connection caching.
	  Detected a crippled filesystem.
	  Enabling direct mode.
	  Detected a filesystem without fifo support.
	  Disabling ssh connection caching.
	  Detected a crippled filesystem.
	  Enabling direct mode.
	add conflictor (checksum...) ok
	(Recording state in git...)
	(merging origin/git-annex origin/synced/git-annex into git-annex...)
	(Recording state in git...)
	commit
	ok
	pull origin bash.exe: warning: could not find /tmp, please create!

	ok
	push origin bash.exe: warning: could not find /tmp, please create!
	To M:/gitannex.test/.t\repo
	   32fb7c0..38147e0  git-annex -> synced/git-annex
	   7684984..4116595  annex/direct/master -> synced/master

	ok
	add conflictor/subfile (checksum...) ok
	(Recording state in git...)
	(merging origin/git-annex origin/synced/git-annex into git-annex...)
	(Recording state in git...)
	commit
	ok
	pull origin bash.exe: warning: could not find /tmp, please create!
	From M:/gitannex.test/.t\repo
	   7684984..4116595  master     -> origin/master
	   32fb7c0..38147e0  synced/git-annex -> origin/synced/git-annex
	   7684984..4116595  synced/master -> origin/synced/master
	Adding conflictor/subfile
	CONFLICT (directory/file): There is a directory with name conflictor in HEAD. Adding conflictor as conflictor~refs_remotes_origin_synced_master
	Automatic merge failed; fix conflicts and then commit the result.
	Ignoring path ./conflictor.variant-cc12
	conflictor: needs merge
	[annex/direct/master 27c52e4] git-annex automatic merge conflict fix

	(Recording state in git...)

	  Merge conflict was automatically resolved; you may want to examine the result.
	ok
	(merging origin/synced/git-annex into git-annex...)
	(Recording state in git...)
	push origin bash.exe: warning: could not find /tmp, please create!
	To M:/gitannex.test/.t\repo
	   38147e0..02916ee  git-annex -> synced/git-annex
	   4116595..27c52e4  annex/direct/master -> synced/master

	ok
	commit
	ok
	pull r2 bash.exe: warning: could not find /tmp, please create!
	From ../../.t\tmprepo35
	 * [new branch]      annex/direct/master -> r2/annex/direct/master
	 * [new branch]      git-annex  -> r2/git-annex
	 * [new branch]      master     -> r2/master
	 * [new branch]      synced/master -> r2/synced/master
	Updating 4116595..27c52e4
	Fast-forward
	 conflictor         | 1 -
	 conflictor/subfile | 1 +
	 2 files changed, 1 insertion(+), 1 deletion(-)
	 delete mode 120000 conflictor
	 create mode 120000 conflictor/subfile
	Already up-to-date.

	ok
	(merging r2/git-annex into git-annex...)
	FAIL

windowsXP:

    conflict_resolution (mixed directory and file):   Detected a filesystem without fifo support.
  Disabling ssh connection caching.
  Detected a crippled filesystem.
  Enabling direct mode.
  Detected a filesystem without fifo support.
  Disabling ssh connection caching.
  Detected a crippled filesystem.
  Enabling direct mode.
add conflictor (checksum...) ok
(Recording state in git...)
(merging origin/git-annex origin/synced/git-annex into git-annex...)
(Recording state in git...)
commit
ok
pull origin bash.exe: warning: could not find /tmp, please create!

ok
push origin bash.exe: warning: could not find /tmp, please create!
To C:/Documents and Settings/Silvia/.t\repo
   edd69f1..83c6a5a  git-annex -> synced/git-annex
   bed393e..978ac14  annex/direct/master -> synced/master

ok
add conflictor/subfile (checksum...) ok
(Recording state in git...)
(merging origin/git-annex origin/synced/git-annex into git-annex...)
(Recording state in git...)
commit
ok
pull origin bash.exe: warning: could not find /tmp, please create!
From C:/Documents and Settings/Silvia/.t\repo
   bed393e..978ac14  master     -> origin/master
   edd69f1..83c6a5a  synced/git-annex -> origin/synced/git-annex
   bed393e..978ac14  synced/master -> origin/synced/master
Adding conflictor/subfile
CONFLICT (directory/file): There is a directory with name conflictor in HEAD. Adding conflictor as conflictor~refs_remotes_origin_synced_master
Automatic merge failed; fix conflicts and then commit the result.
Ignoring path ./conflictor.variant-cc12
conflictor: needs merge
[annex/direct/master e3e39fc] git-annex automatic merge conflict fix

(Recording state in git...)

  Merge conflict was automatically resolved; you may want to examine the result.
ok
(merging origin/synced/git-annex into git-annex...)
(Recording state in git...)
push origin bash.exe: warning: could not find /tmp, please create!
To C:/Documents and Settings/Silvia/.t\repo
   83c6a5a..e1a1678  git-annex -> synced/git-annex
   978ac14..e3e39fc  annex/direct/master -> synced/master

ok
commit
ok
pull r2 bash.exe: warning: could not find /tmp, please create!
From ../../.t\tmprepo35
 * [new branch]      annex/direct/master -> r2/annex/direct/master
 * [new branch]      git-annex  -> r2/git-annex
 * [new branch]      master     -> r2/master
 * [new branch]      synced/master -> r2/synced/master
Updating 978ac14..e3e39fc
Fast-forward
 conflictor         | 1 -
 conflictor/subfile | 1 +
 2 files changed, 1 insertion(+), 1 deletion(-)
 delete mode 120000 conflictor
 create mode 120000 conflictor/subfile
Already up-to-date.

ok
(merging r2/git-annex into git-annex...)
FAIL
"""]]


code:
It seems that commit bc5c54c987f548505a3877e8a0e460abe0b2a081 introduced some linux specific things...

<pre>
hsc2hs Touch.hsc
Touch.hsc: In function ‘main’:
Touch.hsc:46: error: ‘UTIME_OMIT’ undeclared (first use in this function)
Touch.hsc:46: error: (Each undeclared identifier is reported only once
Touch.hsc:46: error: for each function it appears in.)
Touch.hsc:48: error: ‘UTIME_NOW’ undeclared (first use in this function)
Touch.hsc:67: error: ‘AT_FDCWD’ undeclared (first use in this function)
Touch.hsc:68: error: ‘AT_SYMLINK_NOFOLLOW’ undeclared (first use in this function)
compiling Touch_hsc_make.c failed
command was: /usr/bin/gcc -c -m32 -I/Library/Frameworks/GHC.framework/Versions/612/usr/lib/ghc-6.12.3/include/ Touch_hsc_make.c -o Touch_hsc_make.o
make: *** [Touch.hs] Error 1
</pre>

I dug around the OSX documentation and fcntl.h header file and it seems that UTIME_OMIT, UTIME_NOW, AT_FDCWD and AT_SYMLINK_NOFOLLOW aren't defined (at least on OSX). I suspect the BSD's in general will have problems compiling git-annex.

[[!meta title="annexed symlink mtime matching code is disabled on non-linux systems; needs testing"]]
[[!tag confirmed]]


code:
[[!comment format=mdwn
 username="http://joey.kitenet.net/"
 nickname="joey"
 subject="comment 1"
 date="2011-03-16T16:07:26Z"
 content="""
Hmm.. is utimensat available at all?

I've committed an update that may convince at least some compilers to expose this newer POSIX stuff. I don't know if it will help, please let me know.
"""]]


code:
[[!comment format=mdwn
 username="https://www.google.com/accounts/o8/id?id=AItOawkSq2FDpK2n66QRUxtqqdbyDuwgbQmUWus"
 nickname="Jimmy"
 subject="comment 2"
 date="2011-03-16T16:49:18Z"
 content="""
Just pulled the changes, it still fails to build. utimensat doesn't seem to exist on OSX 10.6.6.
"""]]


code:
[[!comment format=mdwn
 username="http://joey.kitenet.net/"
 nickname="joey"
 subject="comment 3"
 date="2011-03-16T17:46:40Z"
 content="""
Alright, I've added #idefs and the symlink timestamp mirroring feature will be unavailable on OSX until I get a version that works there.
"""]]


code:
[[!comment format=mdwn
 username="https://www.google.com/accounts/o8/id?id=AItOawkSq2FDpK2n66QRUxtqqdbyDuwgbQmUWus"
 nickname="Jimmy"
 subject="comment 4"
 date="2011-03-16T20:32:01Z"
 content="""
Just tried it out on my mac and it's working again. I guess this issue could be closed for now.
"""]]


code:
[[!comment format=mdwn
 username="http://joey.kitenet.net/"
 nickname="joey"
 subject="comment 5"
 date="2011-03-20T18:12:59Z"
 content="""
I'm leaving this bug open because this feature, however minor is not available on OSX and BSD.

I have added a partial implementation using lutimes(3), which should be available on the BSDs. However, it's ifdefed out due to a casting problem: The TimeSpec uses a CTime, while lutimes uses a CLong. These data types may be internally the same on some or all platforms, so if you want this feature you can try changing the \"ifdef 0\" in Touch.hsc to 1 and try it, see if \"git annex add\" mirrors file modification time in created symlinks, and let me know.
"""]]


code:
[[!comment format=mdwn
 username="https://www.google.com/accounts/o8/id?id=AItOawkSq2FDpK2n66QRUxtqqdbyDuwgbQmUWus"
 nickname="Jimmy"
 subject="comment 6"
 date="2011-03-20T20:48:41Z"
 content="""
ok, pulling the latest master and building on OSX now does this...

ghc -O2 -Wall -ignore-package monads-fd --make git-annex
[ 1 of 63] Compiling Touch            ( Touch.hs, Touch.o )

Touch.hsc:24:0:
    The type signature for `touchBoth' lacks an accompanying binding

Touch.hsc:27:26: Not in scope: `touchBoth'
make: *** [git-annex] Error 1

changing the #if 0 to 1 gives this...

ghc -O2 -Wall -ignore-package monads-fd --make git-annex
[ 1 of 63] Compiling Touch            ( Touch.hs, Touch.o )

Touch.hsc:95:43:
    Couldn't match expected type `CLong' against inferred type `CTime'
    In the second argument of `(\ hsc_ptr
                                    -> pokeByteOff hsc_ptr 0)', namely
        `(sec :: CLong)'
    In a stmt of a 'do' expression:
        (\ hsc_ptr -> pokeByteOff hsc_ptr 0) ptr (sec :: CLong)
    In the expression:
        do { (\ hsc_ptr -> pokeByteOff hsc_ptr 0) ptr (sec :: CLong);
             (\ hsc_ptr -> pokeByteOff hsc_ptr 4) ptr (0 :: CLong) }
make: *** [git-annex] Error 1

it seems that commit 6634b6a6b84a924f6f6059b5bea61f449d056eee has broken support for OSX.

"""]]


code:
[[!comment format=mdwn
 username="http://joey.kitenet.net/"
 nickname="joey"
 subject="comment 7"
 date="2011-03-20T22:06:25Z"
 content="""
Fixed that, and removed the impossible cast so it can be built with #if 1
"""]]


code:
[[!comment format=mdwn
 username="https://www.google.com/accounts/o8/id?id=AItOawkSq2FDpK2n66QRUxtqqdbyDuwgbQmUWus"
 nickname="Jimmy"
 subject="comment 8"
 date="2011-03-21T08:52:18Z"
 content="""
Just tried building both of the code paths, and they seem to build and somewhat function on OSX. I have yet to confirm the functionality is working correctly, but so far it's looking good. (I somewhat care less about the utimes/mtimes of my files since I care more about the content :) )
"""]]


code:
### Please describe the problem.
'trust', 'dead', etc commands completing with 'ok' but fail to acknowledge contradiction in .git/config, causing confusion.

[[!format sh """
greg@x200s:~/Photos$ git-annex untrust home  # yes, bad remote name
untrust home ok
(Recording state in git...)
greg@x200s:~/Photos$ git-annex status  # /me is old-school and forgets
greg@x200s:~/Photos$ git-annex info
repository mode: indirect
trusted repositories: 2
	c0e4106e-2631-11e2-9749-1bfa37a61069 -- rose
 	c69d6fcc-18d1-11e2-9487-2fe6dbf0516b -- home (photos on eeepc)

....

greg@x200s:~/Photos$ git-annex dead home
dead home ok
(Recording state in git...)
greg@x200s:~/Photos$ git-annex info
repository mode: indirect
trusted repositories: 2
	c0e4106e-2631-11e2-9749-1bfa37a61069 -- rose
 	c69d6fcc-18d1-11e2-9487-2fe6dbf0516b -- home (photos on eeepc)
"""]]

The home remote has "annex-trustlevel=trusted" in .git/config

Maybe have those commands instead say "Hey, this is different than what you said explicitly in .git/config, ya sure? (y/n)" If y, overwrite config, if n, abort.

### What version of git-annex are you using? On what operating system?
5.20140127 on Debian

> [[Fixed|done]], it will now warn about this situation. --[[Joey]]


code:
As told in http://git-annex.branchable.com/bugs/OSX_app_issues/#comment-2a69d531bd3bb593c1a49dc8cdb34b1e the Mac OS 10.7.5 (Lion) build fails to run.

    $ /Applications/git-annex.app/Contents/MacOS/git-annex

    /Applications/git-annex.app/Contents/MacOS/runshell: line 25: syntax error near unexpected token `&'

Manually editing /Applications/git-annex.app/Contents/MacOS/runshell as told in http://git-annex.branchable.com/bugs/OSX_app_issues/#comment-5579c2150ad4d2ccc207a253fe57612a fixes the issue.

Furthermore, this build is quite outdated...

> [[fixed|done]] --[[Joey]]


code:
[[!comment format=mdwn
 username="http://joeyh.name/"
 ip="209.250.56.246"
 subject="comment 1"
 date="2013-11-14T15:26:01Z"
 content="""
This is unfortunate.. The Lion autobuilder is running, but has been failing for various reasons for some time, and I have not managed to get ahold of Jimmy to fix them. Also, that machine may be upgraded from Lion before too long.
"""]]


code:
[[!comment format=mdwn
 username="https://www.google.com/accounts/o8/id?id=AItOawkSq2FDpK2n66QRUxtqqdbyDuwgbQmUWus"
 nickname="Jimmy"
 subject="comment 2"
 date="2013-11-15T20:57:27Z"
 content="""
The builder is back, I was away from the office when it broke. It should be spitting out builds on a daily basis again.
"""]]


code:
### Please describe the problem.
(I assume) following your change to disallow changing the name of "here", I am unable to change the repository group of "here"

### What steps will reproduce the problem?
In webapp, edit "here", and try and change repository group.
It highlights the (now empty) name field, and says "value is required".

### What version of git-annex are you using? On what operating system?
git-annex version: 4.20130618-g333cb8e
Ubuntu 13.04

> [[fixed|done]] --[[Joey]]


code:
Trying to move files from a local remote that is not mounted:

	git-annex: Prelude.undefined

> [[fixed|done]] --[[Joey]]


code:
### Please describe the problem.

When using a git remote which doesn't support git-annex (f.e. gitlab) and is configured with `annex-ignore true` the remote is shown as `unfinished repository` in the webapp.

It would be nice if the webapp would recognize this and show the remote as git-only remote including sync-state and remote name (or even better: the remote details, like the URL to the remote)

### What steps will reproduce the problem?

Add a normal git remote and configure `git config remote.<name>.annex-ignore true`.
Start the webapp.

### What version of git-annex are you using? On what operating system?

    git-annex version: 4.20131101-gf59a6d1
    build flags: Assistant Webapp Pairing Testsuite S3 WebDAV Inotify DBus XMPP Feeds Quvi TDFA
    key/value backends: SHA256E SHA1E SHA512E SHA224E SHA384E SHA256 SHA1 SHA512 SHA224 SHA384 WORM URL
    remote types: git gcrypt S3 bup directory rsync web webdav glacier hook
    local repository version: 3
    default repository version: 3
    supported repository versions: 3 4
    upgrade supported from repository versions: 0 1 2

Kubuntu 13.10 x86_64

> [[fixed|done]] --[[Joey]]