All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>
To: git@vger.kernel.org
Cc: jugg@hotmail.com, "Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>
Subject: [PATCH/RFC 2/2] receive-pack: hint that the user can stop "git push" at auto gc time
Date: Tue,  4 Feb 2014 13:52:45 +0700	[thread overview]
Message-ID: <1391496765-29564-2-git-send-email-pclouds@gmail.com> (raw)
In-Reply-To: <1391496765-29564-1-git-send-email-pclouds@gmail.com>

Housekeeping jobs like auto gc generally should not get in the way.
Users who are pushing may not want to wait until auto gc is done on
the server. Give a hint for those users that it's safe now to break
"git push" and stop waiting.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 This bandage patch may be a good compromise between running auto gc
 and not annoying users much.
 
 If I'm not mistaken, when ^C on "git push" this way, gc will still be
 running until it needs to print something out (which it should not
 normally because of --quiet). The user won't see gc errors, but the
 user generally can't do much anyway.

 builtin/gc.c           | 9 ++++++++-
 builtin/receive-pack.c | 2 +-
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/builtin/gc.c b/builtin/gc.c
index c19545d..592271a 100644
--- a/builtin/gc.c
+++ b/builtin/gc.c
@@ -253,6 +253,7 @@ int cmd_gc(int argc, const char **argv, const char *prefix)
 	int auto_gc = 0;
 	int quiet = 0;
 	int force = 0;
+	int break_ok = 0;
 	const char *name;
 	pid_t pid;
 
@@ -263,6 +264,8 @@ int cmd_gc(int argc, const char **argv, const char *prefix)
 			PARSE_OPT_OPTARG, NULL, (intptr_t)prune_expire },
 		OPT_BOOL(0, "aggressive", &aggressive, N_("be more thorough (increased runtime)")),
 		OPT_BOOL(0, "auto", &auto_gc, N_("enable auto-gc mode")),
+		OPT_HIDDEN_BOOL(0, "break-ok", &break_ok,
+				"hint that it is ok to stop the program"),
 		OPT_BOOL(0, "force", &force, N_("force running gc even if there may be another gc running")),
 		OPT_END()
 	};
@@ -301,7 +304,11 @@ int cmd_gc(int argc, const char **argv, const char *prefix)
 		 */
 		if (!need_to_gc())
 			return 0;
-		if (!quiet)
+		if (break_ok)
+			fprintf(stderr,
+				_("Auto packing the repository for optimum performance.\n"
+				  "It is safe to stop the program with Ctrl-C.\n"));
+		else if (!quiet)
 			fprintf(stderr,
 					_("Auto packing the repository for optimum performance. You may also\n"
 					"run \"git gc\" manually. See "
diff --git a/builtin/receive-pack.c b/builtin/receive-pack.c
index 82e2f76..68d16e0 100644
--- a/builtin/receive-pack.c
+++ b/builtin/receive-pack.c
@@ -1212,7 +1212,7 @@ int cmd_receive_pack(int argc, const char **argv, const char *prefix)
 			update_server_info(0);
 		if (auto_gc) {
 			const char *argv_gc_auto[] = {
-				"gc", "--auto", "--quiet", NULL,
+				"gc", "--auto", "--quiet", "--break-ok", NULL,
 			};
 			int opt = RUN_GIT_CMD | RUN_COMMAND_STDOUT_TO_STDERR;
 			run_command_v_opt(argv_gc_auto, opt);
-- 
1.8.5.2.240.g8478abd

  reply	other threads:[~2014-02-04  6:53 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-04  2:20 bug? git push triggers auto pack when gc.auto = 0 chris
2014-02-04  2:41 ` Duy Nguyen
2014-02-04  5:13   ` chris
2014-02-04  6:02     ` Duy Nguyen
2014-02-04  6:52       ` [PATCH 1/2] receive-pack: update $GIT_DIR/info before auto garbage collection Nguyễn Thái Ngọc Duy
2014-02-04  6:52         ` Nguyễn Thái Ngọc Duy [this message]
2014-02-04 18:25           ` [PATCH/RFC 2/2] receive-pack: hint that the user can stop "git push" at auto gc time Junio C Hamano
2014-02-04 18:32             ` Junio C Hamano
2014-02-07 12:36               ` [PATCH/RFC 2/2] receive-pack: hint that the user can stop chris
2014-02-07 13:05                 ` Duy Nguyen
2014-02-07 16:47                   ` chris
2014-02-08  7:08               ` [PATCH v2 1/2] daemon: move daemonize() to libgit.a Nguyễn Thái Ngọc Duy
2014-02-08  7:08                 ` [PATCH v2 2/2] gc: config option for running --auto in background Nguyễn Thái Ngọc Duy
2014-02-10 11:03                   ` Erik Faye-Lund
2014-02-10 13:17                     ` Duy Nguyen
2014-02-10 13:33                       ` Erik Faye-Lund
2014-02-10 18:43                       ` Junio C Hamano
2014-02-10 19:11                         ` Junio C Hamano
2014-02-12  1:53                           ` Duy Nguyen
2014-02-12 17:36                             ` Junio C Hamano
2014-02-10 11:04                 ` [PATCH v2 1/2] daemon: move daemonize() to libgit.a Erik Faye-Lund
2014-02-10 18:46                 ` Junio C Hamano
2014-02-10 23:25                   ` Duy Nguyen
2014-02-11 18:08                     ` Junio C Hamano
2014-02-04  8:16       ` bug? git push triggers auto pack when gc.auto = 0 chris
2014-02-04  8:22     ` David Kastrup
2014-02-04  8:59       ` chris
2014-02-04  9:31         ` David Kastrup
2014-02-04 10:35           ` chris
2014-02-04 11:11             ` David Kastrup

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1391496765-29564-2-git-send-email-pclouds@gmail.com \
    --to=pclouds@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=jugg@hotmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.