Re: [PATCH 8/8] read-cache: inform the daemon that the index has been updated

2014-05-22 Thread David Turner
On Tue, 2014-05-13 at 18:15 +0700, Nguyễn Thái Ngọc Duy wrote:
> + if (run_command(&cp))
> + warning(_("failed to start read-cache--daemon: %s"),
> + strerror(errno));

errno is not always (ever?) set, so if read-cache--daemon is missing,
you get:
warning: failed to start read-cache--daemon: Success


--
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 8/8] read-cache: inform the daemon that the index has been updated

2014-05-13 Thread Erik Faye-Lund
On Tue, May 13, 2014 at 1:15 PM, Nguyễn Thái Ngọc Duy  wrote:
> The daemon would immediately load the new index in memory in
> background. Next time Git needs to read the index again, everything is
> ready.
>
> Signed-off-by: Nguyễn Thái Ngọc Duy 
> ---
>  cache.h  |  1 +
>  read-cache.c | 53 -
>  2 files changed, 49 insertions(+), 5 deletions(-)
>
> diff --git a/cache.h b/cache.h
> index fb29c7e..3115b86 100644
> --- a/cache.h
> +++ b/cache.h
> @@ -483,6 +483,7 @@ extern int is_index_unborn(struct index_state *);
>  extern int read_index_unmerged(struct index_state *);
>  #define COMMIT_LOCK(1 << 0)
>  #define CLOSE_LOCK (1 << 1)
> +#define REFRESH_DAEMON (1 << 2)
>  extern int write_locked_index(struct index_state *, struct lock_file *lock, 
> unsigned flags);
>  extern int discard_index(struct index_state *);
>  extern int unmerged_index(const struct index_state *);
> diff --git a/read-cache.c b/read-cache.c
> index e98521f..d5c9247 100644
> --- a/read-cache.c
> +++ b/read-cache.c
> @@ -16,6 +16,9 @@
>  #include "varint.h"
>  #include "split-index.h"
>  #include "sigchain.h"
> +#include "unix-socket.h"
> +#include "pkt-line.h"
> +#include "run-command.h"
>
>  static struct cache_entry *refresh_cache_entry(struct cache_entry *ce,
>unsigned int options);
> @@ -2030,6 +2033,32 @@ void set_alternate_index_output(const char *name)
> alternate_index_output = name;
>  }
>
> +static void refresh_daemon(struct index_state *istate)
> +{
> +   int fd;
> +   fd = unix_stream_connect(git_path("daemon/index"));
> +   if (fd < 0) {
> +   struct child_process cp;
> +   const char *av[] = {"read-cache--daemon", "--detach", NULL };
> +   memset(&cp, 0, sizeof(cp));
> +   cp.argv = av;
> +   cp.git_cmd = 1;
> +   cp.no_stdin = 1;
> +   if (run_command(&cp))
> +   warning(_("failed to start read-cache--daemon: %s"),
> +   strerror(errno));
> +   return;
> +   }
> +   /*
> +* packet_write() could die() but unless this is from
> +* update_index_if_able(), we're about to exit anyway,
> +* probably ok to die (for now). Blocking mode is another
> +* problem to deal with later.
> +*/
> +   packet_write(fd, "refresh");
> +   close(fd);
> +}
> +

Seems the argument 'istate' isn't used.
--
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