summaryrefslogtreecommitdiff
path: root/doc/bugs/git-annex_deletes_file_when_using___34__git_annex_get__34___after___34__git_annex_addurl_--file__34__.mdwn
diff options
context:
space:
mode:
Diffstat (limited to 'doc/bugs/git-annex_deletes_file_when_using___34__git_annex_get__34___after___34__git_annex_addurl_--file__34__.mdwn')
-rw-r--r--doc/bugs/git-annex_deletes_file_when_using___34__git_annex_get__34___after___34__git_annex_addurl_--file__34__.mdwn112
1 files changed, 112 insertions, 0 deletions
diff --git a/doc/bugs/git-annex_deletes_file_when_using___34__git_annex_get__34___after___34__git_annex_addurl_--file__34__.mdwn b/doc/bugs/git-annex_deletes_file_when_using___34__git_annex_get__34___after___34__git_annex_addurl_--file__34__.mdwn
new file mode 100644
index 000000000..1081b7acf
--- /dev/null
+++ b/doc/bugs/git-annex_deletes_file_when_using___34__git_annex_get__34___after___34__git_annex_addurl_--file__34__.mdwn
@@ -0,0 +1,112 @@
+### 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 <https://downloads.kitenet.net/.git/> 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]]