From: René Scharfe Date: Sun, 08 Sep 2013 12:30:50 GMT Subject: Re: [PATCH] dir: remove dead code Message-ID: <522C6DFA.10204@web.de> In-Reply-To: <1378620563-32709-1-git-send-email-artagnon@gmail.com> Am 08.09.2013 08:09, schrieb Ramkumar Ramachandra: > Remove dead code around remove_dir_recursively(). This basically reverts ae2f203e (clean: preserve nested git worktree in subdirectories). t7300 still seems to pass, though. I wonder why. > > Signed-off-by: Ramkumar Ramachandra > --- > dir.c | 21 ++++----------------- > 1 file changed, 4 insertions(+), 17 deletions(-) > > diff --git a/dir.c b/dir.c > index 910bfcd..2b31241 100644 > --- a/dir.c > +++ b/dir.c > @@ -1464,11 +1464,11 @@ int is_empty_dir(const char *path) > return ret; > } > > -static int remove_dir_recurse(struct strbuf *path, int flag, int *kept_up) > +int remove_dir_recursively(struct strbuf *path, int flag) > { > DIR *dir; > struct dirent *e; > - int ret = 0, original_len = path->len, len, kept_down = 0; > + int ret = 0, original_len = path->len, len; > int only_empty = (flag & REMOVE_DIR_EMPTY_ONLY); > int keep_toplevel = (flag & REMOVE_DIR_KEEP_TOPLEVEL); > unsigned char submodule_head[20]; > @@ -1476,8 +1476,6 @@ static int remove_dir_recurse(struct strbuf *path, int flag, int *kept_up) > if ((flag & REMOVE_DIR_KEEP_NESTED_GIT) && > !resolve_gitlink_ref(path->buf, "HEAD", submodule_head)) { > /* Do not descend and nuke a nested git work tree. */ > - if (kept_up) > - *kept_up = 1; > return 0; > } > > @@ -1504,7 +1502,7 @@ static int remove_dir_recurse(struct strbuf *path, int flag, int *kept_up) > if (lstat(path->buf, &st)) > ; /* fall thru */ > else if (S_ISDIR(st.st_mode)) { > - if (!remove_dir_recurse(path, flag, &kept_down)) > + if (!remove_dir_recursively(path, flag)) kept_down could have been set to 1 here... > continue; /* happy */ > } else if (!only_empty && !unlink(path->buf)) > continue; /* happy, too */ > @@ -1516,22 +1514,11 @@ static int remove_dir_recurse(struct strbuf *path, int flag, int *kept_up) > closedir(dir); > > strbuf_setlen(path, original_len); > - if (!ret && !keep_toplevel && !kept_down) > + if (!ret && !keep_toplevel) > ret = rmdir(path->buf); ... and would have prevented the rmdir() call here. Is the removed code really dead? And if not, why does t7300 still pass? > - else if (kept_up) > - /* > - * report the uplevel that it is not an error that we > - * did not rmdir() our directory. > - */ > - *kept_up = !ret; > return ret; > } > > -int remove_dir_recursively(struct strbuf *path, int flag) > -{ > - return remove_dir_recurse(path, flag, NULL); > -} > - > void setup_standard_excludes(struct dir_struct *dir) > { > const char *path; > -- 1.8.4.100.gde18f6d.dirty >