Re: [PATCH v5 28/28] count-objects: report unused files in $GIT_DIR/repos/...

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Mar 7, 2014 at 9:48 PM, Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> wrote:
> In linked checkouts, borrowed parts like config is taken from
> $GIT_COMMON_DIR. $GIT_DIR/config is never used. Report them as
> garbage.
>
> Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx>
> ---
> diff --git a/path.c b/path.c
> index ddb5962..5a7dc45 100644
> --- a/path.c
> +++ b/path.c
> @@ -4,6 +4,7 @@
>  #include "cache.h"
>  #include "strbuf.h"
>  #include "string-list.h"
> +#include "dir.h"
>
>  static int get_st_mode_bits(const char *path, int *mode)
>  {
> @@ -91,9 +92,9 @@ static void replace_dir(struct strbuf *buf, int len, const char *newdir)
>  }

Do you want to add a comment here explaining what the "!" prefix on
some entries means, or is it sufficiently self-evident to anyone
looking at the consumers of this array?

>  static const char *common_list[] = {
> -       "/branches", "/hooks", "/info", "/logs", "/lost-found", "/modules",
> +       "/branches", "/hooks", "/info", "!/logs", "/lost-found", "/modules",
>         "/objects", "/refs", "/remotes", "/repos", "/rr-cache", "/svn",
> -       "config", "gc.pid", "packed-refs", "shallow",
> +       "config", "!gc.pid", "packed-refs", "shallow",
>         NULL
>  };
>
> @@ -107,6 +108,8 @@ static void update_common_dir(struct strbuf *buf, int git_dir_len)
>         for (p = common_list; *p; p++) {
>                 const char *path = *p;
>                 int is_dir = 0;
> +               if (*path == '!')
> +                       path++;
>                 if (*path == '/') {
>                         path++;
>                         is_dir = 1;
> @@ -122,6 +125,28 @@ static void update_common_dir(struct strbuf *buf, int git_dir_len)
>         }
>  }
>
> +void report_linked_checkout_garbage(void)
> +{
> +       struct strbuf sb = STRBUF_INIT;
> +       const char **p;
> +       int len;
> +
> +       if (!git_common_dir_env)
> +               return;
> +       strbuf_addf(&sb, "%s/", get_git_dir());
> +       len = sb.len;
> +       for (p = common_list; *p; p++) {
> +               const char *path = *p;
> +               if (*path == '!')
> +                       continue;
> +               strbuf_setlen(&sb, len);
> +               strbuf_addstr(&sb, path);
> +               if (file_exists(sb.buf))
> +                       report_garbage("unused in linked checkout", sb.buf);
> +       }
> +       strbuf_release(&sb);
> +}
> +
>  static void adjust_git_path(struct strbuf *buf, int git_dir_len)
>  {
>         const char *base = buf->buf + git_dir_len;
> --
> 1.9.0.40.gaa8c3ea
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]