Merge branch 'master' of ssh://git-annex.branchable.com
This commit is contained in:
		
				commit
				
					
						7fc661acaa
					
				
			
		
					 5 changed files with 224 additions and 0 deletions
				
			
		|  | @ -0,0 +1,55 @@ | |||
| ### Please describe the problem. | ||||
| git annex fsck and git annex get are showing (false?) sha256sum failed messages on Android with the 2016-07-19 android 5.0 build. I haven't seen this before but have been using git-annex on Android, with the same repository for a year, so I'd guess regression. | ||||
| 
 | ||||
| I ran fsck on the files on another machine (Watt: Debian testing, 6.20160511-1) and no errors occur. Note that isn't the machine that the Android tablet transfers from (Einstein: Debian stable + backports, 5.20151208-1~bpo8+1). The Android shell didn't have a sha256sum command, but it had an md5 command—and I tried one of the files (Management Report.pdf) and the md5 matches on both Watt and the Android tablet. | ||||
| 
 | ||||
| I also ran git annex fsck on Einstein (the entire repository, since it's a bare repo) and the only problem it found was a single (different) key with an insufficient number of trusted copies. | ||||
| 
 | ||||
| So I think the file is actually fine. | ||||
| 
 | ||||
| ### What steps will reproduce the problem? | ||||
| Unsure. Dropping and re-getting those files didn't help; it showed a sha256 error with get too. | ||||
| 
 | ||||
| The only difference I can think of between the files that fail and work is the size: | ||||
| 
 | ||||
| [[!format text """ | ||||
| u0_a180@manta:/sdcard/Westerley-Board/Board Packets & Reports/2016-08-25 (Regular) $ ls -l | ||||
| -rw-rw---- root sdcard_r 116225 2016-08-24 05:40 Agenda 16-08-25.pdf | ||||
| -rw-rw---- root sdcard_r 10128521 2016-08-24 06:02 Management Report scan 2 (annotated; Anthony).pdf | ||||
| -rw-rw---- root sdcard_r 10128521 2016-08-24 06:02 Management Report scan 2.pdf | ||||
| -rw-rw---- root sdcard_r 53313352 2016-08-24 06:02 Management Report.pdf | ||||
| -rw-rw---- root sdcard_r 27154 2016-08-24 06:02 WHOA Chart of Accounts Spreadsheet.xlsx | ||||
| """]] | ||||
| 
 | ||||
| ### What version of git-annex are you using? On what operating system? | ||||
| 
 | ||||
| 
 | ||||
| ### Please provide any additional information below. | ||||
| 
 | ||||
| [[!format text """ | ||||
| u0_a180@manta:/sdcard/Westerley-Board/Board Packets & Reports/2016-08-25 (Regular) $ git annex fsck * | ||||
| WARNING: linker: git-annex has text relocations. This is wasting memory and prevents security hardening. Please fix. | ||||
| fsck Agenda 16-08-25.pdf (checksum...) ok | ||||
| fsck Management Report scan 2 (annotated; Anthony).pdf (checksum...) | ||||
| sha256sum failed | ||||
| ok | ||||
| fsck Management Report scan 2.pdf (checksum...) | ||||
| sha256sum failed | ||||
| ok | ||||
| fsck Management Report.pdf (checksum...) | ||||
| sha256sum failed | ||||
| ok | ||||
| fsck WHOA Chart of Accounts Spreadsheet.xlsx (checksum...) ok | ||||
| (recording state in git...) | ||||
| __bionic_open_tzdata_path: ANDROID_ROOT not set! | ||||
| __bionic_open_tzdata_path: ANDROID_ROOT not set! | ||||
| __bionic_open_tzdata_path: ANDROID_ROOT not set! | ||||
| __bionic_open_tzdata_path: ANDROID_ROOT not set! | ||||
| __bionic_open_tzdata_path: ANDROID_ROOT not set! | ||||
| __bionic_open_tzdata_path: ANDROID_ROOT not set! | ||||
| u0_a180@manta:/sdcard/Westerley-Board/Board Packets & Reports/2016-08-25 (Regular) $ | ||||
| """]] | ||||
| 
 | ||||
| ### Have you had any luck using git-annex before? (Sometimes we get tired of reading bug reports all day and a lil' positive end note does wonders) | ||||
| 
 | ||||
| Yes, I've been using git annex for I think a year and a half now, on several repositories. It works pretty well. I have a total of around 315GB and 23K annexed keys across them (counting each annex only once, even though they're cloned on a bunch of machines). | ||||
							
								
								
									
										136
									
								
								doc/bugs/add_fails_with_v6_repo_when_four_levels_deep.mdwn
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										136
									
								
								doc/bugs/add_fails_with_v6_repo_when_four_levels_deep.mdwn
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,136 @@ | |||
| ### Please describe the problem. | ||||
| I've noticed that adding a modified file to a version 6 repo will throw a number of errors if 'git annex add' is executed four or more directories deep from the git directory. | ||||
| Though it throws a number of errors, it seems the file is still added normally. | ||||
| I have also experienced a problem whereby adding a file will replace it with its key (as if I had run 'git annex drop'). | ||||
| I'm not sure if that problem is related. | ||||
| 
 | ||||
