From: Steffen Prohaska <prohaska@zib.de>
To: git@vger.kernel.org
Cc: Junio C Hamano <gitster@pobox.com>,
Johannes Schindelin <Johannes.Schindelin@gmx.de>,
Steffen Prohaska <prohaska@zib.de>
Subject: [PATCH 1/2] push: Add '--matching' option and print warning if it should be used
Date: Sun, 18 Nov 2007 17:13:07 +0100 [thread overview]
Message-ID: <11954023881802-git-send-email-prohaska@zib.de> (raw)
In-Reply-To: <Pine.LNX.4.64.0711121501500.4362@racer.site>
This on the road to
1) "git push --matching" pushes matching branches.
2) "git push --current" pushes only current branch.
3) "git push" reports error if the config does not contain a Push line.
(after it reported a warning for a while).
Maybe in two years (that's twice an eternity in git time scales):
4) make "git push --current" the default.
This commit adds '--matching', which is a no-op at this point.
If appropriate, a warning is printed to tell the user that the
default will change in the future.
Thanks to Dscho for suggesting this.
Signed-off-by: Steffen Prohaska <prohaska@zib.de>
---
Documentation/git-push.txt | 8 +++++++-
builtin-push.c | 13 +++++++++++--
t/t5516-fetch-push.sh | 13 +++++++++++++
3 files changed, 31 insertions(+), 3 deletions(-)
So here is '--matching'. And PATCH 2/2 will bring '--current'.
They apply on top of sp/refspec-match.
Steffen
diff --git a/Documentation/git-push.txt b/Documentation/git-push.txt
index 4a68aab..d2417f3 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] [--dry-run] [--tags] [--receive-pack=<git-receive-pack>]
+'git-push' [--all] [--matching] [--dry-run] [--tags] [--receive-pack=<git-receive-pack>]
[--repo=all] [-f | --force] [-v | --verbose] [<repository> <refspec>...]
DESCRIPTION
@@ -63,6 +63,12 @@ the remote repository.
Instead of naming each ref to push, specifies that all
refs under `$GIT_DIR/refs/heads/` be pushed.
+\--matching::
+ Instead of naming each ref to push, specifies that matching
+ refs under `$GIT_DIR/refs/heads/` be pushed. Matching means
+ the branch exists locally and at the remote under the same name.
+ Currently, this is the default. But this will change in the future.
+
\--dry-run::
Do everything except actually send the updates.
diff --git a/builtin-push.c b/builtin-push.c
index 54fba0e..7e9dcf1 100644
--- a/builtin-push.c
+++ b/builtin-push.c
@@ -10,7 +10,7 @@
#include "parse-options.h"
static const char * const push_usage[] = {
- "git-push [--all] [--dry-run] [--tags] [--receive-pack=<git-receive-pack>] [--repo=all] [-f | --force] [-v] [<repository> <refspec>...]",
+ "git-push [--all] [--matching] [--dry-run] [--tags] [--receive-pack=<git-receive-pack>] [--repo=all] [-f | --force] [-v] [<repository> <refspec>...]",
NULL,
};
@@ -100,6 +100,7 @@ int cmd_push(int argc, const char **argv, const char *prefix)
{
int flags = 0;
int all = 0;
+ int matching = 0;
int dry_run = 0;
int force = 0;
int tags = 0;
@@ -109,6 +110,7 @@ int cmd_push(int argc, const char **argv, const char *prefix)
OPT__VERBOSE(&verbose),
OPT_STRING( 0 , "repo", &repo, "repository", "repository"),
OPT_BOOLEAN( 0 , "all", &all, "push all refs"),
+ OPT_BOOLEAN( 0 , "matching", &matching, "push matching refs"),
OPT_BOOLEAN( 0 , "tags", &tags, "push tags"),
OPT_BOOLEAN( 0 , "dry-run", &dry_run, "dry run"),
OPT_BOOLEAN('f', "force", &force, "force updates"),
@@ -135,8 +137,15 @@ int cmd_push(int argc, const char **argv, const char *prefix)
repo = argv[0];
set_refspecs(argv + 1, argc - 1);
}
- if ((flags & TRANSPORT_PUSH_ALL) && refspec)
+ if ((all != 0) + (matching != 0) > 1) {
+ fprintf(stderr, "--all and --matching are mutual exclusive.\n");
usage_with_options(push_usage, options);
+ }
+ if ((all || matching) && refspec)
+ usage_with_options(push_usage, options);
+ if (!all && !matching && !refspec)
+ fprintf(stderr, "Warning: assuming '--matching'."
+ " This default will change in the future.\n");
return do_push(repo, flags);
}
diff --git a/t/t5516-fetch-push.sh b/t/t5516-fetch-push.sh
index fd5f284..21aa7c3 100755
--- a/t/t5516-fetch-push.sh
+++ b/t/t5516-fetch-push.sh
@@ -100,6 +100,19 @@ test_expect_success 'fetch with wildcard' '
)
'
+test_expect_code 129 'push command line options (1)' '
+ git push --all --matching testrepo
+'
+
+test_expect_code 129 'push command line options (2)' '
+ git push --matching testrepo master
+'
+
+test_expect_success 'push command line options (3)' '
+ git push testrepo 2>stderr.txt &&
+ grep -q "Warning: assuming.*--matching" stderr.txt
+'
+
test_expect_success 'push without wildcard' '
mk_empty &&
--
1.5.3.5.743.g87c5c
next prev parent reply other threads:[~2007-11-18 16:13 UTC|newest]
Thread overview: 168+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-10-22 6:32 What's cooking in git/spearce.git (topics) Shawn O. Pearce
2007-10-22 6:59 ` Jeff King
2007-10-22 7:16 ` Jeff King
2007-10-23 2:32 ` Linus Torvalds
2007-10-23 3:48 ` Jeff King
2007-10-22 7:24 ` Pierre Habouzit
2007-10-22 15:27 ` Steffen Prohaska
2007-10-23 1:26 ` Junio C Hamano
2007-10-23 3:34 ` Shawn O. Pearce
2007-10-24 12:51 ` What's cooking in git.git (topics) Junio C Hamano
2007-10-24 13:09 ` David Symonds
2007-10-24 16:08 ` Scott Parish
2007-10-24 18:27 ` Andreas Ericsson
2007-10-25 0:35 ` Scott Parish
2007-11-01 5:41 ` Junio C Hamano
2007-11-01 11:02 ` Jakub Narebski
2007-11-01 20:57 ` Junio C Hamano
2007-11-01 18:33 ` Linus Torvalds
2007-11-01 19:19 ` Geert Bosch
2007-11-01 20:27 ` Junio C Hamano
2007-11-01 20:47 ` Mike Hommey
2007-11-01 21:20 ` Junio C Hamano
2007-11-02 0:32 ` Junio C Hamano
2007-11-01 21:44 ` Pierre Habouzit
2007-11-01 21:17 ` Geert Bosch
2007-11-02 0:00 ` Jonas Fonseca
2007-11-01 21:18 ` Theodore Tso
2007-11-01 21:26 ` Melchior FRANZ
2007-11-01 21:32 ` Johan Herland
2007-11-01 21:51 ` Junio C Hamano
2007-11-01 22:05 ` Linus Torvalds
2007-11-01 22:26 ` Bill Lear
2007-11-01 22:50 ` Junio C Hamano
2007-11-02 2:19 ` Petr Baudis
2007-11-01 21:42 ` Pierre Habouzit
2007-11-02 9:39 ` Andreas Ericsson
2007-11-01 21:57 ` Pierre Habouzit
2007-11-02 0:04 ` Jakub Narebski
2007-11-02 2:23 ` Petr Baudis
2007-11-02 7:25 ` Jakub Narebski
2007-11-02 7:28 ` Jakub Narebski
2007-11-02 8:42 ` Pierre Habouzit
2007-11-02 6:06 ` Miles Bader
2007-11-02 15:13 ` Miles Bader
2007-11-02 9:38 ` Andreas Ericsson
2007-11-02 11:03 ` Johannes Schindelin
2007-11-01 21:41 ` Brian Downing
2007-11-01 21:46 ` Pierre Habouzit
2007-11-02 10:26 ` Wincent Colaiuta
2007-11-04 4:14 ` Junio C Hamano
2007-11-04 9:43 ` Jakub Narebski
2007-11-04 11:38 ` Pierre Habouzit
2007-11-08 8:08 ` Junio C Hamano
2007-11-08 20:44 ` Steffen Prohaska
2007-11-12 7:09 ` Junio C Hamano
2007-11-12 12:21 ` Johannes Schindelin
2007-11-12 12:26 ` Pierre Habouzit
2007-11-12 12:33 ` Johannes Schindelin
2007-11-12 13:11 ` [PATCH] rebase: brown paper bag fix after the detached HEAD patch Johannes Schindelin
2007-11-12 14:53 ` What's cooking in git.git (topics) Pierre Habouzit
2007-11-12 14:27 ` Steffen Prohaska
2007-11-12 15:02 ` Johannes Schindelin
2007-11-18 16:13 ` Steffen Prohaska [this message]
2007-11-18 16:13 ` [PATCH 2/2] push: Add '--current', which pushes only the current branch Steffen Prohaska
2007-11-19 1:28 ` Junio C Hamano
2007-11-19 6:41 ` Steffen Prohaska
2007-11-19 7:27 ` Junio C Hamano
2007-11-19 7:50 ` Junio C Hamano
2007-11-19 9:27 ` Andreas Ericsson
2007-11-19 8:17 ` Steffen Prohaska
2007-11-19 8:35 ` Junio C Hamano
2007-11-19 9:54 ` Steffen Prohaska
2007-11-19 16:51 ` [PATCH] push: Add "--current", " Steffen Prohaska
2007-11-19 11:17 ` [PATCH 2/2] push: Add '--current', " Jakub Narebski
2007-11-19 19:57 ` Junio C Hamano
2007-11-19 21:04 ` Jakub Narebski
2007-11-19 22:15 ` Junio C Hamano
2007-11-19 22:29 ` Jakub Narebski
2007-11-19 9:24 ` Andreas Ericsson
2007-11-12 15:15 ` [PATCH] git-commit: Add tests for invalid usage of -a/--interactive with paths Björn Steinbrink
2007-11-15 0:18 ` What's cooking in git.git (topics) Junio C Hamano
2007-11-15 0:49 ` Johannes Schindelin
2007-11-15 14:49 ` [PATCH] t7501-commit: Add test for git commit <file> with dirty index Kristian Høgsberg
2007-11-15 15:55 ` Johannes Schindelin
2007-11-15 16:11 ` [PATCH] builtin-commit: fix "git add x y && git commit y" committing x, too Johannes Schindelin
2007-11-15 16:37 ` Johannes Schindelin
2007-11-15 17:01 ` Kristian Høgsberg
2007-11-16 0:43 ` Johannes Schindelin
2007-11-17 8:45 ` Junio C Hamano
2007-11-18 9:18 ` Junio C Hamano
2007-11-17 12:40 ` What's cooking in git.git (topics) Jeff King
2007-11-17 20:51 ` Junio C Hamano
2007-11-17 23:42 ` Alex Riesen
2007-11-18 1:29 ` Junio C Hamano
2007-11-21 9:23 ` Junio C Hamano
2007-11-23 8:48 ` Junio C Hamano
2007-11-23 10:30 ` Jeff King
2007-11-23 13:23 ` Johannes Schindelin
2007-11-24 11:38 ` Jeff King
2007-11-24 15:47 ` Nicolas Pitre
2007-11-24 19:09 ` Junio C Hamano
2007-11-25 21:51 ` J. Bruce Fields
2007-11-25 22:42 ` Junio C Hamano
2007-11-25 23:08 ` J. Bruce Fields
2007-11-26 4:02 ` Nicolas Pitre
2007-11-26 4:15 ` J. Bruce Fields
2007-11-26 4:29 ` Nicolas Pitre
2007-11-26 4:45 ` J. Bruce Fields
2007-11-26 9:03 ` Jakub Narebski
2007-11-26 9:09 ` Andreas Ericsson
2007-11-26 19:11 ` Nicolas Pitre
2007-11-26 19:24 ` David Kastrup
2007-11-26 20:25 ` Nicolas Pitre
2007-11-26 20:40 ` Junio C Hamano
2007-11-26 20:45 ` David Kastrup
2007-11-26 21:09 ` Nicolas Pitre
2007-11-26 21:22 ` David Kastrup
2007-11-26 22:02 ` Nicolas Pitre
2007-11-26 23:05 ` David Kastrup
2007-11-26 23:28 ` Nicolas Pitre
2007-11-26 23:52 ` David Kastrup
2007-11-27 4:05 ` Nicolas Pitre
2007-12-05 21:58 ` Miles Bader
2007-11-26 21:14 ` Jakub Narebski
2007-11-26 21:36 ` Johannes Schindelin
2007-11-26 21:47 ` Nicolas Pitre
2007-11-26 6:15 ` Jan Hudec
2007-11-25 20:27 ` Junio C Hamano
2007-11-25 20:36 ` Jakub Narebski
2007-11-25 20:53 ` J. Bruce Fields
2007-12-01 2:37 ` Junio C Hamano
2007-12-01 8:55 ` Eric Wong
2007-12-02 14:14 ` [PATCH, next version] Add 'git fast-export', the sister of 'git fast-import' Johannes Schindelin
2007-12-02 14:40 ` What's cooking in git.git (topics) Johannes Schindelin
2007-12-04 8:43 ` Junio C Hamano
2007-12-04 9:40 ` Johannes Sixt
2007-12-04 10:08 ` msysGit on FAT32 (was: What's cooking in git.git (topics)) Jakub Narebski
2007-12-04 13:30 ` Johannes Schindelin
2007-12-04 13:48 ` msysGit on FAT32 Johannes Sixt
2007-12-04 14:37 ` Johannes Schindelin
2007-12-04 20:03 ` What's cooking in git.git (topics) Steffen Prohaska
2007-12-05 10:59 ` Junio C Hamano
2007-12-05 11:08 ` Jakub Narebski
2007-12-05 11:10 ` Jakub Narebski
2007-12-06 4:43 ` Jeff King
2007-12-05 11:37 ` [PATCH] Soft aliases: add "less" and minimal documentation Johannes Schindelin
2007-12-05 19:45 ` Junio C Hamano
2007-12-06 4:50 ` Jeff King
2007-12-06 4:32 ` What's cooking in git.git (topics) Jeff King
2007-12-07 9:51 ` Junio C Hamano
2007-12-07 11:11 ` Jakub Narebski
2007-12-07 19:29 ` Junio C Hamano
2007-12-07 21:36 ` Miklos Vajna
2007-12-09 10:27 ` Junio C Hamano
2007-12-13 2:48 ` Junio C Hamano
2007-12-13 3:22 ` Nicolas Pitre
2007-12-13 22:31 ` [PATCH 1/2] xdl_diff: identify call sites Junio C Hamano
2007-12-14 7:03 ` Junio C Hamano
2007-12-13 22:31 ` [PATCH 2/2] xdi_diff: trim common trailing lines Junio C Hamano
2007-12-14 9:06 ` Peter Baumann
2007-12-14 19:15 ` Junio C Hamano
2007-12-17 8:40 ` What's cooking in git.git (topics) Junio C Hamano
2007-12-23 9:20 ` Junio C Hamano
2007-12-31 10:47 ` checkout --push/--pop idea (Re: What's cooking in git.git (topics)) Jan Hudec
2008-01-05 11:01 ` What's cooking in git.git (topics) Junio C Hamano
2008-01-05 16:04 ` Johannes Schindelin
2008-01-22 8:47 ` What will be cooking in git.git post 1.5.4 (topics) Junio C Hamano
2007-12-04 16:18 ` What's cooking in git.git (topics) Brian Downing
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=11954023881802-git-send-email-prohaska@zib.de \
--to=prohaska@zib.de \
--cc=Johannes.Schindelin@gmx.de \
--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;
as well as URLs for NNTP newsgroup(s).