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

This commit is contained in:
Joey Hess 2020-07-24 14:15:44 -04:00
commit 2e241f92c7
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
11 changed files with 269 additions and 0 deletions

View file

@ -0,0 +1,17 @@
[[!comment format=mdwn
username="kyle"
avatar="http://cdn.libravatar.org/avatar/7d6e85cde1422ad60607c87fa87c63f3"
subject="comment 8"
date="2020-07-22T16:12:23Z"
content="""
> fixed made it cancel the threads 2 seconds after the process exited
> if still running. So there will be a bit of a slow down when using
> that broken ssh version, but it will work
Just to see this in action, in the Xenial VM, I checked out the parent
of 4c9ad1de4 (1df9e72a7) to get to a state that hangs with the demo
script. I then applied the fix (aa492bc65) on top. The hang is
avoided, and I see \"git-annex: AsyncCancelled\".
Thanks.
"""]]

View file

@ -0,0 +1,8 @@
[[!comment format=mdwn
username="kyle"
avatar="http://cdn.libravatar.org/avatar/7d6e85cde1422ad60607c87fa87c63f3"
subject="comment 5"
date="2020-07-22T16:01:03Z"
content="""
Great, thanks for the analysis and for applying the patch.
"""]]

View file

@ -0,0 +1,59 @@
### Please describe the problem.
since a bit of time i have a strange probleme. My git annex environement look like this :
A E
|\ /
| C--D
|/ \
B F.....G
the dot point because G is an external drive and can be plug anywhere else. let's say my last comit is **db1a9a** If i add some file on the repo from G and sync point to point like : i'm in G : git annex sync F a new commit is created say **61dacd** go F git annex sync D go D git annex sync E ...etc
at some point my commit **61dacd** becomme the parent of a new commit i dono the source ... let's say **4fcdae**
in git log i found
commit 4fcdae... (HEAD -> master, B/synced/ma ster, B/master, C/synced/master, C/master, synced/master)
and that commit just undo all the change done by the previous one, indeed :
git diff **4fcdae** **db1a9a** -> nothing
this... force me to play with branch like every time and anoyed me alot. I don't understand what's happening here. Does any one have any clue/insight on what i can do to fix this/investigate ?
All repo are at the commit **db1a9a** before i start...
best regards
### What steps will reproduce the problem?
i'm not sur on how i can reproduce it. It happens time to time.
### What version of git-annex are you using? On what operating system?
Ubuntu 18.04.4 LTS -> git-annex version: 6.20180227
Ubuntu 14.04.6 LTS -> git-annex version: 5.20140412ubuntu1
freebsd 12.1-RELEASE-p3 -> git-annex version: 7.20190626
debian 10.4 -> git-annex version: 7.20190129
debian 8.11 -> git-annex version: 5.20141125+oops-1+deb8u2
Ubuntu 18.04.4 LTS -> git-annex version: 6.20180227
### 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
# 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)
nope allways have this weird bug who come to haunt me time to time.

View file

