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

2014-03-09 Thread Duy Nguyen
On Sun, Mar 9, 2014 at 3:21 PM, Eric Sunshine  wrote:
> On Fri, Mar 7, 2014 at 9:48 PM, Nguyễn Thái Ngọc Duy  
> 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 
>> ---
>> 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?

I was hoping it was clear from the patch how this "!" was used (or "/"
in the patch that introduces common_list[]). But if any reader thinks
otherwise, I'm happy to add a comment.
-- 
Duy
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


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

2014-03-09 Thread Eric Sunshine
On Fri, Mar 7, 2014 at 9:48 PM, Nguyễn Thái Ngọc Duy  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 
> ---
> 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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html