From 71a15d33b1b5c7300dee3ebe3cc4473b390cbccc Mon Sep 17 00:00:00 2001 From: "t.z.mates" Date: Tue, 23 Aug 2016 21:55:39 +0000 Subject: --- ..._fails_with_v6_repo_when_three_levels_deep.mdwn | 137 +++++++++++++++++++++ 1 file changed, 137 insertions(+) create mode 100644 doc/bugs/add_fails_with_v6_repo_when_three_levels_deep.mdwn diff --git a/doc/bugs/add_fails_with_v6_repo_when_three_levels_deep.mdwn b/doc/bugs/add_fails_with_v6_repo_when_three_levels_deep.mdwn new file mode 100644 index 000000000..f4307a214 --- /dev/null +++ b/doc/bugs/add_fails_with_v6_repo_when_three_levels_deep.mdwn @@ -0,0 +1,137 @@ +### 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 three 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 three levels below the git directory. +Here is a minimal working example: + + git init + git annex init --version=6 + mkdir -p 1/2/3 + touch 1/2/3/foo + git annex add 1/2/3/foo + git annex sync + git annex unlock 1/2/3/foo + echo "bar" >> 1/2/3/foo + cd 1/2/3 + git annex add foo + +Specifically, trying to run 'git annex add foo' will result in the following errors being thrown: + + fatal: '../1/2/3/foo' is outside repository + fatal: '../1/2/3/foo' is outside repository + fatal: '../1/2/3/foo' is outside repository + fatal: '../1/2/3/foo' is outside repository + fatal: '../1/2/3/foo' is outside repository + fatal: '../1/2/3/foo' is outside repository + fatal: '../1/2/3/foo' is outside repository + fatal: '../1/2/3/foo' is outside repository + fatal: '../1/2/3/foo' is outside repository + fatal: '../1/2/3/foo' is outside repository + fatal: '../1/2/3/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 +$ touch 1/2/3/foo +$ git annex add 1/2/3/foo +add 1/2/3/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/foo +ok +$ git annex unlock 1/2/3/foo +unlock 1/2/3/foo ok +(recording state in git...) +$ echo "bar" >> 1/2/3/foo +$ cd 1/2/3 +$ 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/foo' is outside repository +fatal: '../1/2/3/foo' is outside repository +fatal: '../1/2/3/foo' is outside repository +fatal: '../1/2/3/foo' is outside repository +fatal: '../1/2/3/foo' is outside repository +fatal: '../1/2/3/foo' is outside repository +fatal: '../1/2/3/foo' is outside repository +fatal: '../1/2/3/foo' is outside repository +fatal: '../1/2/3/foo' is outside repository +fatal: '../1/2/3/foo' is outside repository +fatal: '../1/2/3/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! + -- cgit v1.2.3