Re: [RFC/PATCH v11 04/13] bisect--helper: `bisect_clean_state` shell function in C

2 messages, 2 authors, 2016-08-04 · open the first message on its own page

Re: [RFC/PATCH v11 04/13] bisect--helper: `bisect_clean_state` shell function in C

From: Junio C Hamano <hidden>
Date: 2016-08-04 15:46:53

Pranit Bauva [off-list ref] writes:
quoted
Also you do not seem to check the error from the function to smudge
the "result" you are returning from this function.
Yes I should combine the results from every removal.
quoted
Isn't unlink_or_warn() more correct helper to use here?
The shell code uses rm -f which is silent and it removes only if
present.
Isn't that what unlink_or_warn() do?  Call unlink() and happily
return if unlink() succeeds or errors with ENOENT (i.e. path didn't
exist in the first place), but otherwise reports an error (imagine:
EPERM).
So it makes me wonder which would be more appropriate
unlink_or_warn() or remove_or_warn() or remove_path(). Is
remove_path() different from its shell equivalent "rm -f"?
Read it again.
quoted
quoted
+     remove_path(git_path_bisect_start());
I can see that refs/files-backend.c misuses it already, but
remove_path() helper is about removing a path in the working tree,
together with any parent directory that becomes empty due to the
removal.  You do not expect $GIT_DIR/ to become an empty directory
after removing $GIT_DIR/BISECT_LOG nor want to rmdir $GIT_DIR even
if it becomes empty.  It is a wrong helper function to use here.

Re: [RFC/PATCH v11 04/13] bisect--helper: `bisect_clean_state` shell function in C

From: Pranit Bauva <hidden>
Date: 2016-08-04 16:07:18

Hey Junio,

On Thu, Aug 4, 2016 at 9:15 PM, Junio C Hamano [off-list ref] wrote:
Pranit Bauva [off-list ref] writes:
quoted
quoted
Also you do not seem to check the error from the function to smudge
the "result" you are returning from this function.
Yes I should combine the results from every removal.
quoted
Isn't unlink_or_warn() more correct helper to use here?
The shell code uses rm -f which is silent and it removes only if
present.
Isn't that what unlink_or_warn() do?  Call unlink() and happily
return if unlink() succeeds or errors with ENOENT (i.e. path didn't
exist in the first place), but otherwise reports an error (imagine:
EPERM).
Umm, I am confused. I tried "rm -f" with a non-existing file and it
does not show any warning or error.

Regards,
Pranit Bauva
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help