Git development
 help / color / mirror / Atom feed
From: Brian Ewins <brian.ewins@gmail.com>
To: git@vger.kernel.org
Cc: Junio C Hamano <gitster@pobox.com>
Subject: [PATCH 2/2] Add a --dry-run option to git-push.
Date: Thu, 11 Oct 2007 00:34:48 +0100	[thread overview]
Message-ID: <6EFBD20E-5071-487E-8167-9FAAEE10A579@gmail.com> (raw)

Signed-off-by: Brian Ewins <brian.ewins@gmail.com>
---
  Documentation/git-push.txt |    6 +++++-
  builtin-push.c             |   10 ++++++++--
  t/t5516-fetch-push.sh      |   10 ++++++++++
  3 files changed, 23 insertions(+), 3 deletions(-)

diff --git a/Documentation/git-push.txt b/Documentation/git-push.txt
index 6bc559d..2dd95ba 100644
--- a/Documentation/git-push.txt
+++ b/Documentation/git-push.txt
@@ -9,7 +9,7 @@ git-push - Update remote refs along with associated  
objects
  SYNOPSIS
  --------
  [verse]
-'git-push' [--all] [--tags] [--receive-pack=<git-receive-pack>]
+'git-push' [--all] [--dry-run] [--tags] [--receive-pack=<git-receive- 
pack>]
             [--repo=all] [-f | --force] [-v] [<repository>  
<refspec>...]

  DESCRIPTION
@@ -63,6 +63,10 @@ the remote repository.
  	Instead of naming each ref to push, specifies that all
  	refs under `$GIT_DIR/refs/heads/` be pushed.

+\--dry-run::
+	Show what would have been updated, but do not perform
+	any updates.
+
  \--tags::
  	All refs under `$GIT_DIR/refs/tags` are pushed, in
  	addition to refspecs explicitly listed on the command
diff --git a/builtin-push.c b/builtin-push.c
index 88c5024..141380b 100644
--- a/builtin-push.c
+++ b/builtin-push.c
@@ -7,9 +7,9 @@
  #include "builtin.h"
  #include "remote.h"

-static const char push_usage[] = "git-push [--all] [--tags] [-- 
receive-pack=<git-receive-pack>] [--repo=all] [-f | --force] [-v]  
[<repository> <refspec>...]";
+static const char push_usage[] = "git-push [--all] [--dry-run] [-- 
tags] [--receive-pack=<git-receive-pack>] [--repo=all] [-f | --force]  
[-v] [<repository> <refspec>...]";

-static int all, force, thin, verbose;
+static int all, dry_run, force, thin, verbose;
  static const char *receivepack;

  static const char **refspec;
@@ -69,6 +69,8 @@ static int do_push(const char *repo)
  	argc = 1;
  	if (all)
  		argv[argc++] = "--all";
+	if (dry_run)
+		argv[argc++] = "--dry-run";
  	if (force)
  		argv[argc++] = "--force";
  	if (receivepack)
@@ -147,6 +149,10 @@ int cmd_push(int argc, const char **argv, const  
char *prefix)
  			all = 1;
  			continue;
  		}
+		if (!strcmp(arg, "--dry-run")) {
+			dry_run = 1;
+			continue;
+		}
  		if (!strcmp(arg, "--tags")) {
  			add_refspec("refs/tags/*");
  			continue;
diff --git a/t/t5516-fetch-push.sh b/t/t5516-fetch-push.sh
index ca46aaf..4fbd5b1 100755
--- a/t/t5516-fetch-push.sh
+++ b/t/t5516-fetch-push.sh
@@ -244,4 +244,14 @@ test_expect_success 'push with colon-less  
refspec (4)' '

  '

+test_expect_success 'push with dry-run' '
+
+	mk_test heads/master &&
+	cd testrepo &&
+	old_commit=$(git show-ref -s --verify refs/heads/master) &&
+	cd .. &&
+	git push --dry-run testrepo &&
+	check_push_result $old_commit heads/master
+'
+
  test_done
-- 
1.5.2.5

                 reply	other threads:[~2007-10-10 23:34 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=6EFBD20E-5071-487E-8167-9FAAEE10A579@gmail.com \
    --to=brian.ewins@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox