From 6cfcdc99f113e0c8b8dff67d2993a6cc195f8190 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Sun, 8 Nov 2015 12:18:00 -0400 Subject: [PATCH] remove badly named bug report, which was later posted under good name --- doc/bugs/.mdwn | 250 ------------------------------------------------- 1 file changed, 250 deletions(-) delete mode 100644 doc/bugs/.mdwn diff --git a/doc/bugs/.mdwn b/doc/bugs/.mdwn deleted file mode 100644 index 7eb61b55c9..0000000000 --- a/doc/bugs/.mdwn +++ /dev/null @@ -1,250 +0,0 @@ -### Please describe the problem. - -For shared repositories git annex refuses to move file out of repository (git annex move --to) if user triggering the move is not the owner of the file. - -### What steps will reproduce the problem? - - * Init two shared repositories and create a file - * Modify that file in repo1 as user u1 - * Move the file to repo2 as "repository maintenance" user u2 - - this gives permission denied error - -Alternatively -- mabye better understandable usecase(repository maintainer moves unused files to backup): - - * Init two shared repositories and create a file - * Modify that file in repo1 as user u1 - * Modify that file in repo1 a second time (regardless which user) -- this makes the version edited by u1 unused - * Display unused files as repository maintenance user u2 - - this gives permission denied error - * Move unused files to repo2 as "repository maintenance" user u2 - - this gives permission denied error - -### What version of git-annex are you using? On what operating system? - -[[!format sh """ -stefan@atom-linux:/tmp/git-annex-test/a$ git --version -git version 2.6.2 -stefan@atom-linux:/tmp/git-annex-test/a$ git annex version -git-annex version: 5.20150610+gitg608172f-1~ndall+1 -build flags: Assistant Webapp Webapp-secure Pairing Testsuite S3 WebDAV Inotify DBus DesktopNotify XMPP DNS Feeds Quvi TDFA -key/value backends: SHA256E SHA1E SHA512E SHA224E SHA384E SKEIN256E SKEIN512E MD5E SHA256 SHA1 SHA512 SHA224 SHA384 SKEIN256 SKEIN512 MD5 WORM URL -remote types: git gcrypt S3 bup directory rsync web bittorrent webdav tahoe glacier ddar hook external -local repository version: 5 -supported repository version: 5 -upgrade supported from repository versions: 0 1 2 4 -stefan@atom-linux:/tmp/git-annex-test/a$ uname -a -Linux atom-linux 3.13.0-66-generic #108-Ubuntu SMP Wed Oct 7 15:21:40 UTC 2015 i686 i686 i686 GNU/Linux -"""]] - -### Please provide any additional information below. - -[[!format sh """ - -# init two shared repositories and create a file "file.txt" - -stefan@atom-linux:/tmp/git-annex-test$ mkdir a -stefan@atom-linux:/tmp/git-annex-test$ mkdir b -stefan@atom-linux:/tmp/git-annex-test$ sudo chown :fileadmin-data * -stefan@atom-linux:/tmp/git-annex-test$ sudo chmod g+s * -stefan@atom-linux:/tmp/git-annex-test$ cd a -stefan@atom-linux:/tmp/git-annex-test/a$ git init --shared . -Initialized empty shared Git repository in /tmp/git-annex-test/a/.git/ -stefan@atom-linux:/tmp/git-annex-test/a$ git config core.sharedrepository group -stefan@atom-linux:/tmp/git-annex-test/a$ echo "test" >> file.txt -stefan@atom-linux:/tmp/git-annex-test/a$ ls -al -total 16 -drwxrwsr-x 3 stefan fileadmin-data 4096 Nov 1 16:41 . -drwxrwxr-x 4 stefan stefan 4096 Nov 1 16:39 .. --rw-rw-r-- 1 stefan fileadmin-data 5 Nov 1 16:41 file.txt -drwxrwsr-x 7 stefan fileadmin-data 4096 Nov 1 16:40 .git -stefan@atom-linux:/tmp/git-annex-test/a$ git annex init -init ok -(recording state in git...) -stefan@atom-linux:/tmp/git-annex-test/a$ git annex add file.txt -add file.txt ok -(recording state in git...) -stefan@atom-linux:/tmp/git-annex-test/a$ git commit -m "new file" -[master (root-commit) 7aeaa5f] new file - 1 file changed, 1 insertion(+) - create mode 120000 file.txt -stefan@atom-linux:/tmp/git-annex-test/a$ cd .. -stefan@atom-linux:/tmp/git-annex-test$ cd b -stefan@atom-linux:/tmp/git-annex-test/b$ git clone -o a ssh://127.0.0.1/tmp/git-annex-test/a . -Cloning into '.'... -remote: Counting objects: 13, done. -remote: Compressing objects: 100% (9/9), done. -remote: Total 13 (delta 0), reused 0 (delta 0) -Receiving objects: 100% (13/13), done. -Checking connectivity... done. -stefan@atom-linux:/tmp/git-annex-test/b$ git config core.sharedrepository group -stefan@atom-linux:/tmp/git-annex-test/b$ git annex init "B" -init B (merging a/git-annex into git-annex...) -(recording state in git...) -ok -(recording state in git...) -stefan@atom-linux:/tmp/git-annex-test/b$ cd .. -stefan@atom-linux:/tmp/git-annex-test$ cd a -stefan@atom-linux:/tmp/git-annex-test/a$ git remote add b ssh://127.0.0.1/tmp/git-annex-test/b -stefan@atom-linux:/tmp/git-annex-test/a$ git annex sync -commit ok -pull b -remote: Counting objects: 6, done. -remote: Compressing objects: 100% (5/5), done. -remote: Total 6 (delta 0), reused 1 (delta 0) -Unpacking objects: 100% (6/6), done. -From ssh://127.0.0.1/tmp/git-annex-test/b - * [new branch] git-annex -> b/git-annex - * [new branch] master -> b/master -ok -(merging b/git-annex into git-annex...) -push b -Total 0 (delta 0), reused 0 (delta 0) -To ssh://127.0.0.1/tmp/git-annex-test/b - * [new branch] git-annex -> synced/git-annex - * [new branch] master -> synced/master -ok -stefan@atom-linux:/tmp/git-annex-test/a$ git annex move file.txt --to b -move file.txt (checking b...) (to b...) -SHA256E-s5--f2ca1bb6c7e907d06dafe4687e579fce76b37e4e93b7605022da52e6ccc26fd2.txt - 5 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=0/1) -ok -(recording state in git...) - -## ok, everything fine so far - we have a file "file.txt" which was created in a and moved to b successfully. -## Now we go to a different user account and modify "file.txt" -## -------------------------------------- userswitch - -unison@atom-linux:/tmp/git-annex-test/a$ git annex get file.txt -get file.txt (from b...) -SHA256E-s5--f2ca1bb6c7e907d06dafe4687e579fce76b37e4e93b7605022da52e6ccc26fd2.txt - 5 100% 4.88kB/s 0:00:00 (xfr#1, to-chk=0/1) -ok -(recording state in git...) -unison@atom-linux:/tmp/git-annex-test/a$ git annex unlock file.txt -unlock file.txt (copying...) ok -unison@atom-linux:/tmp/git-annex-test/a$ ls -al -total 16 -drwxrwsr-x 3 stefan fileadmin-data 4096 Nov 1 16:48 . -drwxrwxr-x 4 stefan stefan 4096 Nov 1 16:39 .. --rw-rw-r-- 1 unison fileadmin-data 5 Nov 1 16:47 file.txt -drwxrwsr-x 9 stefan fileadmin-data 4096 Nov 1 16:44 .git -unison@atom-linux:/tmp/git-annex-test/a$ echo "a change by unison user" >> file.txt -unison@atom-linux:/tmp/git-annex-test/a$ git annex add . -add file.txt ok -(recording state in git...) -unison@atom-linux:/tmp/git-annex-test/a$ git commit -m "unison change" -[master 37bd55d] unison change - 1 file changed, 1 insertion(+), 1 deletion(-) - -## now the original user / repository maintainer wants to move the file -## out to b which gives an permission denied error for setFileMode -## git annex does copy it to b, but not remove it from a -## -------------------------------------- userswitch - -stefan@atom-linux:/tmp/git-annex-test/a$ ls -al -total 16 -drwxrwsr-x 3 stefan fileadmin-data 4096 Nov 1 16:48 . -drwxrwxr-x 4 stefan stefan 4096 Nov 1 16:39 .. -lrwxrwxrwx 1 unison fileadmin-data 188 Nov 1 16:48 file.txt -> .git/annex/objects/8x/7w/SHA256E-s29--6aec68aad4745c6eb7babaa5f66fb727e896ec47414edfd4fec8136a1db8484e.tx -t/SHA256E-s29--6aec68aad4745c6eb7babaa5f66fb727e896ec47414edfd4fec8136a1db8484e.txt -drwxrwsr-x 9 stefan fileadmin-data 4096 Nov 1 16:48 .git -stefan@atom-linux:/tmp/git-annex-test/a$ git annex move file.txt --to b -move file.txt (checking b...) (to b...) -SHA256E-s29--6aec68aad4745c6eb7babaa5f66fb727e896ec47414edfd4fec8136a1db8484e.txt - 29 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=0/1) -git-annex: failed to lock content: .git/annex/objects/8x/7w/SHA256E-s29--6aec68aad4745c6eb7babaa5f66fb727e896ec47414edfd4fec8136a1db8484e.txt/SHA256E-s29--6aec68aad4745c6 -eb7babaa5f66fb727e896ec47414edfd4fec8136a1db8484e.txt: setFileMode: permission denied (Operation not permitted) - -# which makes sense - the file is owned by other user: -stefan@atom-linux:/tmp/git-annex-test/a$ ls -al .git/annex/objects/8x/7w/SHA256E-s29--6aec68aad4745c6eb7babaa5f66fb727e896ec47414edfd4fec8136a1db8484e.txt/SHA256E-s29--6 -aec68aad4745c6eb7babaa5f66fb727e896ec47414edfd4fec8136a1db8484e.txt --r--r--r-- 1 unison fileadmin-data 29 Nov 1 16:48 .git/annex/objects/8x/7w/SHA256E-s29--6aec68aad4745c6eb7babaa5f66fb727e896ec47414edfd4fec8136a1db8484e.txt/SHA256E-s29- --6aec68aad4745c6eb7babaa5f66fb727e896ec47414edfd4fec8136a1db8484e.txt - -## the last editor of the file can move it, though: -## -------------------------------------- userswitch -unison@atom-linux:/tmp/git-annex-test/a$ git annex move file.txt --to b -move file.txt (checking b...) ok -(recording state in git...) - -## continued - for second usecase... -## edit file two more times as unison user: - -unison@atom-linux:/tmp/git-annex-test/a$ git annex unlock file.txt -unlock file.txt (copying...) ok -unison@atom-linux:/tmp/git-annex-test/a$ echo "another unison modification" >> file.txt -unison@atom-linux:/tmp/git-annex-test/a$ ls -file.txt -unison@atom-linux:/tmp/git-annex-test/a$ git annex add -add file.txt ok -(recording state in git...) -unison@atom-linux:/tmp/git-annex-test/a$ git commit -m "another unison change" -[master df85491] another unison change - 1 file changed, 1 insertion(+), 1 deletion(-) -unison@atom-linux:/tmp/git-annex-test/a$ git annex unlock file.txt -unlock file.txt (copying...) ok -(recording state in git...) -unison@atom-linux:/tmp/git-annex-test/a$ echo "changes once more" >> file.txt -unison@atom-linux:/tmp/git-annex-test/a$ git annex add . -add file.txt ok -(recording state in git...) -unison@atom-linux:/tmp/git-annex-test/a$ git commit -m "1 more" -[master 099a2c7] 1 more - 1 file changed, 1 insertion(+), 1 deletion(-) - -unison@atom-linux:/tmp/git-annex-test/a$ git annex unused -unused . (checking for unused data...) (checking b/master...) (checking master...) - Some annexed data is no longer used by any files: - NUMBER KEY - 1 SHA256E-s29--6aec68aad4745c6eb7babaa5f66fb727e896ec47414edfd4fec8136a1db8484e.txt - 2 SHA256E-s57--dc131ed3874c3b51a6801c43f5d5c0706a9aea58134459eeddf3436626adc89f.txt - (To see where data was previously used, try: git log --stat -S'KEY') - - To remove unwanted data: git-annex dropunused NUMBER - -ok - -## switch to repository maintenance user and list unused: -## -------------------------------------- userswitch - -stefan@atom-linux:/tmp/git-annex-test/a$ git annex unused --debug -unused . (checking for unused data...) [2015-11-01 17:35:09 CET] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","ls-files","--cached","--others","-z"," ---","."] -[2015-11-01 17:35:09 CET] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","symbolic-ref","-q","HEAD"] -[2015-11-01 17:35:09 CET] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","show-ref","--hash","refs/heads/master"] -[2015-11-01 17:35:09 CET] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","show-ref"] -(checking b/master...) [2015-11-01 17:35:09 CET] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","show-ref","--head"] -[2015-11-01 17:35:09 CET] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","show-ref","--head"] -[2015-11-01 17:35:09 CET] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","diff-index","-z","--raw","--no-renames","-l0","refs/remotes/b/master","--"] -[2015-11-01 17:35:09 CET] chat: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","cat-file","--batch"] -(checking master...) [2015-11-01 17:35:09 CET] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","show-ref","--head"] -[2015-11-01 17:35:09 CET] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","show-ref","--head"] -[2015-11-01 17:35:09 CET] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","diff-index","-z","--raw","--no-renames","-l0","refs/heads/master","--"] - - Some annexed data is no longer used by any files: - NUMBER KEY - 1 SHA256E-s29--6aec68aad4745c6eb7babaa5f66fb727e896ec47414edfd4fec8136a1db8484e.txt - 2 SHA256E-s57--dc131ed3874c3b51a6801c43f5d5c0706a9aea58134459eeddf3436626adc89f.txt - (To see where data was previously used, try: git log --stat -S'KEY') - - To remove unwanted data: git-annex dropunused NUMBER - - -git-annex: .git/annex/unused: openFile: permission denied (Permission denied) -failed -git-annex: unused: 1 failed - - -stefan@atom-linux:/tmp/git-annex-test/a$ git annex move --unused --to b -git-annex: .git/annex/unused: openFile: permission denied (Permission denied) -stefan@atom-linux:/tmp/git-annex-test/a$ git annex move --debug --unused --to b -[2015-11-01 17:38:48 CET] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","show-ref","git-annex"] -[2015-11-01 17:38:48 CET] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","show-ref","--hash","refs/heads/git-annex"] -[2015-11-01 17:38:48 CET] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","log","refs/heads/git-annex..4cdcc1b4550b2737e018d382022f3ce3e1dcb029","-n1"," ---pretty=%H"] -[2015-11-01 17:38:48 CET] chat: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","cat-file","--batch"] -git-annex: .git/annex/unused: openFile: permission denied (Permission denied) - -# End of transcript or log. -"""]] -