Merge branch 'master' into preferred
This commit is contained in:
commit
12451ea010
22 changed files with 443 additions and 7 deletions
|
@ -27,3 +27,5 @@ git: 'annex' is not a git command. See 'git --help'.
|
|||
### 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, been using it for many years and couldn't live without it.
|
||||
|
||||
[[!meta title="termux install adds git-annex only to bash path, not zsh etc"]]
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
[[!comment format=mdwn
|
||||
username="anthony@ad39673d230d75cbfd19d2757d754030049c7673"
|
||||
nickname="anthony"
|
||||
avatar="http://cdn.libravatar.org/avatar/05b48b72766177b3b0a6ff4afdb70790"
|
||||
subject="Should be in ~/.profile"
|
||||
date="2019-05-14T19:15:07Z"
|
||||
content="""
|
||||
At least here (on two Android devices I've used the installer on), the installer sets up ~/.profile to add git-annex to PATH.
|
||||
"""]]
|
|
@ -0,0 +1,16 @@
|
|||
[[!comment format=mdwn
|
||||
username="branchable@bafd175a4b99afd6ed72501042e364ebd3e0c45e"
|
||||
nickname="branchable"
|
||||
avatar="http://cdn.libravatar.org/avatar/ae41dba34ee6000056f00793c695be75"
|
||||
subject="Are we talking about a different installer?"
|
||||
date="2019-05-14T19:57:41Z"
|
||||
content="""
|
||||
This is the one I used: <http://git-annex.branchable.com/install/Android/git-annex-install>
|
||||
|
||||
The comment near the top even explicitly admits that it doesn't permanently set up `$PATH`:
|
||||
|
||||
```
|
||||
# This script needs to be sourced into the current termux shell, rather
|
||||
# than run with a new shell, so it can set the PATH to include git-annex.
|
||||
```
|
||||
"""]]
|
|
@ -0,0 +1,16 @@
|
|||
[[!comment format=mdwn
|
||||
username="anthony@ad39673d230d75cbfd19d2757d754030049c7673"
|
||||
nickname="anthony"
|
||||
avatar="http://cdn.libravatar.org/avatar/05b48b72766177b3b0a6ff4afdb70790"
|
||||
subject="comment 3"
|
||||
date="2019-05-15T17:55:58Z"
|
||||
content="""
|
||||
Yep, that's the same installer. After running it on my phone, I have a `~/.profile`:
|
||||
|
||||
```
|
||||
$ cat .profile
|
||||
PATH=$PATH:/data/data/com.termux/files/home/git-annex.linux
|
||||
```
|
||||
|
||||
The code that adds it is in `~/git-annex.linux/runshell` (which is a shell script). That'd be a good place to start debugging if your `~/.profile` doesn't have the path line.
|
||||
"""]]
|
|
@ -0,0 +1,9 @@
|
|||
[[!comment format=mdwn
|
||||
username="branchable@bafd175a4b99afd6ed72501042e364ebd3e0c45e"
|
||||
nickname="branchable"
|
||||
avatar="http://cdn.libravatar.org/avatar/ae41dba34ee6000056f00793c695be75"
|
||||
subject=".profile doesn't take effect"
|
||||
date="2019-05-18T19:46:09Z"
|
||||
content="""
|
||||
Ah, interesting. Very odd that the install script doesn't do that directly. I do have the same contents in my `~/.profile`, but Termux happily ignores it, so `$PATH` is unaltered. Does it really work for you? What version of Termux do you have?
|
||||
"""]]
|
|
@ -0,0 +1,9 @@
|
|||
[[!comment format=mdwn
|
||||
username="anthony@2b89f08c5c67f83d920fe464d7363db8f45cec20"
|
||||
nickname="anthony"
|
||||
avatar="http://cdn.libravatar.org/avatar/5d9fb1b0dd5ae1428c4c5b7df8d26bf2"
|
||||
subject="comment 5"
|
||||
date="2019-05-19T08:39:09Z"
|
||||
content="""
|
||||
I have the latest from the Play store on one device and the latest from F-Droid on the other. Is it possible you have a bash_profile or bash_login? If so, then I believe bash won't read profile.
|
||||
"""]]
|
|
@ -0,0 +1,9 @@
|
|||
[[!comment format=mdwn
|
||||
username="branchable@bafd175a4b99afd6ed72501042e364ebd3e0c45e"
|
||||
nickname="branchable"
|
||||
avatar="http://cdn.libravatar.org/avatar/ae41dba34ee6000056f00793c695be75"
|
||||
subject="it's zsh"
|
||||
date="2019-05-19T10:05:27Z"
|
||||
content="""
|
||||
I figured it out - I changed my default shell to `zsh`, which doesn't read `.profile`. IMHO the installation should also set up `.zprofile` in the same way.
|
||||
"""]]
|
|
@ -0,0 +1,12 @@
|
|||
[[!comment format=mdwn
|
||||
username="joey"
|
||||
subject="""comment 7"""
|
||||
date="2019-05-20T13:52:37Z"
|
||||
content="""
|
||||
There are a lot of shells, and AFAIK no single place an environment
|
||||
variable can be put that works with all of them.
|
||||
|
||||
I'm inclined to say that working with termux's default shell is all this
|
||||
needs to do, and if the user installs some other shell, it's up to them to
|
||||
configure it.
|
||||
"""]]
|
9
doc/bugs/Show_current_config_of_special_remote.mdwn
Normal file
9
doc/bugs/Show_current_config_of_special_remote.mdwn
Normal file
|
@ -0,0 +1,9 @@
|
|||
### Please describe the problem.
|
||||
There appears to be no way of getting the current configuration of special remotes (e.g. url, keyid). Maybe there should be git-annex-showremote (or similar).
|
||||
|
||||
### What steps will reproduce the problem?
|
||||
Configure the special remote (e.g. webdav), and then forget what settings you specified ;)
|
||||
|
||||
### What version of git-annex are you using? On what operating system?
|
||||
7.20190129-3 (Debian)
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
[[!comment format=mdwn
|
||||
username="derobert"
|
||||
avatar="http://cdn.libravatar.org/avatar/05b48b72766177b3b0a6ff4afdb70790"
|
||||
subject="comment 1"
|
||||
date="2019-05-16T08:12:45Z"
|
||||
content="""
|
||||
Did you try `git-annex info «remote»` (where «remote» could be the name or the UUID).
|
||||
"""]]
|
|
@ -0,0 +1,8 @@
|
|||
[[!comment format=mdwn
|
||||
username="aragilar"
|
||||
avatar="http://cdn.libravatar.org/avatar/7390f7c0dd07d43ca827a5446b65c102"
|
||||
subject="comment 2"
|
||||
date="2019-05-16T08:26:28Z"
|
||||
content="""
|
||||
Weird, I tried that on the same remote on a different system, and it gave what I wanted... I'll have to work out why that didn't work the first time. Thanks @derobert!
|
||||
"""]]
|
|
@ -0,0 +1,20 @@
|
|||
### Please describe the problem.
|
||||
The man page for [[`git-annex-init`|git-annex-init]] suggests that it is idempotent. But, when run with no args, it will overwrite an existing repo description with an automatically-generated one. Same for [[`git-annex-describe`|git-annex-describe]].
|
||||
|
||||
### What version of git-annex are you using? On what operating system?
|
||||
(master_env_v135_py36) 13:44 [r2] $ git annex version
|
||||
git-annex version: 7.20190507-g0c2cc3d
|
||||
build flags: Assistant Webapp Pairing S3 WebDAV Inotify DBus DesktopNotify TorrentParser MagicMime Feeds Testsuite
|
||||
dependency versions: aws-0.21.1 bloomfilter-2.0.1.0 cryptonite-0.25 DAV-1.3.3 feed-1.0.1.0 ghc-8.4.2 http-client-0.5.14 persistent-sq\
|
||||
lite-2.9.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 BLA\
|
||||
KE2B224E BLAKE2B224 BLAKE2B384E BLAKE2B384 BLAKE2S256E BLAKE2S256 BLAKE2S160E BLAKE2S160 BLAKE2S224E BLAKE2S224 BLAKE2SP256E BLAKE2SP\
|
||||
256 BLAKE2SP224E BLAKE2SP224 SHA1E SHA1 MD5E MD5 WORM URL
|
||||
remote types: git gcrypt p2p S3 bup directory rsync web bittorrent webdav adb tahoe glacier ddar hook external
|
||||
operating system: linux x86_64
|
||||
supported repository versions: 5 7
|
||||
upgrade supported from repository versions: 0 1 2 3 4 5 6
|
||||
local repository version: 5
|
||||
(master_env_v135_py36) 13:47 [r2] $ uname -a
|
||||
Linux ip-172-31-90-58.ec2.internal 4.14.114-105.126.amzn2.x86_64 #1 SMP Tue May 7 02:26:40 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
|
|
@ -0,0 +1,46 @@
|
|||
### Please describe the problem.
|
||||
|
||||
Trying to do a "git-annex reinit" on Android (sdcard) fails with an error about failing to set a permission. I tried "git-annex init" as well, and that gave the same error.
|
||||
|
||||
### What steps will reproduce the problem?
|
||||
|
||||
```
|
||||
$ git clone ssh://user@host/Westerley-Board.git
|
||||
⋮
|
||||
$ cd Westerley-Board/
|
||||
$ git-annex reinit bc11f6b5-753c-4aeb-88e2-0c2f582e9901
|
||||
reinit bc11f6b5-753c-4aeb-88e2-0c2f582e9901 warning: Cannot protect .git/config on this file system - do not store sensitive information here.
|
||||
|
||||
Detected a filesystem without fifo support.
|
||||
|
||||
Disabling ssh connection caching.
|
||||
warning: Cannot protect .git/config on this file system - do not store sensitive information here.
|
||||
|
||||
Detected a crippled filesystem.
|
||||
warning: Cannot protect .git/config on this file system - do not store sensitive information here.
|
||||
(merging origin/git-annex into git-annex...)
|
||||
(recording state in git...)
|
||||
warning: Cannot protect .git/config on this file system - do not store sensitive information here.
|
||||
warning: Cannot protect .git/config on this file system - do not store sensitive information here.
|
||||
warning: Cannot protect .git/config on this file system - do not store sensitive information here.
|
||||
(scanning for unlocked files...)
|
||||
|
||||
git-annex: .git/annex/keys.tmp/db: setFileMode: permission denied (Operation not permitted)
|
||||
failed
|
||||
git-annex: reinit: 1 failed
|
||||
```
|
||||
|
||||
`git-annex init` fails with the same error.
|
||||
|
||||
### What version of git-annex are you using? On what operating system?
|
||||
|
||||
OS: Android, on a Amazon Fire Tablet 10. Installed in Termux via the new method (the script); edited the script to tell it to use armel on armv8l. (Supposedly a 64-bit chip, but the Android build is apparently 32-bit).
|
||||
|
||||
git-annex version: 7.20190504-g5638ae968
|
||||
|
||||
### Please provide any additional information below.
|
||||
|
||||
|
||||
### 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 have been using it on this tablet for a while, using the previous Android install steps. That was always a bit buggy, was hoping to upgrade to the new method. I also use git-annex on a bunch of Debian boxes, where it is wonderful. Have somewhere between ½ and ¾ TB data in git-annex, in enough repositories and copied to enough machines that I'd have to sit down and think about it to count them all.
|
|
@ -0,0 +1,17 @@
|
|||
It seems that the [[issue with parallel git-annex-add|bugs/withOtherTmp_file_escapes]] is not yet quite fixed; I'm seeing it in the git-annex version 7.20190507-g0c2cc3d . Repeating the git-annex-add command succeeds in adding the files that failed the first time.
|
||||
|
||||
[[!format sh """
|
||||
add benchmarks/rabies200/analysis-FK7BF7Q0761xKv6V3z3gzZgK/benchmark_variants/v1.23.0_spades-3.13.0-trinity-metaspades-01/inputs-local.json
|
||||
git-annex: .git/annex/othertmp/inge11793-2931: rename: permission denied (Permission denied)
|
||||
failed
|
||||
add benchmarks/rabies200/analysis-FK7BKGj0761VgPb22550gfBX/benchmark_variants/v1.23.0_spades-3.13.0-trinity-metaspades-01/inputs-local.json
|
||||
git-annex: .git/annex/othertmp/inge11793-3330: rename: permission denied (Permission denied)
|
||||
failed
|
||||
git-annex: add: 2 failed
|
||||
"""]]
|
||||
|
||||
### 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)
|
||||
|
||||
git-annex has become an essential tool for organizing my bioinformatics data analyses. It scales well to large repos. It lets me keep track of analyses without
|
||||
locking myself into any specific cloud platform. It lets me quickly free up space on demand by moving data to cheaper storage, with the assurance that nothing will get lost.
|
||||
Thanks @joeyh for all your work on it.
|
21
doc/bugs/surprising_import_tree_merge_result.mdwn
Normal file
21
doc/bugs/surprising_import_tree_merge_result.mdwn
Normal file
|
@ -0,0 +1,21 @@
|
|||
Had a surprising result of an import tree merge. I am importing photos
|
||||
from my phone. I had earlier imported some photos and moved the whole tree
|
||||
containing them from phone/DCIM to raw/photos/something. Then I took a new photo,
|
||||
and imported again.
|
||||
|
||||
one. In commit cd55a5be377020b7261c3a737b5e32a01e22f4b8 "import from phone"
|
||||
that added a `phone/DCIM/Camera/IMG_20190516_111640.jpg`.
|
||||
|
||||
But then in the merge commit a548a51de2566c26f74b5791eb0660e4d79e2cb7
|
||||
that merged phone/master into master, the new photo moved into
|
||||
raw/photos/something
|
||||
|
||||
This is quite surprising. It seems somehow when it modified the old
|
||||
tree, it rooted the new at the location the old had been moved to in
|
||||
master.
|
||||
|
||||
----
|
||||
|
||||
Also, commit cd55a5be377020b7261c3a737b5e32a01e22f4b8 had no parent, so
|
||||
git diff --stat shows it as adding every file that was in the tree before
|
||||
as well as the imported files, which seems wrong at least visually.
|
|
@ -0,0 +1,28 @@
|
|||
[[!comment format=mdwn
|
||||
username="Ilya_Shlyakhter"
|
||||
avatar="http://cdn.libravatar.org/avatar/1647044369aa7747829c38b9dcc84df0"
|
||||
subject="comment 5"
|
||||
date="2019-05-14T19:23:33Z"
|
||||
content="""
|
||||
Still seeing this bug with the latest git-annex, during a parallel git-annex-add:
|
||||
|
||||
add pipelines/cromwell-executions/assemble_denovo/ffcbdd7a-f4b2-427f-9aee-b286ff66e42c/call-refine_2x_and_plot/execution/gatk/resource\
|
||||
s/exampleBAM.bam.bai ok
|
||||
add pipelines/cromwell-executions/assemble_denovo/ffcbdd7a-f4b2-427f-9aee-b286ff66e42c/call-refine_2x_and_plot/execution/script ok
|
||||
(recording state in git...)
|
||||
add pipelines/cromwell-executions/assemble_denovo/3cbe618f-fcb6-4afd-8342-cec631894c66/call-scaffold/execution/stderr
|
||||
git-annex: .git/annex/othertmp/ingest-stderr61432-7295: rename: permission denied (Permission denied)
|
||||
failed
|
||||
add pipelines/cromwell-executions/assemble_denovo/3f716be9-b496-4f08-9bc9-5dc5e65e0111/call-assemble/execution/stderr
|
||||
git-annex: .git/annex/othertmp/ingest-stderr61432-7830: rename: permission denied (Permission denied)
|
||||
failed
|
||||
add pipelines/cromwell-executions/assemble_denovo/4099e3b6-30e8-47cd-8daf-f178cf15bbc2/call-scaffold/execution/stderr.background
|
||||
git-annex: .git/annex/othertmp/inge61432-8197: rename: permission denied (Permission denied)
|
||||
failed
|
||||
add pipelines/cromwell-executions/assemble_denovo/4794a803-878a-4d8b-8ef1-ffff68278d74/call-scaffold/execution/LASV_NGA_2018_1286.lLAS\
|
||||
V_pool1.7.assembly1-trinity-spades.intermediate_gapfill.fasta
|
||||
git-annex: .git/annex/othertmp/ingest-LASV_NGA_2018_1286.lLASV_pool1.7.assembly1-trinity-spades61432-8746.interm: rename: permission d\
|
||||
enied (Permission denied)
|
||||
failed
|
||||
|
||||
"""]]
|
|
@ -0,0 +1,51 @@
|
|||
[[!comment format=mdwn
|
||||
username="michael.hanke@c60e12358aa3fc6060531bdead1f530ac4d582ec"
|
||||
nickname="michael.hanke"
|
||||
avatar="http://cdn.libravatar.org/avatar/f881df265a423e4f24eff27c623148fd"
|
||||
subject="Empty lines sent by git-annex to an external special remote"
|
||||
date="2019-05-14T06:36:11Z"
|
||||
content="""
|
||||
I am implementing a special remote using https://github.com/Lykos153/AnnexRemote
|
||||
|
||||
I found that the annexremote leaves the `readline()` loop once it receives an empty line from git-annex over stdin (https://github.com/Lykos153/AnnexRemote/blob/master/annexremote/annexremote.py#L410). Given that the protocol description says nothing about empty lines this may or may not be sensible. However, I also found that git-annex does (sometimes?) sends empty lines. Here is an excerpt:
|
||||
|
||||
```
|
||||
% git annex --debug copy --to inm7 down/cope1.feat/report_log.html
|
||||
...
|
||||
[2019-05-14 07:45:43.350358695] git-annex-remote-inm7[1] <-- TRANSFER STORE MD5E-s48796--33a9884cc35c891f693958b9dd7fccd6.html .git/annex/objects/mj/Kx/MD5E-s48796--33a9884cc35c891f693958b9dd7fccd6.html/MD5E-s48796--33a9884cc35c891f693958b9dd7fccd6.html
|
||||
<<INCOMING ''
|
||||
(repeated a total of 22 times)
|
||||
...
|
||||
<<INCOMING 'TRANSFER STORE MD5E-s48796--33a9884cc35c891f693958b9dd7fccd6.html .git/annex/objects/mj/Kx/MD5E-s48796--33a9884cc35c891f693958b9dd7fccd6.html/MD5E-s48796--33a9884cc35c891f693958b9dd7fccd6.html\n'
|
||||
```
|
||||
|
||||
where '<<INCOMING' reports anything that is read via `readline()` from the special remote's `stdin`. So 22 empty lines are read from
|
||||
`stdin` before the `TRANSFER STORE` reported by git-annex to have been sent actually appears.
|
||||
|
||||
If I drive the remote implementation \"by hand\" I don't see anything wrong, and no non-protocol output:
|
||||
|
||||
```
|
||||
% git-annex-remote-inm7
|
||||
VERSION 1
|
||||
EXTENSIONS INFO
|
||||
EXTENSIONS
|
||||
PREPARE
|
||||
GETCONFIG dataset_uuid
|
||||
VALUE dda42d6c-7231-11e9-a901-0050b6902ef0
|
||||
PREPARE-SUCCESS
|
||||
CHECKPRESENT MD5E-s48796--33a9884cc35c891f693958b9dd7fccd6.html
|
||||
DIRHASH MD5E-s48796--33a9884cc35c891f693958b9dd7fccd6.html
|
||||
VALUE mj/Kx/
|
||||
CHECKPRESENT-FAILURE MD5E-s48796--33a9884cc35c891f693958b9dd7fccd6.html
|
||||
TRANSFER STORE MD5E-s48796--33a9884cc35c891f693958b9dd7fccd6.html .git/annex/objects/mj/Kx/MD5E-s48796--33a9884cc35c891f693958b9dd7fccd6.html/MD5E-s48796--33a9884cc35c891f693958b9dd7fccd6.html
|
||||
DIRHASH MD5E-s48796--33a9884cc35c891f693958b9dd7fccd6.html
|
||||
VALUE mj/Kx/
|
||||
TRANSFER-SUCCESS STORE MD5E-s48796--33a9884cc35c891f693958b9dd7fccd6.html
|
||||
```
|
||||
|
||||
If git-annex runs it, I see empty lines appearing only after `CHECKPRESENT-FAILURE`.
|
||||
|
||||
Which purpose do these empty lines serve? Under what conditions would an empty response from git-annex occur?
|
||||
|
||||
Thx!
|
||||
"""]]
|
|
@ -0,0 +1,9 @@
|
|||
[[!comment format=mdwn
|
||||
username="michael.hanke@c60e12358aa3fc6060531bdead1f530ac4d582ec"
|
||||
nickname="michael.hanke"
|
||||
avatar="http://cdn.libravatar.org/avatar/f881df265a423e4f24eff27c623148fd"
|
||||
subject="Re: Empty lines sent by git-annex to an external special remote"
|
||||
date="2019-05-14T08:48:27Z"
|
||||
content="""
|
||||
Sorry for the noise. The reason was that my special remote was calling SSH internally and the parent's `stdin` was connected to the SSH process -- which confused all involved parties.
|
||||
"""]]
|
|
@ -0,0 +1,17 @@
|
|||
[[!comment format=mdwn
|
||||
username="joey"
|
||||
subject="""comment 43"""
|
||||
date="2019-05-14T19:27:11Z"
|
||||
content="""
|
||||
Notice that the --debug flag shows how this protocol is flowing in
|
||||
both directions.
|
||||
|
||||
<-- TRANSFER STORE ...
|
||||
--> TRANSFER-SUCCESS STORE ...
|
||||
|
||||
The first line was sent from git-annex to the external special remote
|
||||
program, and the second line was its reply to git-annex.
|
||||
|
||||
This is very handy for understanding when something strange seems to be
|
||||
happening with the protocol.
|
||||
"""]]
|
20
doc/devblog/day_587__import_preferred_content.mdwn
Normal file
20
doc/devblog/day_587__import_preferred_content.mdwn
Normal file
|
@ -0,0 +1,20 @@
|
|||
I've developed a plan for how to handle [[todo/export_preferred_content]].
|
||||
And today I'm working on making `git annex import --from remote` honor
|
||||
the preferred content of the remote. It doesn't make sense to support it
|
||||
for one and not the other, so this is on the `preferred` git branch for now.
|
||||
|
||||
One use case for this is to configure an import to exclude certain file
|
||||
extensions or directories. Such unwanted content will be left as-is
|
||||
in the remote's data store, but won't be imported, so from git-annex's
|
||||
POV, it won't be present on the remote.
|
||||
|
||||
The tricky thing is, when importing, the key is not known until the file
|
||||
is downloaded, but you don't want git-annex downloading content that is not
|
||||
preferred. I'm finessing that problem by checking the subset of preferred
|
||||
content expressions that are not dependent on the file's content, which will
|
||||
avoid downloads of unwanted content in probably most cases.
|
||||
|
||||
What should it do when the preferred content expression is dependent on
|
||||
the file's content? I'm undecided if it's better to warn and not import,
|
||||
or to download the content once in order to check the preferred content
|
||||
expression, and then throw unwanted content away.
|
|
@ -0,0 +1,76 @@
|
|||
[[!comment format=mdwn
|
||||
username="ply"
|
||||
avatar="http://cdn.libravatar.org/avatar/1270501a59ed4a4042366b00295fe236"
|
||||
subject="comment 3"
|
||||
date="2019-05-17T20:55:48Z"
|
||||
content="""
|
||||
Hello, I have similar problem, but with exFAT on macOS 10.13.6. Output is not stripped, it's no filename there:
|
||||
|
||||
```
|
||||
$ git annex info --fast --debug
|
||||
[2019-05-17 22:42:09.997466] read: git [\"--git-dir=.git\",\"--work-tree=.\",\"--literal-pathspecs\",\"show-ref\",\"git-annex\"]
|
||||
[2019-05-17 22:42:12.914831] process done ExitSuccess
|
||||
[2019-05-17 22:42:12.915017] read: git [\"--git-dir=.git\",\"--work-tree=.\",\"--literal-pathspecs\",\"show-ref\",\"--hash\",\"refs/heads/git-annex\"]
|
||||
[2019-05-17 22:42:12.953171] process done ExitSuccess
|
||||
[2019-05-17 22:42:12.953815] read: git [\"--git-dir=.git\",\"--work-tree=.\",\"--literal-pathspecs\",\"log\",\"refs/heads/git-annex..a0409bc558f0ed6679bf591e80f9782f1cd81da3\",\"--pretty=%H\",\"-n1\"]
|
||||
[2019-05-17 22:42:12.995305] process done ExitSuccess
|
||||
[2019-05-17 22:42:12.996023] chat: git [\"--git-dir=.git\",\"--work-tree=.\",\"--literal-pathspecs\",\"hash-object\",\"-w\",\"--stdin-paths\",\"--no-filters\"]
|
||||
[2019-05-17 22:42:13.014492] chat: git [\"--git-dir=.git\",\"--work-tree=.\",\"--literal-pathspecs\",\"cat-file\",\"--batch\"]
|
||||
[2019-05-17 22:42:13.029075] chat: git [\"--git-dir=.git\",\"--work-tree=.\",\"--literal-pathspecs\",\"cat-file\",\"--batch-check=%(objectname) %(objecttype) %(objectsize)\"]
|
||||
[2019-05-17 22:42:13.043862] feed: git [\"--git-dir=.git\",\"--work-tree=.\",\"--literal-pathspecs\",\"update-index\",\"-z\",\"--index-info\"]
|
||||
[2019-05-17 22:42:13.050909] read: git [\"--git-dir=.git\",\"--work-tree=.\",\"--literal-pathspecs\",\"diff-index\",\"--raw\",\"-z\",\"-r\",\"--no-renames\",\"-l0\",\"--cached\",\"refs/heads/git-annex\",\"--\"]
|
||||
[2019-05-17 22:42:14.066638] process done ExitSuccess
|
||||
[2019-05-17 22:42:14.08207] process done ExitSuccess
|
||||
[2019-05-17 22:42:14.090912] feed: git [\"--git-dir=.git\",\"--work-tree=.\",\"--literal-pathspecs\",\"update-index\",\"-z\",\"--index-info\"]
|
||||
[2019-05-17 22:42:15.852868] process done ExitSuccess
|
||||
(recording state in git...)
|
||||
[2019-05-17 22:42:15.868392] read: git [\"--git-dir=.git\",\"--work-tree=.\",\"--literal-pathspecs\",\"write-tree\"]
|
||||
[2019-05-17 22:42:17.763573] process done ExitSuccess
|
||||
[2019-05-17 22:42:17.763746] chat: git [\"--git-dir=.git\",\"--work-tree=.\",\"--literal-pathspecs\",\"commit-tree\",\"20ab70e8f50d62cc8d9657eaaff71cce88dfaa21\",\"--no-gpg-sign\",\"-p\",\"refs/heads/git-annex\"]
|
||||
[2019-05-17 22:42:17.800472] process done ExitSuccess
|
||||
[2019-05-17 22:42:17.800747] call: git [\"--git-dir=.git\",\"--work-tree=.\",\"--literal-pathspecs\",\"update-ref\",\"refs/heads/git-annex\",\"e0259808f7fbed2ce7cf0d8080dabb8d208c0da1\"]
|
||||
[2019-05-17 22:42:17.867585] process done ExitSuccess
|
||||
|
||||
git-annex: openFile: resource busy (file is locked)
|
||||
failed
|
||||
[2019-05-17 22:42:17.870299] process done ExitSuccess
|
||||
[2019-05-17 22:42:17.875024] process done ExitSuccess
|
||||
[2019-05-17 22:42:17.886388] process done ExitSuccess
|
||||
```
|
||||
|
||||
I tried `sudo dtruss -f git annex info --fast --debug`, and this is an excerpt from the terminal:
|
||||
|
||||
```
|
||||
82503/0x1b0045: write(0x2, \"[2019-05-17 22:29:55.91659] process done ExitSuccess\n\0\", 0x35) = 53 0
|
||||
82503/0x1b0045: mkdir(\".git/annex\0\", 0x1FF, 0x0) = -1 Err#17
|
||||
82503/0x1b0045: stat64(\".git/annex\0\", 0x4200038E40, 0x0) = 0 0
|
||||
82503/0x1b0045: getpid(0x0, 0x0, 0x0) = 82503 0
|
||||
82503/0x1b0045: open(\".git/annex/index.lck82503-2.tmp\0\", 0x20A06, 0x180) = 13 0
|
||||
82503/0x1b0045: fstat64(0xD, 0x420004D050, 0x0) = 0 0
|
||||
82503/0x1b0045: stat64(\".git/annex\0\", 0x420004D1D0, 0x0) = 0 0
|
||||
82503/0x1b0045: mkdir(\".git/annex\0\", 0x1FF, 0x0) = -1 Err#17
|
||||
82503/0x1b0045: stat64(\".git/annex\0\", 0x420004D3A0, 0x0) = 0 0
|
||||
82503/0x1b0045: open(\".git/annex/index.lck82503-3.tmp\0\", 0x20A06, 0x180) = 21 0
|
||||
82503/0x1b0045: fstat64(0x15, 0x420004D580, 0x0) = 0 0
|
||||
82503/0x1b0045: close(0xC) = 0 0
|
||||
82503/0x1b0045: poll(0x7FFEEC5CC810, 0x1, 0x0) = 1 0
|
||||
82503/0x1b0045: write(0x1, \"\n\0\", 0x1) = 1 0
|
||||
82503/0x1b0045: poll(0x7FFEEC5CC810, 0x1, 0x0) = 1 0
|
||||
82503/0x1b0045: write(0x2, \"git-annex: openFile: resource busy (file is locked)\n\0\", 0x34) = 52 0
|
||||
```
|
||||
|
||||
Removing `.git/annex/*.lck*` hadn't helped.
|
||||
|
||||
I use git-annex version 7.20190322 from Homebrew:
|
||||
|
||||
```
|
||||
build flags: Assistant Webapp Pairing S3(multipartupload)(storageclasses) WebDAV FsEvents TorrentParser MagicMime Feeds Testsuite
|
||||
dependency versions: aws-0.19 bloomfilter-2.0.1.0 cryptonite-0.25 DAV-1.3.3 feed-1.0.1.0 ghc-8.2.2 http-client-0.5.14 persistent-sqlite-2.6.4 torrent-10000.1.1 uuid-1.3.13 yesod-1.4.5
|
||||
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 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 hook external
|
||||
operating system: darwin x86_64
|
||||
supported repository versions: 5 7
|
||||
upgrade supported from repository versions: 0 1 2 3 4 5 6
|
||||
local repository version: 7
|
||||
```
|
||||
"""]]
|
|
@ -121,11 +121,35 @@ a subtree.
|
|||
> remote in that group. This seems surprising!
|
||||
>
|
||||
> Maybe better than guessing would be to limit preferred content
|
||||
> expression matching for importing to terms that don't require guessing.
|
||||
> If an expression is found to require guessing, display a warning and
|
||||
make the whole expression match. OR download the content
|
||||
> from the remote, generate a key from it, and match the preferred
|
||||
> content expression at that point. That avoids any surprises at
|
||||
> the expense of an unnessary download. As long as the ContentIdentifier to
|
||||
> expression matching for importing to terms that don't require the key.
|
||||
> If an expression is found to require the key, display a warning and
|
||||
> don't import.
|
||||
>
|
||||
> OR download the content
|
||||
> from the remote, generate a key from it, and re-match the preferred
|
||||
> content expression. That avoids any surprises and supports all
|
||||
> expressions at the expense of an unnessary download. As long as the ContentIdentifier to
|
||||
> Key mapping gets updated, it will only download a given file unncessarily
|
||||
one time.
|
||||
> one time.
|
||||
>
|
||||
> Which approach is better? Note that almost all of the standard groups
|
||||
> do depend on the key. But it seems very likely that most actual
|
||||
> uses of this feature would involve the name or size of a file that's
|
||||
> being imported, and nothing else.
|
||||
>
|
||||
> > started work on this in the `preferred` branch. --[[Joey]]
|
||||
|
||||
## different preferred content for export and import?
|
||||
|
||||
May be cases where this makes sense. For example, I might make my phone
|
||||
prefer all content that has some metadata set, but want to import all files
|
||||
from my phone (or all files except those in the music directory).
|
||||
|
||||
OTOH, that config would cause files imported from the phone to be removed
|
||||
from it on the next export, unless the necessary metadata got set; git
|
||||
annex sync --content would not work well.
|
||||
|
||||
Better example: Make the phone want all content that is in the laptop
|
||||
group, so all files on my laptop export to the phone but not others that I
|
||||
have archived. But want to import all files from the phone, which is not in
|
||||
the laptop group, so need a separate expression for import.
|
||||
|
|
Loading…
Add table
Reference in a new issue