@ -0,0 +1,26 @@
### Please describe the problem.
I did manage to reach the rabbit hole bottom in the troubleshooting of my unique inability to use argcomplete for shell completion in datalad: [datalad issue](https://github.com/datalad/datalad/issues/4538) [argcomplete issue](https://github.com/kislyuk/argcomplete/issues/303)
And the bottom looked liked:
```
$> IFS=$'\013' /usr/lib/git-annex.linux/git-annex version
[1] 1040489 segmentation fault (core dumped) IFS=$'\013' /usr/lib/git-annex.linux/git-annex version
$> IFS=$'\013' /usr/lib/git-annex.linux/git version
[1] 1040532 segmentation fault (core dumped) IFS=$'\013' /usr/lib/git-annex.linux/git version
```
whenever stock git is ok
```
$> IFS=$'\013' /usr/bin/git version
git version 2.27.0
```
most likely it is just a matter of sanitizing this variable in `runshell` or alike.
[[!meta author=yoh]]
[[!tag projects/datalad]]

View file

@ -0,0 +1,66 @@
[[!comment format=mdwn
username="yarikoptic"
avatar="http://cdn.libravatar.org/avatar/f11e9c84cb18d26a1748c33b48c924b4"
subject="comment 1"
date="2020-07-24T15:22:36Z"
content="""
- unsetting `IFS` at top of `runshell` \"fixes\" it but IMHO would not be proper since shell completion etc tools relying on passing it into calls of git etc would be effected.
-
<details><summary>`bash` somehow seems to be also avoiding the segfault:</summary>
```
$> IFS=$'\013' dash /usr/lib/git-annex.linux/git-annex version
[2] 1059479 segmentation fault (core dumped) IFS=$'\013' dash /usr/lib/git-annex.linux/git-annex version
1 9812 ->139 [1].....................................:Fri 24 Jul 2020 11:09:07 AM EDT:.
(git)lena:~/proj/misc/git[master]git
$> IFS=$'\013' posh /usr/lib/git-annex.linux/git-annex version
[2] 1059547 segmentation fault (core dumped) IFS=$'\013' posh /usr/lib/git-annex.linux/git-annex version
1 9813 ->139 [1].....................................:Fri 24 Jul 2020 11:09:12 AM EDT:.
(git)lena:~/proj/misc/git[master]git
$> IFS=$'\013' bash /usr/lib/git-annex.linux/git-annex version
git-annex version: 8.20200617+git192-g5849bd634-1~ndall+1
build flags: Assistant Webapp Pairing S3 WebDAV Inotify DBus DesktopNotify TorrentParser MagicMime Feeds Testsuite
dependency versions: aws-0.20 bloomfilter-2.0.1.0 cryptonite-0.25 DAV-1.3.3 feed-1.0.0.0 ghc-8.4.4 http-client-0.5.13.1 persistent-sqlite-2.8.2 torrent-10000.1.1 uuid-1.3.13 yesod-1.6.0
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 BLAKE2B256E BLAKE2B256 BLAKE2B512E BLAKE2B512 BLAKE2B160E BLAKE2B160 BLAKE2B224E BLAKE2B224 BLAKE2B384E BLAKE2B384 BLAKE2BP512E BLAKE2BP512 BLAKE2S256E BLAKE2S256 BLAKE2S160E BLAKE2S160 BLAKE2S224E BLAKE2S224 BLAKE2SP256E BLAKE2SP256 BLAKE2SP224E BLAKE2SP224 SHA1E SHA1 MD5E MD5 WORM URL
remote types: git gcrypt p2p S3 bup directory rsync web bittorrent webdav adb tahoe glacier ddar git-lfs hook external
operating system: linux x86_64
supported repository versions: 8
upgrade supported from repository versions: 0 1 2 3 4 5 6 7
```
</details>
- most likely `runshell` (etc) shims within standalone need to sanitize IFS only when they invoke some tools they use and which rely on IFS, but pass IFS as is into the actual call. It seems that the following patch does the trick
```diff
$> diff -Naur /home/yoh/proj/git-annex/standalone/linux/skel/runshell /usr/lib/git-annex.linux/runshell
--- /home/yoh/proj/git-annex/standalone/linux/skel/runshell 2020-03-08 10:37:15.462465282 -0400
+++ /usr/lib/git-annex.linux/runshell 2020-07-24 11:19:17.707935260 -0400
@@ -4,6 +4,9 @@
set -e
+orig_IFS=\"${IFS:-}\"
+unset IFS
+
os=\"$(uname -o 2>/dev/null || true)\"
base=\"$(dirname \"$0\")\"
@@ -238,6 +241,11 @@
cmd=sh
fi
+if [ -n \"${orig_IFS}\" ]; then
+ IFS=\"${orig_IFS}\"
+ export IFS
+fi
+
if [ -z \"$tbase\" ]; then
if [ \"$useproot\" ]; then
exec proot \"$cmd\" \"$@\"
```
and it seems that git shell completion then still works fine
"""]]

View file

@ -0,0 +1,10 @@
[[!comment format=mdwn
username="erewhon"
avatar="http://cdn.libravatar.org/avatar/b9bd5ad7176ebe149d0f051dcfe0a63e"
subject="comment 2"
date="2020-07-24T16:05:06Z"
content="""
Thanks Ilya,
This seems like a very nice solution. I had not known about metadata tags. I look forward to finding other uses for them as well.
"""]]

View file

@ -0,0 +1,18 @@
Hi everyone,
first thanks for the great software and community support. I am a big fan of git-annex for the longest time, even participated the kickstarter back then. Throughout this time, I also have helping a few professional photographers to manage their files. I can very much relate to Joeys original story for the assistant, thus felt the potential for it to be very useful for them.
However, even though I use git-annex personally and even tried a few projects with it, I did not manage to create the solution I envisioned for my friends. The use case is more about managing space, backing up and archiving. I will give more details below, but I am starting to lose hope. I tried a couple of approaches ([gateway][1], [rsync.net][2]) to no avail, but I still have the feeling it should be possible. Therefore, I bring forth my idea to put it out of its misery:
- The goal is to (a) use the glacier archive feature to get rid of closed projects, freeing up space and (b) to have a “cloud backup” of the worktree. The backup ideally would be something I could ``git clone`` in case of a disaster and still would be able to recover archived files from glacier (by moving it out of “archive” folder).
- Very importantly restriction, these users have no tech background, thus the whole process must be automated and as error free as possible. On the other hand, it does not need to be online, or even use the assistant at all. It would be fine to have rules like “takes 24h to recover an archive” (because of ``cron`` or whatever).
One optional feature is finding a use for the tons of external hard drives they hoarded over the years. The biggest hope here is not to have to rely on cheap hardware to store a lifework as soon as possible. Even though I try to help them to catalog projects and maintain multiple copies, it is inevitable that now and then something fails. I was really hopping git-annex would help here.
Thanks in advance and all the best!
f.
[1]: https://git-annex.branchable.com/forum/Is_it_possible_to_setup_a_git-annex_Glacier_gatway__63__/
[2]: https://git-annex.branchable.com/forum/using_rsync.net_as_backup_and_glacier_as_archive/

View file

@ -0,0 +1,40 @@
since a bit of time i have a strange probleme.
My git annex environement look like this :
A E
|\ /
| C--D
|/ \
B F.....G
the dot point because G is an external drive and can be plug anywhere else.
let's say my last comit is **db1a9a**
If i add some file on the repo from G and sync point to point like :
i'm in G :
git annex sync F
a new commit is created say **61dacd**
go F
git annex sync D
go D
git annex sync E ...etc
at some point my commit 61dacd becomme the parent of a new commit i dono the source ... let's say **4fcdae**
in git log i found
commit **4fcdae**... (HEAD -> master, B/synced/ma
ster, B/master, C/synced/master, C/master, synced/master)
and that commit just undo all the change done by the previous one, indeed :
git diff **4fcdae** **db1a9a**
-> nothing
this... force me to play with branch like every time and anoyed me alot. I don't understand what's happening here.
Does any one have any clue/insight on what i can do to fix this/investigate ?
All repo are at the commit db1a9a before i start...
best regards

View file

@ -0,0 +1,8 @@
[[!comment format=mdwn
username="karel-de-macil"
avatar="http://cdn.libravatar.org/avatar/46688332185c941113a9c9827cb093e9"
subject="comment 1"
date="2020-07-23T10:17:06Z"
content="""
just see i may-be should have put this in bug :( please forgive me.
"""]]

View file

@ -0,0 +1,8 @@
[[!comment format=mdwn
username="mreiden"
avatar="http://cdn.libravatar.org/avatar/00e411c947bed82f673935f36f6be689"
subject="Autobuild permissions"
date="2020-07-22T16:07:20Z"
content="""
It looks like the windows autobuild is updating based on the timestamps and the build-version contents (8.20200720.2-gd9ae6ab0b), but permission is denied on the exe file (https://downloads.kitenet.net/git-annex/autobuild/windows/git-annex-installer.exe).
"""]]

View file

@ -0,0 +1,9 @@
[[!comment format=mdwn
username="nix.zahlen@1211ac6c964ba2d68b70655f747bef1383032e77"
nickname="nix.zahlen"
avatar="http://cdn.libravatar.org/avatar/66cc45a05749fe8d4ca36d8c6071da51"
subject="It is really a pitty that the Windows port / version is unmaintained"
date="2020-07-24T17:48:07Z"
content="""
Is there maybe a how-to somewhere which describes how we could compile the source on Windows to have more recent versions?!
"""]]