From: Michael J Gruber <git@drmicha.warpmail.net>
To: Samuel Tardieu <sam@rfc1149.net>
Cc: git@vger.kernel.org
Subject: Re: [PATCH] remote add: add a --no-tags (-n) option
Date: Mon, 19 Apr 2010 18:10:27 +0200 [thread overview]
Message-ID: <4BCC8073.80109@drmicha.warpmail.net> (raw)
In-Reply-To: <20100419135014.1077.28627.stgit@localhost.localdomain>
Samuel Tardieu venit, vidit, dixit 19.04.2010 15:50:
> Add a '--no-tags' option to 'git remote add' which adds a
> 'remote.REMOTE.tagopt = --no-tags' to the configuration file.
>
> 'git add -f -n REMOTE' will create a new remote and fetch from it
I guess you mean 'git remote add' here.
The general directions for this is nice. Just don't expect much response
now in rc-phase.
> without importing the tags. Subsequent 'git fetch REMOTE' will also
> not import the tags.
>
> Signed-off-by: Samuel Tardieu <sam@rfc1149.net>
> ---
> Documentation/git-remote.txt | 5 ++++-
> builtin/remote.c | 11 ++++++++++-
> t/t5505-remote.sh | 36 ++++++++++++++++++++++++++++++++++++
> 3 files changed, 50 insertions(+), 2 deletions(-)
>
> diff --git a/Documentation/git-remote.txt b/Documentation/git-remote.txt
> index 3fc599c..9db3c35 100644
> --- a/Documentation/git-remote.txt
> +++ b/Documentation/git-remote.txt
> @@ -10,7 +10,7 @@ SYNOPSIS
> --------
> [verse]
> 'git remote' [-v | --verbose]
> -'git remote add' [-t <branch>] [-m <master>] [-f] [--mirror] <name> <url>
> +'git remote add' [-t <branch>] [-m <master>] [-f] [-n] [--mirror] <name> <url>
> 'git remote rename' <old> <new>
> 'git remote rm' <name>
> 'git remote set-head' <name> (-a | -d | <branch>)
> @@ -51,6 +51,9 @@ update remote-tracking branches <name>/<branch>.
> With `-f` option, `git fetch <name>` is run immediately after
> the remote information is set up.
> +
> +With `-n` option, `git fetch <name>` does not import tags from
> +the remote repository.
> ++
> With `-t <branch>` option, instead of the default glob
> refspec for the remote to track all branches under
> `$GIT_DIR/remotes/<name>/`, a refspec to track only `<branch>`
> diff --git a/builtin/remote.c b/builtin/remote.c
> index 277765b..bb5606b 100644
> --- a/builtin/remote.c
> +++ b/builtin/remote.c
> @@ -106,7 +106,7 @@ static int fetch_remote(const char *name)
>
> static int add(int argc, const char **argv)
> {
> - int fetch = 0, mirror = 0;
> + int fetch = 0, mirror = 0, notags = 0;
> struct string_list track = { NULL, 0, 0 };
> const char *master = NULL;
> struct remote *remote;
> @@ -116,6 +116,8 @@ static int add(int argc, const char **argv)
>
> struct option options[] = {
> OPT_BOOLEAN('f', "fetch", &fetch, "fetch the remote branches"),
> + OPT_BOOLEAN('n', "no-tags", ¬ags,
> + "do not import remote tags when fetching"),
> OPT_CALLBACK('t', "track", &track, "branch",
> "branch(es) to track", opt_parse_track),
> OPT_STRING('m', "master", &master, "branch", "master branch"),
> @@ -172,6 +174,13 @@ static int add(int argc, const char **argv)
> return 1;
> }
>
> + if (notags) {
> + strbuf_reset(&buf);
> + strbuf_addf(&buf, "remote.%s.tagopt", name);
> + if (git_config_set(buf.buf, "--no-tags"))
> + return 1;
Is this buf freed again?
> + }
> +
> if (fetch && fetch_remote(name))
> return 1;
>
> diff --git a/t/t5505-remote.sh b/t/t5505-remote.sh
> index 230c0cd..d4ed7ea 100755
> --- a/t/t5505-remote.sh
> +++ b/t/t5505-remote.sh
> @@ -320,6 +320,42 @@ test_expect_success 'add alt && prune' '
> git rev-parse --verify refs/remotes/origin/side2)
> '
>
> +cat > test/expect << EOF
> +some-tag
> +EOF
> +
> +test_expect_success 'add with tags (default)' '
> + (cd one &&
> + git tag -a -m "Some tag" some-tag) &&
> + (mkdir add-tags &&
> + cd add-tags &&
> + git init &&
> + git remote add -f origin ../one &&
> + git tag -l some-tag > ../test/output &&
> + test_must_fail git config remote.origin.tagopt) &&
> + (cd one &&
> + git tag -d some-tag) &&
> + test_cmp test/expect test/output
> +'
> +
> +cat > test/expect << EOF
> +--no-tags
> +EOF
> +
> +test_expect_success 'add --no-tags' '
> + (cd one &&
> + git tag -a -m "Some tag" some-tag) &&
> + (mkdir add-no-tags &&
> + cd add-no-tags &&
> + git init &&
> + git remote add -f -n origin ../one &&
> + git tag -l some-tag > ../test/output &&
> + git config remote.origin.tagopt >> ../test/output) &&
> + (cd one &&
> + git tag -d some-tag) &&
> + test_cmp test/expect test/output
> +'
> +
> cat > one/expect << EOF
> apis/master
> apis/side
>
next prev parent reply other threads:[~2010-04-19 16:13 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-04-19 13:50 [PATCH] remote add: add a --no-tags (-n) option Samuel Tardieu
2010-04-19 16:10 ` Michael J Gruber [this message]
2010-04-19 16:19 ` Samuel Tardieu
2010-04-19 18:13 ` Junio C Hamano
2010-04-19 20:19 ` Samuel Tardieu
2010-04-19 21:52 ` Junio C Hamano
2010-04-19 23:34 ` Samuel Tardieu
-- strict thread matches above, loose matches on Subject: below --
2010-03-29 12:07 Samuel Tardieu
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=4BCC8073.80109@drmicha.warpmail.net \
--to=git@drmicha.warpmail.net \
--cc=git@vger.kernel.org \
--cc=sam@rfc1149.net \
/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.