### Please describe the problem. In the external special remote protocol, SETURLPRESENT (and SETURIPRESENT) doesn't seem to work. My expectation is that it will add a public URL for a file, as with `git annex addurl`, so that clones can retrieve it without enabling the special remote. Instead, the specified URL doesn't show up under `git annex whereis` and isn't used when fetching the file in a clone. Am I misunderstanding how SETURLPRESENT is supposed to work? ### What steps will reproduce the problem? See transcript below. I'm seeing this with [gcsannex](https://github.com/bgilbert/gcsannex), my external special remote. ### What version of git-annex are you using? On what operating system? 5.20150809-ga52b65a on Fedora 22 x86_64. ### Please provide any additional information below. [[!format sh """ # First, set up git-annex repository $ mkdir t $ cd t $ git init Initialized empty Git repository in /home/bgilbert/tmp/t/.git/ $ git annex init init ok (recording state in git...) $ cp ~/sample.jpg . $ git annex add sample.jpg add sample.jpg ok (recording state in git...) $ git commit -m 'sample' [master (root-commit) 692e208] sample 1 file changed, 1 insertion(+) create mode 120000 sample.jpg $ GOOGLE_APPLICATION_CREDENTIALS=../credentials.json git annex initremote test1 type=external externaltype=gcs encryption=none project=my-project public=yes initremote test1 ok (recording state in git...) # Copy file to special remote. Note the SETURLPRESENT. $ git annex whereis sample.jpg whereis sample.jpg (1 copy) d2ed9d95-3005-40cc-a743-227c38e0242a -- bgilbert@trumpeter:~/tmp/t [here] ok $ git annex copy -t test1 sample.jpg --debug [2015-08-09 19:20:28 EDT] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","show-ref","git-annex"] [2015-08-09 19:20:28 EDT] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","show-ref","--hash","refs/heads/git-annex"] [2015-08-09 19:20:28 EDT] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","log","refs/heads/git-annex..a2e464a88d86394ef071cdc1af3f36856b91b0e1","-n1","--pretty=%H"] [2015-08-09 19:20:28 EDT] chat: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","cat-file","--batch"] [2015-08-09 19:20:28 EDT] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","ls-files","--cached","-z","--","sample.jpg"] copy sample.jpg [2015-08-09 19:20:28 EDT] chat: git-annex-remote-gcs [] [2015-08-09 19:20:28 EDT] git-annex-remote-gcs --> VERSION 1 [2015-08-09 19:20:28 EDT] git-annex-remote-gcs <-- PREPARE [2015-08-09 19:20:28 EDT] git-annex-remote-gcs --> GETUUID [2015-08-09 19:20:28 EDT] git-annex-remote-gcs <-- VALUE e49a874a-5480-4e48-aa51-c6e34ee5991c [2015-08-09 19:20:28 EDT] git-annex-remote-gcs --> GETCONFIG project [2015-08-09 19:20:28 EDT] git-annex-remote-gcs <-- VALUE my-project [2015-08-09 19:20:28 EDT] git-annex-remote-gcs --> GETCONFIG location [2015-08-09 19:20:28 EDT] git-annex-remote-gcs <-- VALUE [2015-08-09 19:20:28 EDT] git-annex-remote-gcs --> GETCONFIG storageclass [2015-08-09 19:20:28 EDT] git-annex-remote-gcs <-- VALUE [2015-08-09 19:20:28 EDT] git-annex-remote-gcs --> GETCONFIG name [2015-08-09 19:20:28 EDT] git-annex-remote-gcs <-- VALUE test1 [2015-08-09 19:20:28 EDT] git-annex-remote-gcs --> GETCONFIG bucket [2015-08-09 19:20:28 EDT] git-annex-remote-gcs <-- VALUE [2015-08-09 19:20:28 EDT] git-annex-remote-gcs --> GETCONFIG public [2015-08-09 19:20:28 EDT] git-annex-remote-gcs <-- VALUE yes [2015-08-09 19:20:28 EDT] git-annex-remote-gcs --> GETCONFIG fileprefix [2015-08-09 19:20:28 EDT] git-annex-remote-gcs <-- VALUE [2015-08-09 19:20:28 EDT] git-annex-remote-gcs --> GETCONFIG encryption [2015-08-09 19:20:28 EDT] git-annex-remote-gcs <-- VALUE none [2015-08-09 19:20:28 EDT] git-annex-remote-gcs --> GETCREDS e49a874a-5480-4e48-aa51-c6e34ee5991c-creds-v1 [2015-08-09 19:20:28 EDT] git-annex-remote-gcs <-- CREDS [elided] [2015-08-09 19:20:29 EDT] git-annex-remote-gcs --> PREPARE-SUCCESS [2015-08-09 19:20:29 EDT] git-annex-remote-gcs <-- CHECKPRESENT SHA256E-s380682--"0494a188e8cb9feda674b983dc294b7992512fe56fadd040708d22b388d3c38d".jpg [2015-08-09 19:20:30 EDT] git-annex-remote-gcs --> SETURLMISSING SHA256E-s380682--"0494a188e8cb9feda674b983dc294b7992512fe56fadd040708d22b388d3c38d".jpg https://storage-download.googleapis.com/test1-e49a874a-5480-4e48-aa51-c6e34ee5991c/SHA256E-s380682--"0494a188e8cb9feda674b983dc294b7992512fe56fadd040708d22b388d3c38d".jpg [2015-08-09 19:20:30 EDT] git-annex-remote-gcs --> CHECKPRESENT-FAILURE SHA256E-s380682--"0494a188e8cb9feda674b983dc294b7992512fe56fadd040708d22b388d3c38d".jpg (to test1...) [2015-08-09 19:20:30 EDT] git-annex-remote-gcs <-- TRANSFER STORE SHA256E-s380682--"0494a188e8cb9feda674b983dc294b7992512fe56fadd040708d22b388d3c38d".jpg .git/annex/objects/K2/7X/SHA256E-s380682--"0494a188e8cb9feda674b983dc294b7992512fe56fadd040708d22b388d3c38d".jpg/SHA256E-s380682--"0494a188e8cb9feda674b983dc294b7992512fe56fadd040708d22b388d3c38d".jpg [2015-08-09 19:20:32 EDT] git-annex-remote-gcs --> SETURLPRESENT SHA256E-s380682--"0494a188e8cb9feda674b983dc294b7992512fe56fadd040708d22b388d3c38d".jpg https://storage-download.googleapis.com/test1-e49a874a-5480-4e48-aa51-c6e34ee5991c/SHA256E-s380682--"0494a188e8cb9feda674b983dc294b7992512fe56fadd040708d22b388d3c38d".jpg [2015-08-09 19:20:32 EDT] git-annex-remote-gcs --> TRANSFER-SUCCESS STORE SHA256E-s380682--"0494a188e8cb9feda674b983dc294b7992512fe56fadd040708d22b388d3c38d".jpg ok [2015-08-09 19:20:32 EDT] chat: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","hash-object","-w","--stdin-paths","--no-filters"] [2015-08-09 19:20:32 EDT] feed: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","update-index","-z","--index-info"] [2015-08-09 19:20:32 EDT] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","show-ref","--hash","refs/heads/git-annex"] (recording state in git...) [2015-08-09 19:20:32 EDT] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","write-tree"] [2015-08-09 19:20:32 EDT] chat: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","commit-tree","ed61e5bed8cac36eef5e3feb72c0e4165947c746","--no-gpg-sign","-p","refs/heads/git-annex"] [2015-08-09 19:20:32 EDT] call: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","update-ref","refs/heads/git-annex","6885483c56c1fc394b4ca518c6c5377147d4931c"] # The URL is not shown in whereis, but does exist (HEAD returns 200). $ git annex whereis sample.jpg whereis sample.jpg (2 copies) d2ed9d95-3005-40cc-a743-227c38e0242a -- bgilbert@trumpeter:~/tmp/t [here] e49a874a-5480-4e48-aa51-c6e34ee5991c -- [test1] ok $ curl -I 'https://storage-download.googleapis.com/test1-e49a874a-5480-4e48-aa51-c6e34ee5991c/SHA256E-s380682--"0494a188e8cb9feda674b983dc294b7992512fe56fadd040708d22b388d3c38d".jpg' | head -n 1 HTTP/1.1 200 OK # If I drop the file from this repository, make a new clone, and then # try to get the file in the clone without enabling the test1 remote, # git-annex does not fetch from the URL. $ git annex drop sample.jpg drop sample.jpg ok (recording state in git...) $ cd .. $ git clone t t2 Cloning into 't2'... done. $ cd t2 $ git annex init init (merging origin/git-annex into git-annex...) (recording state in git...) ok (recording state in git...) $ git annex sync commit ok pull origin ok push origin Counting objects: 6, done. Delta compression using up to 4 threads. Compressing objects: 100% (5/5), done. Writing objects: 100% (6/6), 699 bytes | 0 bytes/s, done. Total 6 (delta 2), reused 0 (delta 0) To /home/bgilbert/tmp/t * [new branch] git-annex -> synced/git-annex * [new branch] master -> synced/master ok $ git annex whereis sample.jpg whereis sample.jpg (1 copy) e49a874a-5480-4e48-aa51-c6e34ee5991c -- test1 ok $ git annex get sample.jpg get sample.jpg (not available) Try making some of these repositories available: e49a874a-5480-4e48-aa51-c6e34ee5991c -- test1 failed git-annex: get: 1 failed """]] > [[fixed|done]] --[[Joey]]