### Please describe the problem. When using "`git annex addurl --file`" with an ftp url, the committed file is deleted after dropping the contents with --force (because git-annex can't determine if the ftp server contains a valid copy) and executing "`git annex get`". It's the "`git annex get`" command that deletes the file. This does not happen when using an http url. ### What steps will reproduce the problem? `git clone https://gist.github.com/sunny256/24f6c29645efd0aab4d9` and execute the bash script `runme`. There's more info in a long comment there, plus various flags you can enable/disable to test under different conditions. ### What version of git-annex are you using? On what operating system? Using the newest git-annex from in directory git-annex/linux/current/, 5.20150420-gb0ebb23. Have tested with versions way back to v5.20131221, they all behave the same. Using Debian GNU/Linux 7.8 (wheezy) on x86_64 with brand new git 2.4.0. ### 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 $ ./runme ================== git init ================== Initialized empty Git repository in /home/sunny/src/git/ga-bug/tmpdirawedsfkn/.git/ ================== git annex init ================== init ok (recording state in git...) ================== git commit, empty start commit ================== [master (root-commit) 6d5d623] Empty startcommit ================== git annex addurl ================== addurl README (downloading ftp://ftp.funet.fi/pub/Linux/mirrors/debian/README ...) --2015-05-02 03:28:59-- ftp://ftp.funet.fi/pub/Linux/mirrors/debian/README => '.git/annex/tmp/URL--ftp&c%%ftp.funet.fi%pub%Linux%mirrors%debian%README' Resolving ftp.funet.fi (ftp.funet.fi)... 193.166.3.2, 2001:708:10:9::20:2 Connecting to ftp.funet.fi (ftp.funet.fi)|193.166.3.2|:21... connected. Logging in as anonymous ... Logged in! ==> SYST ... done. ==> PWD ... done. ==> TYPE I ... done. ==> CWD (1) /pub/Linux/mirrors/debian ... done. ==> SIZE README ... 1495 ==> PASV ... done. ==> RETR README ... done. Length: 1495 (1.5K) (unauthoritative) 100%[================================================>] 1,495 --.-K/s in 0.01s 2015-05-02 03:29:00 (125 KB/s) - '.git/annex/tmp/URL--ftp&c%%ftp.funet.fi%pub%Linux%mirrors%debian%README' saved [1495] ok (recording state in git...) ================== git commit, add README ================== [master 264d597] Add README 1 file changed, 1 insertion(+) create mode 120000 README ================== git annex drop --force ================== drop README ok (recording state in git...) ================== git annex get ================== get README (from web...) --2015-05-02 03:29:00-- ftp://ftp.funet.fi/pub/Linux/mirrors/debian/README => '.git/annex/tmp/SHA256-s1495--8822780b87a880ca9956ac108812557044618859cecb07df488df57e8134e34f' Resolving ftp.funet.fi (ftp.funet.fi)... 193.166.3.2, 2001:708:10:9::20:2 Connecting to ftp.funet.fi (ftp.funet.fi)|193.166.3.2|:21... connected. Logging in as anonymous ... Logged in! ==> SYST ... done. ==> PWD ... done. ==> TYPE I ... done. ==> CWD (1) /pub/Linux/mirrors/debian ... done. ==> SIZE README ... 1495 ==> PASV ... done. ==> RETR README ... done. Length: 1495 (1.5K) (unauthoritative) 100%[================================================>] 1,495 --.-K/s in 0s 2015-05-02 03:29:02 (73.1 MB/s) - '.git/annex/tmp/SHA256-s1495--8822780b87a880ca9956ac108812557044618859cecb07df488df57e8134e34f' saved [1495] ok (recording state in git...) ================== ls -l ================== total 0 README is gone, should not happen Reached the end $ # End of transcript or log. """]] > workaround in place; [[done]] --[[Joey]] > Also, fixed it to allow dropping the file if the ftp server seems > to reply with a successful result (it's replying with 350, which is not > unambiguously good, but since curl is able to get the right file length, > the file is presumably still on the ftp server. --[[Joey]]