In experimenting with the web remote, I found that dropping a URL gave an error, but still succeeded, while re-adding the same URL fails to work correctly.

#What steps will reproduce the problem?

<pre>
/tmp $ dd if=/dev/zero of=/tmp/file.bin count=1024
1024+0 records in
1024+0 records out
524288 bytes (524 kB) copied, 0.0135652 s, 38.6 MB/s
/tmp $ mkdir /tmp/repo
/tmp $ cd /tmp/repo
/tmp/repo $ git init
Initialized empty Git repository in /tmp/repo/.git/
/tmp/repo $ git annex init "test"
init test ok
(Recording state in git...)
/tmp/repo $ git annex addurl file:///tmp/file.bin --file annexed.bin
######################################################################## 100.0%
(checksum...) ok
(Recording state in git...)
/tmp/repo $ git annex drop annexed.bin 
drop annexed.bin (checking file:///tmp/file.bin...) ok
(Recording state in git...)
/tmp/repo $ mv /tmp/file.bin /tmp/file2.bin 
/tmp/repo $ git annex get annexed.bin 
get annexed.bin (from web...) 
curl: (37) Couldn't open file /tmp/file.bin

  Unable to access these remotes: web

  Try making some of these repositories available:
        00000000-0000-0000-0000-000000000001 -- web
failed
git-annex: get: 1 failed
/tmp/repo $ git annex drop --from web annexed.bin --force
drop web annexed.bin
  removal from web not supported
failed
(Recording state in git...)
git-annex: drop: 1 failed
/tmp/repo $ git annex get annexed.bin 
get annexed.bin (not available) 
  No other repository is known to contain the file.
failed
git-annex: get: 1 failed
/tmp/repo $ mv /tmp/file2.bin /tmp/file.bin 
/tmp/repo $ git annex addurl file:///tmp/file.bin --file annexed.bin
addurl annexed.bin ok
/tmp/repo $ git annex whereis annexed.bin
whereis annexed.bin (0 copies) failed
git-annex: whereis: 1 failed
/tmp/repo $ git annex addurl file:///tmp/file.bin --file annexed2.bin
######################################################################## 100.0%
(checksum...) ok
(Recording state in git...)
/tmp/repo $ git annex whereis annexed.bin
whereis annexed.bin (1 copy)
        e2418e81-ec04-4091-aabe-ed75d65f93fa -- here (test)
ok
/tmp/repo $ git annex whereis annexed2.bin
whereis annexed2.bin (1 copy)
        e2418e81-ec04-4091-aabe-ed75d65f93fa -- here (test)
ok
/tmp/repo $ git annex drop annexed.bin
drop annexed.bin (unsafe)
  Could only verify the existence of 0 out of 1 necessary copies

  No other repository is known to contain the file.

  (Use --force to override this check, or adjust annex.numcopies.)
failed
git-annex: drop: 1 failed
/tmp/repo $ git annex drop annexed2.bin
drop annexed2.bin (unsafe)
  Could only verify the existence of 0 out of 1 necessary copies

  No other repository is known to contain the file.

  (Use --force to override this check, or adjust annex.numcopies.)
failed
git-annex: drop: 1 failed
/tmp/repo $ mv /tmp/file.bin /tmp/file2.bin 
/tmp/repo $ git annex addurl file:///tmp/file2.bin --file annexed.bin
addurl annexed.bin ok
(Recording state in git...)
/tmp/repo $ git annex whereis annexed2.bin 
whereis annexed2.bin (2 copies) 
        00000000-0000-0000-0000-000000000001 -- web
        e2418e81-ec04-4091-aabe-ed75d65f93fa -- here (test)

  web: file:///tmp/file.bin
  web: file:///tmp/file2.bin
ok
/tmp/repo $ mv /tmp/file2.bin /tmp/file.bin 
/tmp/repo $ git annex drop annexed.bin 
drop annexed.bin (checking file:///tmp/file.bin...) ok
(Recording state in git...)
/tmp/repo $ git annex get annexed.bin 
get annexed.bin (from web...) 
######################################################################## 100.0%
ok
(Recording state in git...)
/tmp/repo $ git annex drop annexed.bin 
drop annexed.bin (checking file:///tmp/file.bin...) ok
(Recording state in git...)
/tmp/repo $ mv /tmp/file.bin /tmp/file2.bin 
/tmp/repo $ git annex get annexed.bin 
get annexed.bin (from web...) 
curl: (37) Couldn't open file /tmp/file.bin
######################################################################## 100.0%
ok
(Recording state in git...)
</pre>

#What is the expected output? What do you see inst


When dropping one file and I see "git-annex: drop: 1 failed" I would expect the file to still be in the remote as far as git-annex is concerned.

When re-adding the URL, I expect the file to be re-added to the web remote. (note that it re-appears after adding the same file via a different URL)


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


3.20121112 on Gentoo Linux


#Please provide any additional information below.

This seems to be a corner case, and would probably have minimal impact on most people.

> Yeah, dropping from the web is pretty weird.
> 
> I guess it makes sense to do if a website stops having a file and you don't
> want git-annex to try to download from it anymore. So, I've made dropping
> from the web remove all urls associated with the file, rather than failing.
> 
> [[done]] --[[Joey]]
