Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A bit unrelated, do you know if there is a function
dir_exists
that checks if the path exists as a directory (or should we add one to use here)?I couldn't find one in
dir.c
, but I imagine all it would need is:There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The following exists in
builtin/clone.c
:It doesn't check the
S_ISDIR()
.I do see your interest in checking the type to make sure there isn't a file in the way. I'm not sure if there is enough value.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah I was on the fence as well, we've not seen this be a problem thus far.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good catch. Thanks!
I'll fix it Monday. I think I can just try the mkdir() and catch the EEXIST error code.
I avoided that because of the platform nature of the error codes.
(or just try the lstat() again inside the error case.)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please note that there is not only a
dir_exists()
, but also anis_directory()
function (the latter of which is public). There is even a ticket to reconcile them: gitgitgadget#230