Merge branch 'master' of ssh://git-annex.branchable.com

This commit is contained in:
Joey Hess 2015-09-02 16:53:35 -07:00
commit 416d7a4707
8 changed files with 162 additions and 1 deletions

View file

@ -42,4 +42,4 @@ Debian sid 5.20150812-2
# End of transcript or log.
"""]]
> [[fixed|done]] --[[Joey]]

View file

@ -0,0 +1,54 @@
[[!comment format=mdwn
username="https://me.yahoo.com/a/EbvxpTI_xP9Aod7Mg4cwGhgjrCrdM5s-#7c0f4"
subject="I don't think it is fixed -- doesn't detect as crippled when ran as root (under sudo or su) with 5.20150826+gitg87972f5-1~ndall+1"
date="2015-09-02T17:12:48Z"
content="""
[[!format bash \"\"\"
$> git annex version
git-annex version: 5.20150826+gitg87972f5-1~ndall+1
build flags: Assistant Webapp Webapp-secure Pairing Testsuite S3 WebDAV Inotify DBus DesktopNotify XMPP DNS Feeds Quvi TDFA Database
key/value backends: SHA256E SHA256 SHA512E SHA512 SHA224E SHA224 SHA384E SHA384 SHA3_256E SHA3_256 SHA3_512E SHA3_512 SHA3_224E SHA3_224 SHA3_384E SHA3_384 SKEIN256E SKEIN256 SKEIN512E SKEIN512 SHA1E SHA1 MD5E 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
\"\"\"]]
so if running as non-root, I can't indeed remove the file and annex doesn't detect it as crippled:
[[!format bash \"\"\"
$> bash -c \"rm -rf /tmp/123; mkdir /tmp/123; cd /tmp/123; git init; git annex init; echo 123 > 1.dat; git annex add 1.dat; git commit -m 'initial'; ls -l /tmp/123 ;readlink -f /tmp/123/1.dat | xargs rm; rm -rf /tmp/123; ls -l /tmp/123\"
rm: cannot remove /tmp/123/.git/annex/objects/zk/71/SHA256E-s4--181210f8f9c779c26da1d9b2075bde0127302ee0e3fca38c9a83f5b1dd8e5d3b.dat/SHA256E-s4--181210f8f9c779c26da1d9b2075bde0127302ee0e3fca38c9a83f5b1dd8e5d3b.dat: Permission denied
mkdir: cannot create directory /tmp/123: File exists
Initialized empty Git repository in /tmp/123/.git/
init ok
(recording state in git...)
add 1.dat ok
(recording state in git...)
[master (root-commit) b94089e] initial
1 file changed, 1 insertion(+)
create mode 120000 1.dat
total 4
lrwxrwxrwx 1 yoh yoh 186 Sep 2 13:06 1.dat -> .git/annex/objects/zk/71/SHA256E-s4--181210f8f9c779c26da1d9b2075bde0127302ee0e3fca38c9a83f5b1dd8e5d3b.dat/SHA256E-s4--181210f8f9c779c26da1d9b2075bde0127302ee0e3fca38c9a83f5b1dd8e5d3b.dat
rm: cannot remove /tmp/123/.git/annex/objects/zk/71/SHA256E-s4--181210f8f9c779c26da1d9b2075bde0127302ee0e3fca38c9a83f5b1dd8e5d3b.dat/SHA256E-s4--181210f8f9c779c26da1d9b2075bde0127302ee0e3fca38c9a83f5b1dd8e5d3b.dat: Permission denied
rm: cannot remove /tmp/123/.git/annex/objects/zk/71/SHA256E-s4--181210f8f9c779c26da1d9b2075bde0127302ee0e3fca38c9a83f5b1dd8e5d3b.dat/SHA256E-s4--181210f8f9c779c26da1d9b2075bde0127302ee0e3fca38c9a83f5b1dd8e5d3b.dat: Permission denied
total 0
\"\"\"]]
if ran under sudo or even straight root (via su) I can remove the file, and entire directory, and annex didn't detect it as crippled
[[!format bash \"\"\"
$> sudo -E bash -c \"rm -rf /tmp/123; mkdir /tmp/123; cd /tmp/123; git init; git annex init; echo 123 > 1.dat; git annex add 1.dat; git commit -m 'initial'; ls -l /tmp/123 ;readlink -f /tmp/123/1.dat | xargs rm; rm -rf /tmp/123; ls -l /tmp/123\"
Initialized empty Git repository in /tmp/123/.git/
init ok
(recording state in git...)
add 1.dat ok
(recording state in git...)
[master (root-commit) 44f142c] initial
1 file changed, 1 insertion(+)
create mode 120000 1.dat
total 4
lrwxrwxrwx 1 root root 186 Sep 2 13:06 1.dat -> .git/annex/objects/zk/71/SHA256E-s4--181210f8f9c779c26da1d9b2075bde0127302ee0e3fca38c9a83f5b1dd8e5d3b.dat/SHA256E-s4--181210f8f9c779c26da1d9b2075bde0127302ee0e3fca38c9a83f5b1dd8e5d3b.dat
ls: cannot access /tmp/123: No such file or directory
\"\"\"]]
"""]]

View file

@ -0,0 +1,7 @@
[[!comment format=mdwn
username="http://joeyh.name/"
subject="comment 3"
date="2015-09-02T18:54:23Z"
content="""
Of course root can delete anything no matter what git-annex does with directory permissions. This does not mean the FS is crippled; it's just an ability of the root user. I don't see any problem with the examples given above.
"""]]

View file

@ -0,0 +1,72 @@
[[!comment format=mdwn
username="https://me.yahoo.com/a/EbvxpTI_xP9Aod7Mg4cwGhgjrCrdM5s-#7c0f4"
subject="comment 4"
date="2015-09-02T19:14:18Z"
content="""
I am confused then. You said
> it does detect a crippled FS when run as root here.
which I took as the indication that on any FS if ran as root annex would detect it as \"crippled\" since then user (root) has ability to change even read only files/directories (thus removal was to demonstrate ability to overcome permissions protection). Was I wrong?
Here is redone script which instead of removing augments the file... and again annex doesn't consider file system crippled while I can augment file inplace
[[!format bash \"\"\"
$> cat /tmp/test-crippled.sh
#!/bin/bash
rm -rf /tmp/123;
mkdir /tmp/123;
cd /tmp/123;
git init; git annex init;
echo 123 > 1.dat;
git annex add 1.dat;
git commit -m 'initial';
ls -l /tmp/123 ;
ff=$(readlink /tmp/123/1.dat)
echo cripple >> /tmp/123/1.dat && echo CRIPPLED
echo \"new content: \"
cat /tmp/123/1.dat
ls -l /tmp/123/1.dat
rm -rf /tmp/123
# sudo run
$> sudo /tmp/test-crippled.sh
Initialized empty Git repository in /tmp/123/.git/
init ok
(recording state in git...)
add 1.dat ok
(recording state in git...)
[master (root-commit) 01ffc3b] initial
1 file changed, 1 insertion(+)
create mode 120000 1.dat
total 4
lrwxrwxrwx 1 root root 186 Sep 2 15:10 1.dat -> .git/annex/objects/zk/71/SHA256E-s4--181210f8f9c779c26da1d9b2075bde0127302ee0e3fca38c9a83f5b1dd8e5d3b.dat/SHA256E-s4--181210f8f9c779c26da1d9b2075bde0127302ee0e3fca38c9a83f5b1dd8e5d3b.dat
CRIPPLED
new content:
123
cripple
lrwxrwxrwx 1 root root 186 Sep 2 15:10 /tmp/123/1.dat -> .git/annex/objects/zk/71/SHA256E-s4--181210f8f9c779c26da1d9b2075bde0127302ee0e3fca38c9a83f5b1dd8e5d3b.dat/SHA256E-s4--181210f8f9c779c26da1d9b2075bde0127302ee0e3fca38c9a83f5b1dd8e5d3b.dat
# normal run
$> /tmp/test-crippled.sh
Initialized empty Git repository in /tmp/123/.git/
init ok
(recording state in git...)
add 1.dat ok
(recording state in git...)
[master (root-commit) 74a1759] initial
1 file changed, 1 insertion(+)
create mode 120000 1.dat
total 4
lrwxrwxrwx 1 yoh yoh 186 Sep 2 15:10 1.dat -> .git/annex/objects/zk/71/SHA256E-s4--181210f8f9c779c26da1d9b2075bde0127302ee0e3fca38c9a83f5b1dd8e5d3b.dat/SHA256E-s4--181210f8f9c779c26da1d9b2075bde0127302ee0e3fca38c9a83f5b1dd8e5d3b.dat
/tmp/test-crippled.sh: line 13: /tmp/123/1.dat: Permission denied
new content:
123
lrwxrwxrwx 1 yoh yoh 186 Sep 2 15:10 /tmp/123/1.dat -> .git/annex/objects/zk/71/SHA256E-s4--181210f8f9c779c26da1d9b2075bde0127302ee0e3fca38c9a83f5b1dd8e5d3b.dat/SHA256E-s4--181210f8f9c779c26da1d9b2075bde0127302ee0e3fca38c9a83f5b1dd8e5d3b.dat
rm: cannot remove /tmp/123/.git/annex/objects/zk/71/SHA256E-s4--181210f8f9c779c26da1d9b2075bde0127302ee0e3fca38c9a83f5b1dd8e5d3b.dat/SHA256E-s4--181210f8f9c779c26da1d9b2075bde0127302ee0e3fca38c9a83f5b1dd8e5d3b.dat: Permission denied
\"\"\"]]
"""]]

View file

@ -0,0 +1,7 @@
[[!comment format=mdwn
username="http://joeyh.name/"
subject="comment 5"
date="2015-09-02T21:05:09Z"
content="""
Accidentially detecting a cripped FS when ran as root was a bug, which is why this bug report was filed. After reproducing it, I fixed it, in [[!commit c242e248e8ef350f7ab2474583b3f3d197c4ce4d]]
"""]]

View file

@ -0,0 +1,12 @@
Total newbie here, so I apologize in advice for asking dumb questions. I did my best to look through the branchable docs, Google, etc to no avail.
I'm trying to use git-annex to manage my music collection (on Windows). I added and pushed 669 songs to GitLab from my desktop.
At this point, my music is on both the first folder and GitLab (worth noting that I still don't know where to find the binaries on GitLab...).
Then just as a test, tried to clone the repo and run `git annex sync --content`.
I get the following error:
`error: dst ref refs/heads/synced/git-annex receives from more than one src.`
`error: failed to push some refs to 'git@gitlab.com:repolocation/Songs.git'`
I figure it's because the files are both on GitLab and the other folder, but I'm not sure how to proceed.
Would appreciate any help, thanks!

View file

@ -0,0 +1 @@
I am storing the pictures I took over the years with git-annex. Frequently I come across messy old directories with lots of pictures inside and I want to know which ones were already annexed - or which ones were not. Is there a quick way to test whether the content of a given file is already annexed? I mean computing the key (hash) of the given file and testing whether it is already present among the annex objects.

View file

@ -0,0 +1,8 @@
[[!comment format=mdwn
username="jpfeifer@4c6cf56b857caa324cbbc9f133705fb2fb3f9bef"
nickname="jpfeifer"
subject="Compatibility with recent version of Git for Windows"
date="2015-09-02T17:58:41Z"
content="""
Git for Windows now has a 64 bit version. Thus, the installation path must be adjusted accordingly. This page should note that git annex must be installed in the same folder as git itself.
"""]]