| ### What steps will reproduce the problem? | ||||
| In order to cause the exception, a file already in the repo has to be unlocked, edited, and re-added; this re-adding must take place from four levels below the git directory. | ||||
| Here is a minimal working example: | ||||
| 
 | ||||
|     git init | ||||
|     git annex init --version=6 | ||||
|     mkdir -p 1/2/3/4 | ||||
|     touch 1/2/3/4/foo | ||||
|     git annex add 1/2/3/4/foo | ||||
|     git annex sync | ||||
|     git annex unlock 1/2/3/4/foo | ||||
|     echo "bar" >> 1/2/3/4/foo | ||||
|     cd 1/2/3/4 | ||||
|     git annex add foo | ||||
| 
 | ||||
| Specifically, trying to run 'git annex add foo' will result in the following errors being thrown: | ||||
| 
 | ||||
|     fatal: '../1/2/3/4/foo' is outside repository | ||||
|     fatal: '../1/2/3/4/foo' is outside repository | ||||
|     fatal: '../1/2/3/4/foo' is outside repository | ||||
|     fatal: '../1/2/3/4/foo' is outside repository | ||||
|     fatal: '../1/2/3/4/foo' is outside repository | ||||
|     fatal: '../1/2/3/4/foo' is outside repository | ||||
|     fatal: '../1/2/3/4/foo' is outside repository | ||||
|     fatal: '../1/2/3/4/foo' is outside repository | ||||
|     fatal: '../1/2/3/4/foo' is outside repository | ||||
|     fatal: '../1/2/3/4/foo' is outside repository | ||||
|     fatal: '../1/2/3/4/foo' is outside repository | ||||
|     git-annex: git check-attr EOF: user error | ||||
|     git-annex: smudge: 1 failed | ||||
|     error: external filter git-annex smudge --clean %f failed 1 | ||||
|     error: external filter git-annex smudge --clean %f failed | ||||
|     add foo ok | ||||
|     (recording state in git...) | ||||
| 
 | ||||
| 
 | ||||
| ### What version of git-annex are you using? On what operating system? | ||||
| I'm currently running version 6.20160720-g9f0428e on Arch Linux (x86), though I've experienced this problem since at least February. | ||||
| 
 | ||||
