summaryrefslogtreecommitdiff
path: root/doc/bugs/On_Windows__44___annex_get_fails_with_HTTP_Remote__44___but_believes_it_has_succeeded..mdwn
diff options
context:
space:
mode:
Diffstat (limited to 'doc/bugs/On_Windows__44___annex_get_fails_with_HTTP_Remote__44___but_believes_it_has_succeeded..mdwn')
-rw-r--r--doc/bugs/On_Windows__44___annex_get_fails_with_HTTP_Remote__44___but_believes_it_has_succeeded..mdwn180
1 files changed, 0 insertions, 180 deletions
diff --git a/doc/bugs/On_Windows__44___annex_get_fails_with_HTTP_Remote__44___but_believes_it_has_succeeded..mdwn b/doc/bugs/On_Windows__44___annex_get_fails_with_HTTP_Remote__44___but_believes_it_has_succeeded..mdwn
deleted file mode 100644
index b34befcc0..000000000
--- a/doc/bugs/On_Windows__44___annex_get_fails_with_HTTP_Remote__44___but_believes_it_has_succeeded..mdwn
+++ /dev/null
@@ -1,180 +0,0 @@
-### Please describe the problem.
-On Windows, with a remote annex configured for HTTP access, attempting to annex get a file will not result in the content being downloaded, but will download a 404 error page as the file.
-
-### What steps will reproduce the problem?
-1. Create an annex (A1) on a Linux system.
-2. "git update-server-info"
-3. run an HTTP server with, a directory up. python -m SimpleHTTPServer
-4. on a Windows system, clone the annex with 'git clone http://remote_host/annex_dir/.git'
-5. "git annex get <file>"
-
-the resulting file will not have the correct content, but rather a 404 error page. In addition, subsequent attempts to "git annex get <file>" will fail, unless you "git annex drop <file>" first. (it appears to believe it correctly retrieved the file).
-
-
-### What version of git-annex are you using? On what operating system?
-Windows 7: 4.20140627-g8a36ec5 (from the git-annex download page)
-
-Debian Linux: 3.20120629 (from the package manager)
-
-### Please provide any additional information below.
-After some debugging, I believe the issue is related to the way git-annex uses curl. it appears that git-annex uses the return code of curl or wget to determine if a download was successful, but curl by default will return status code 0 on a 404, unless the -f option is used (which it is not).
-
-getting git-annex on windows to use wget works around the issue.
-
-
-
-###Full Transcript
-
-#### 1. setup of linux repo
-[[!format sh """
-test-git-annex@linux_host:~/test_annex$ git version
-git version 1.7.10.4
-test-git-annex@linux_host:~/test_annex$ git annex version
-git-annex version: 3.20120629
-local repository version: 3
-default repository version: 3
-supported repository versions: 3
-upgrade supported from repository versions: 0 1 2
-test-git-annex@linux_host: ~test-git-annex@linux_host:~$ mkdir test_annex
-test-git-annex@linux_host: ~test-git-annex@linux_host:~$ cd test_annex/
-test-git-annex@linux_host:~/test_annex$ git init .
-Initialized empty Git repository in /home/test-git-annex/test_annex/.git/
-test-git-annex@linux_host:~/test_annex$ annex init laptop
-init laptop ok
-(Recording state in git...)
-~/test_annextest-git-annex@linux_host:~/test_annex$ echo "this is some content" > file1.txt
-test-git-annex@linux_host:~/test_annex$ git annex add file1.txt
-add file1.txt (checksum...) ok
-(Recording state in git...)
-test-git-annex@linux_host:~/test_annex$ git commit -a -m "initial commit"
-[master (root-commit) 821c6c1] initial commit
- 1 file changed, 1 insertion(+)
- create mode 120000 file1.txt
-test-git-annex@linux_host:~/test_annex$ ls -l
-total 4
-lrwxrwxrwx 1 test-git-annex test-git-annex 178 Jul 6 11:33 file1.txt -> .git/annex/objects/J9/m6/SHA256-s21--6ed275e9e01c84a57fdd99d6af793c5d587d02e699cd2c28b32b7dc90f73e729/SHA256-s21--6ed275e9e01c84a57fdd99d6af793c5d587d02e699cd2c28b32b7dc90f73e729
-test-git-annex@linux_host:~/test_annex$ cat file1.txt
-this is some content
-"""]]
-
-#### 2. set up and run http server
-[[!format sh """
-test-git-annex@MrLinuxTablet:~/test_annex$ git update-server-info
-cd ..
-test-git-annex@MrLinuxTablet:~$ python -m SimpleHTTPServer
-Serving HTTP on 0.0.0.0 port 8000 ...
-
-"""]]
-
-#### 3. Set up Windows, clone repo, init annex
-
-[[!format sh """
-
-#Windows 7
-#download and install git from git-scm.com/download/win
-#Git-1.8.3-preview20130601.exe
-#on install, selecting "Run Git from the Windows Command Prompt"
-#on install, selecting "checkout as-is, commit as-is"
-#installs to C:\Program Files (x86)\Git
-#download and install git-annex from http://git-annex.branchable.com/install/
-#git-annex-installer.exe
-#need to right-click 'run as administrator', per reported bug (link here)
-#installs to C:\Program Files (x86)\Git\cmd
-#also installs some utilities, including wget.exe
-
-C:\Users\test-git-annex>git clone http://192.168.0.8:8000/test_annex/.git
-Cloning into 'test_annex'...
-
-C:\Users\test-git-annex>cd test_annex
-
-C:\Users\test-git-annex\test_annex>dir
- Volume in drive C has no label.
-
- Directory of C:\Users\test-git-annex\test_annex
-
-<DIR> .
-<DIR> ..
- 178 file1.txt
- 1 File(s) 178 bytes
-
-C:\Users\test-git-annex\test_annex>type file1.txt
-.git/annex/objects/J9/m6/SHA256-s21--6ed275e9e01c84a57fdd99d6af793c5d587d02e699cd2c28b32b7dc90f73e729/SHA256-s21--6ed275e9e01c84a57fdd99d6af793c5d587d02e699cd2c28b32b7dc90f73e729
-
-C:\Users\test-git-annex\test_annex>git annex init windows
-init windows
- Detected a crippled filesystem.
-
- Enabling direct mode.
-
- Detected a filesystem without fifo support.
-
- Disabling ssh connection caching.
-ok
-(Recording state in git...)
-
-"""]]
-
-####4. annex get
-
-[[!format sh """
-#copy Git\bin\libcurl.dll to Git\bin\libcurl-4.dll
-
-C:\Users\test-git-annex\test_annex>git annex -vd get file1.txt
-[<datetime>] read: git ["--git-dir=C:\\Users\\test-git-annex\\test_annex\\.git","--work-tree=C:\\Users\\test-git-annex\\test_annex","ls-files","--cached","-z","--","file1.txt"]
-get file1.txt [<datetime>] read: git ["--git-dir=C:\\Users\\test-git-annex\\test_annex\\.git","--work-tree=C:\\Users\\test-git-annex\\test_annex","show-ref","git-annex"]
-[<datetime>] read: git ["--git-dir=C:\\Users\\test-git-annex\\test_annex\\.git","--work-tree=C:\\Users\\test-git-annex\\test_annex","show-ref","--hash","refs/heads/git-annex"]
-[<datetime>] read: git ["--git-dir=C:\\Users\\test-git-annex\\test_annex\\.git","--work-tree=C:\\Users\\test-git-annex\\test_annex","log","refs/heads/git-annex..36508d74a05fd93daee965f2f73c977852e4b626","--oneline","-n1"]
-[<datetime>] read: git ["--git-dir=C:\\Users\\test-git-annex\\test_annex\\.git","--work-tree=C:\\Users\\test-git-annex\\test_annex","log","refs/heads/git-annex..304263841906c0b4dda39d0fdbe54e4af4307cb8","--oneline","-n1"]
-(merging origin/git-annex into git-annex...)
-[<datetime>] chat: git ["--git-dir=C:\\Users\\test-git-annex\\test_annex\\.git","--work-tree=C:\\Users\\test-git-annex\\test_annex","cat-file","--batch"]
-[<datetime>] feed: git ["--git-dir=C:\\Users\\test-git-annex\\test_annex\\.git","--work-tree=C:\\Users\\test-git-annex\\test_annex","update-index","-z","--index-info"]
-[<datetime>] read: git ["--git-dir=C:\\Users\\test-git-annex\\test_annex\\.git","--work-tree=C:\\Users\\test-git-annex\\test_annex","diff-index","--raw","-z","-r","--no-renames","-l0","--cached","304263841906c0b4dda39d0fdbe54e4af4307cb8"]
-[<datetime>] chat: git ["--git-dir=C:\\Users\\test-git-annex\\test_annex\\.git","--work-tree=C:\\Users\\test-git-annex\\test_annex","hash-object","-t","blob","-w","--stdin","--no-filters"]
-[<datetime>] read: git ["--git-dir=C:\\Users\\test-git-annex\\test_annex\\.git","--work-tree=C:\\Users\\test-git-annex\\test_annex","log","304263841906c0b4dda39d0fdbe54e4af4307cb8..refs/heads/git-annex","--oneline","-n1"]
-(Recording state in git...)
-[<datetime>] read: git ["--git-dir=C:\\Users\\test-git-annex\\test_annex\\.git","--work-tree=C:\\Users\\test-git-annex\\test_annex","write-tree"]
-[<datetime>] chat: git ["--git-dir=C:\\Users\\test-git-annex\\test_annex\\.git","--work-tree=C:\\Users\\test-git-annex\\test_annex","commit-tree","103a0273cf24deec587295845f761b172a63ea19","-p","refs/heads/git-annex","-p","304263841906c0b4dda39d0fdbe54e4af4307cb8"]
-[<datetime>] call: git ["--git-dir=C:\\Users\\test-git-annex\\test_annex\\.git","--work-tree=C:\\Users\\test-git-annex\\test_annex","update-ref","refs/heads/git-annex","538f6b44a762be415ec6fef2b6644c10bc1f3780"]
-[<datetime>] call: curl ["-s","-L","-C","-","-#","-o","C:\\Users\\test-git-annex\\AppData\\Local\\Temp\\git-annex8156.tmp","http://192.168.0.8:8000/test_annex/.git/config"]
-[<datetime>] read: git ["config","--null","--list","--file","C:\\Users\\test-git-annex\\AppData\\Local\\Temp\\git-annex8156.tmp"]
-[<datetime>] call: git ["--git-dir=C:\\Users\\test-git-annex\\test_annex\\.git","--work-tree=C:\\Users\\test-git-annex\\test_annex","config","remote.origin.annex-uuid","64000156-e66a-11e2-aa76-131bb0a453f3"]
-[<datetime>] read: git ["config","--null","--list"]
-(from origin...) [<datetime>] call: curl ["-L","-C","-","-#","-o","C:\\Users\\test-git-annex\\test_annex\\.git\\annex\\tmp\\SHA256-s21--6ed275e9e01c84a57fdd99d6af793c5d587d02e699cd2c28b32b7dc90f73e729","http://192.168.0.8:8000/test_annex/.git/annex\\objects\\c96\\53e\\SHA256-s21--6ed275e9e01c84a57fdd99d6af793c5d587d02e699cd2c28b32b7dc90f73e729\\SHA256-s21--6ed275e9e01c84a57fdd99d6af793c5d587d02e699cd2c28b32b7dc90f73e729"]
-######################################################################## 100.0%
-ok
-[<datetime>] chat: git ["--git-dir=C:\\Users\\test-git-annex\\test_annex\\.git","--work-tree=C:\\Users\\test-git-annex\\test_annex","hash-object","-w","--stdin-paths","--no-filters"]
-[<datetime>] feed: git ["--git-dir=C:\\Users\\test-git-annex\\test_annex\\.git","--work-tree=C:\\Users\\test-git-annex\\test_annex","update-index","-z","--index-info"]
-[<datetime>] read: git ["--git-dir=C:\\Users\\test-git-annex\\test_annex\\.git","--work-tree=C:\\Users\\test-git-annex\\test_annex","show-ref","--hash","refs/heads/git-annex"]
-(Recording state in git...)
-[<datetime>] read: git ["--git-dir=C:\\Users\\test-git-annex\\test_annex\\.git","--work-tree=C:\\Users\\test-git-annex\\test_annex","write-tree"]
-[<datetime>] chat: git ["--git-dir=C:\\Users\\test-git-annex\\test_annex\\.git","--work-tree=C:\\Users\\test-git-annex\\test_annex","commit-tree","b81dc8e53f4c02d433288d7f073be501d27c3648","-p","refs/heads/git-annex"]
-[<datetime>] call: git ["--git-dir=C:\\Users\\test-git-annex\\test_annex\\.git","--work-tree=C:\\Users\\test-git-annex\\test_annex","update-ref","refs/heads/git-annex","949181f4978c2654e156f1e4250f67135ddc2774"]
-
-C:\Users\test-git-annex\test_annex>git annex find .
-file1.txt
-
-C:\Users\test-git-annex\test_annex>type file1.txt
-<head>
-<title>Error response</title>
-</head>
-<body>
-<h1>Error response</h1>
-<p>Error code 404.
-<p>Message: File not found.
-<p>Error code explanation: 404 = Nothing matches the given URI.
-</body>
-"""]]
-
-#### http server output from above
-
-[[!format sh """
-192.168.0.2 - - [<datetime>] "GET /test_annex/.git/annex\objects\c96\53e\SHA256-s21--6ed275e9e01c84a57fdd99d6af793c5d587d02e699cd2c28b32b7dc90f73e729\SHA256-s21--6ed275e9e01c84a57fdd99d6af793c5d587d02e699cd2c28b32b7dc90f73e729 HTTP/1.1" 404 -
-192.168.0.2 - - [<datetime>] code 404, message File not found
-"""]]
-
-> This seems to be two distinct bugs. First, curl was not propigating the exit
-> status. I already fixed that.
->
-> Second, it's using DOS style path separators when constructing the url.
-> `http://192.168.0.8:8000/test_annex/.git/annex\\objects\\c96`
-> I've put in an (ugly) fix for that. [[done]] --[[Joey]]