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 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).