| ### 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 | ||||
| $ git init; git annex init --version=6 | ||||
| Initialized empty Git repository in /mnt/.git/ | ||||
| init  ok  | ||||
| (recording state in git...) | ||||
| $ mkdir -p 1/2/3/4 | ||||
| $ touch 1/2/3/4/foo | ||||
| $ git annex add 1/2/3/4/foo | ||||
| add 1/2/3/4/foo ok | ||||
| (recording state in git...) | ||||
| $ git annex sync | ||||
| commit  | ||||
| [master (root-commit) 25e1676] git-annex in | ||||
| :/mntt | ||||
|  1 file changed, 1 insertion(+) | ||||
|  create mode 120000 1/2/3/4/foo | ||||
| ok | ||||
| $ git annex unlock 1/2/3/4/foo | ||||
| unlock 1/2/3/4/foo ok | ||||
| (recording state in git...) | ||||
| $ echo "bar" >> 1/2/3/4/foo | ||||
| $ cd 1/2/3/4 | ||||
| $ git annex add foo --debug | ||||
| [2016-08-23 14:47:21.764271] read: git | ||||
| ["--git-dir=../../../../.git","--work-tree=../../../..","--literal-pathspecs","ls-files","--others","--exclude-standard","-z","--","foo"] | ||||
| [2016-08-23 14:47:21.766481] read: git | ||||
| ["--git-dir=../../../../.git","--work-tree=../../../..","--literal-pathspecs","ls-files","--modified","-z","--","foo"] | ||||
| fatal: '../1/2/3/4/foo' is outside repository | ||||
| fatal: '../1/2/3/4/foo' is outside repository | ||||
| fatal: '../1/2/3/4/foo' is outside repository | ||||
| fatal: '../1/2/3/4/foo' is outside repository | ||||
| fatal: '../1/2/3/4/foo' is outside repository | ||||
| fatal: '../1/2/3/4/foo' is outside repository | ||||
| fatal: '../1/2/3/4/foo' is outside repository | ||||
| fatal: '../1/2/3/4/foo' is outside repository | ||||
| fatal: '../1/2/3/4/foo' is outside repository | ||||
| fatal: '../1/2/3/4/foo' is outside repository | ||||
| fatal: '../1/2/3/4/foo' is outside repository | ||||
| git-annex: git check-attr EOF: user error | ||||
| git-annex: smudge: 1 failed | ||||
| error: external filter git-annex smudge --clean %f failed 1 | ||||
| error: external filter git-annex smudge --clean %f failed | ||||
| [2016-08-23 14:47:21.806128] chat: git | ||||
| ["--git-dir=../../../../.git","--work-tree=../../../..","--literal-pathspecs","check-attr","-z","--stdin","annex.backend","annex.numcopies","annex.largefiles","--"] | ||||
| [2016-08-23 14:47:21.806624] read: git ["--version"] | ||||
| [2016-08-23 14:47:21.809352] process done ExitSuccess | ||||
| [2016-08-23 14:47:21.813764] chat: git | ||||
| ["--git-dir=../../../../.git","--work-tree=../../../..","--literal-pathspecs","cat-file","--batch"] | ||||
| add foo [2016-08-23 14:47:21.818268] read: git | ||||
| ["--git-dir=../../../../.git","--work-tree=../../../..","--literal-pathspecs","symbolic-ref","-q","HEAD"] | ||||
| [2016-08-23 14:47:21.82027] process done ExitSuccess | ||||
| [2016-08-23 14:47:21.822862] read: git | ||||
| ["--git-dir=../../../../.git","--work-tree=../../../..","--literal-pathspecs","show-ref","git-annex"] | ||||
| [2016-08-23 14:47:21.825102] process done ExitSuccess | ||||
| [2016-08-23 14:47:21.825233] read: git | ||||
| ["--git-dir=../../../../.git","--work-tree=../../../..","--literal-pathspecs","show-ref","--hash","refs/heads/git-annex"] | ||||
| [2016-08-23 14:47:21.82715] process done ExitSuccess | ||||
| [2016-08-23 14:47:21.828549] chat: git | ||||
| ["--git-dir=../../../../.git","--work-tree=../../../..","--literal-pathspecs","cat-file","--batch"] | ||||
| ok | ||||
| (recording state in git...) | ||||
| [2016-08-23 14:47:21.832848] feed: xargs | ||||
| ["-0","git","--git-dir=../../../../.git","--work-tree=../../../..","--literal-pathspecs","add","--"] | ||||
| [2016-08-23 14:47:21.836822] process done ExitSuccess | ||||
| [2016-08-23 14:47:21.837518] chat: git | ||||
| ["--git-dir=../../../.git","--work-tree=../../../..","--literal-pathspecs","hash-object","-w","--stdin-paths","--no-filters"] | ||||
| [2016-08-23 14:47:21.838061] feed: git | ||||
| ["--git-dir=../../../.git","--work-tree=../../../..","--literal-pathspecs","update-index","-z","--index-info"] | ||||
| [2016-08-23 14:47:21.843259] process done ExitSuccess | ||||
| [2016-08-23 14:47:21.843444] read: git | ||||
| ["--git-dir=../../../.git","--work-tree=../../../..","--literal-pathspecs","show-ref","--hash","refs/heads/git-annex"] | ||||
| [2016-08-23 14:47:21.847287] process done ExitSuccess | ||||
| [2016-08-23 14:47:21.847602] read: git | ||||
| ["--git-dir=../../../.git","--work-tree=../../../..","--literal-pathspecs","write-tree"] | ||||
| [2016-08-23 14:47:21.85106] process done ExitSuccess | ||||
| [2016-08-23 14:47:21.851221] chat: git | ||||
| ["--git-dir=../../../.git","--work-tree=../../../..","--literal-pathspecs","commit-tree","b4a158d15da89e28ef5c2f1782c5b1e3c6f1176c","--no-gpg-sign","-p","refs/heads/git-annex"] | ||||
| [2016-08-23 14:47:21.85892] process done ExitSuccess | ||||
| [2016-08-23 14:47:21.85907] call: git | ||||
| ["--git-dir=../../../.git","--work-tree=../../../..","--literal-pathspecs","update-ref","refs/heads/git-annex","68381bac2ba0f559d37214c30b5e41a404b9c98b"] | ||||
| [2016-08-23 14:47:21.861978] process done ExitSuccess | ||||
| # End of transcript or log. | ||||
| """]] | ||||
| 
 | ||||
| ### Have you had any luck using git-annex before? (Sometimes we get tired of reading bug reports all day and a lil' positive end note does wonders) | ||||
| I've been happily using git-annex on my laptop and server for almost a year; it's saved me a great deal of time and effort. | ||||
| Thanks for all your work! | ||||
|  | @ -0,0 +1,8 @@ | |||
| [[!comment format=mdwn | ||||
|  username="https://openid.stackexchange.com/user/3ee5cf54-f022-4a71-8666-3c2b5ee231dd" | ||||
|  nickname="Anthony DeRobertis" | ||||
|  subject="comment 1" | ||||
|  date="2016-08-24T10:53:05Z" | ||||
|  content=""" | ||||
| Pretty sure that's not a file with a question mark (`0x3f`) in it, that's a file with a carriage return (`0x0d`) in it. In which case see also [git annex import fails on filenames with newlines in them](https://git-annex.branchable.com/bugs/git_annex_import_fails_on_filenames_with_newlines_in_them/). | ||||
| """]] | ||||
|  | @ -0,0 +1,12 @@ | |||
| [[!comment format=mdwn | ||||
|  username="dusty@dba9614abc02e013134f95c2c59181a6c12a8468" | ||||
|  nickname="dusty" | ||||
|  subject="moving files with git mv can yield broken symlink" | ||||
|  date="2016-08-23T21:48:59Z" | ||||
|  content=""" | ||||
| Hey Joey, | ||||
| 
 | ||||
| Just wondering how we rename/move files around into different directories within a repository without breaking the symbolic links. If we move to a different directory and the depth is different than where the files were originally in the repo then the symbolic link is broken. | ||||
| 
 | ||||
| Thanks | ||||
| """]] | ||||
|  | @ -0,0 +1,13 @@ | |||
| [[!comment format=mdwn | ||||
|  username="dusty@dba9614abc02e013134f95c2c59181a6c12a8468" | ||||
|  nickname="dusty" | ||||
|  subject="Nevermind - broken symlinks will be fixed on commit" | ||||
|  date="2016-08-23T21:53:05Z" | ||||
|  content=""" | ||||
| 
 | ||||
| Didn't catch this from the docs above:  | ||||
| 
 | ||||
| \"Notice that, since annexed files are represented by symlinks, the symlink will break when the file is moved into a subdirectory. But, git-annex will fix this up for you when you commit -- it has a pre-commit hook that watches for and corrects broken symlinks.\" | ||||
| 
 | ||||
| 
 | ||||
| """]] | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Joey Hess
				Joey Hess