comment
This commit is contained in:
parent
00b29d17ad
commit
26953ad3a6
2 changed files with 45 additions and 0 deletions
|
@ -0,0 +1,29 @@
|
|||
[[!comment format=mdwn
|
||||
username="joey"
|
||||
subject="""comment 6"""
|
||||
date="2023-04-25T16:31:44Z"
|
||||
content="""
|
||||
I dug into your code, and datalad is parsing git-annex's (and perhaps
|
||||
git's in some cases) stderr to find error messages like this one for files
|
||||
that don't exist, and then it internally dummies up something as if git-annex
|
||||
were outputting a --json-error-messages record for the file. See
|
||||
`./datalad/support/annex_utils.py` `_get_non_existing_from_annex_output`
|
||||
|
||||
Ok, I can understand now how needing to do an additional form of unescaping
|
||||
on top of that existing pain point would cause the reaction I have seen in
|
||||
this bug report.
|
||||
|
||||
[[todo/api_for_telling_when_nonexistant_or_non_git_files_passed]] is a todo
|
||||
item I opened the last time I became aware of this error message parsing ugliness.
|
||||
(Also relevant is [this closed todo](https://git-annex.branchable.com/projects/datalad/bugs-done/copy_does_not_reflect_some_failed_copies_in_--json_output/)
|
||||
where I discuss why --json-error-messages cannot include these errors
|
||||
as-is.)
|
||||
|
||||
So the choice is between implementing
|
||||
[[todo/api_for_telling_when_nonexistant_or_non_git_files_passed]]
|
||||
and changing datalad to use that. Or adding a git config
|
||||
that avoids escaping filenames. The latter would be easy
|
||||
to do (and easier for datalad to use), but it kicks the can down the road.
|
||||
Datalad parsing error messages would continue to be a problem going
|
||||
forward. (Imagine if git-annex gets localized error messages..)
|
||||
"""]]
|
|
@ -0,0 +1,16 @@
|
|||
[[!comment format=mdwn
|
||||
username="joey"
|
||||
subject="""comment 3"""
|
||||
date="2023-04-25T16:57:58Z"
|
||||
content="""
|
||||
I see that datalad parses the error messages to get the filename that
|
||||
caused it, and so an exit status is not enough information.
|
||||
|
||||
(See `./datalad/support/annex_utils.py`
|
||||
`_get_non_existing_from_annex_output`)
|
||||
|
||||
So the additional json would need to include the filename that didn't exist,
|
||||
perhaps something like this:
|
||||
|
||||
{"file", "foo", "error-messages":["foo not found"]}
|
||||
"""]]
|
Loading…
Reference in a new issue