From: Jeff King <peff@peff.net>
To: chris <jugg@hotmail.com>
Cc: git@vger.kernel.org
Subject: Re: checkout new branch tracks wrong remote (bug?)
Date: Wed, 30 Mar 2011 10:59:08 -0400 [thread overview]
Message-ID: <20110330145908.GA812@sigill.intra.peff.net> (raw)
In-Reply-To: <loom.20110330T040437-823@post.gmane.org>
On Wed, Mar 30, 2011 at 02:27:31AM +0000, chris wrote:
> I have two remotes configured.
>
> One is "origin" which has a local tracking branch "master" for "origin/master".
>
> The other is "mirror" which has option mirror = true
>
> While on the local branch master, I issue the command:
>
> $ git checkout -b wip
>
> The branch "wip" is created and oddly configured to track the "mirror" remote.
Right. You are creating a branch from "refs/heads/master" (the currently
checked out branch). So the setup_tracking code will look for any remote
which writes a tracking branch into refs/heads/master according to the
configuration.
Your mirror config looks like this:
> [remote "mirror"]
> url = ssh://chris@myserver.com/srv/git/mirrors/chris/myproject.git
> fetch = +refs/*:refs/*
> mirror = true
meaning that a fetch of the mirror remote will write the mirror's
refs/heads/master into our local refs/heads/master. IOW, your master
branch is actually configured as a remote tracking branch of the mirror
(which is probably not what you want; see below).
> I do not expect this "wip" branch to be tracking the "mirror" remote, but rather
> "origin", according to the documentation.
In the absence of the mirror remote, it would not track anything. You
are branching from a _local_ branch, so there is no remote to track. I
think what you really want is:
git checkout -b wip origin/master
All of that being said, I'm not sure your config makes sense:
> [remote "origin"]
> fetch = +refs/heads/*:refs/remotes/origin/*
> url = ssh://myserver.com/srv/git/myproject.git
> [remote "mirror"]
> url = ssh://chris@myserver.com/srv/git/mirrors/chris/myproject.git
> fetch = +refs/*:refs/*
> mirror = true
Your mirror is configured to overwrite everything in refs/ if you fetch
from it. Meaning it will throw away anything you fetched from "origin",
as well as any local work. So this config is probably not what you want.
I'm guessing what you really wanted is a remote only for pushing to, and
created it with:
git remote add --mirror mirror ssh://...
The --mirror option has problems with that case. See this thread:
http://article.gmane.org/gmane.comp.version-control.git/161653
which has some suggestions, but nothing has been implemented yet.
Probably it makes sense to allow --mirror=fetch and --mirror=push, but
there is an open question of what just "--mirror" should do.
-Peff
next prev parent reply other threads:[~2011-03-30 14:59 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-03-30 2:27 checkout new branch tracks wrong remote (bug?) chris
2011-03-30 14:59 ` Jeff King [this message]
2011-03-30 19:51 ` [PATCH 0/3] better "remote add --mirror" semantics Jeff King
2011-03-30 19:52 ` [PATCH 1/3] remote: disallow some nonsensical option combinations Jeff King
2011-03-30 19:53 ` [PATCH 2/3] remote: separate the concept of push and fetch mirrors Jeff King
2011-03-30 20:45 ` Junio C Hamano
2011-03-30 20:57 ` Jeff King
2011-03-30 22:22 ` Junio C Hamano
2011-03-31 2:44 ` chris
2011-03-31 2:50 ` chris
2011-03-31 4:03 ` Junio C Hamano
2011-03-31 12:59 ` chris
2011-03-30 19:53 ` [PATCH 3/3] remote: deprecate --mirror Jeff King
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=20110330145908.GA812@sigill.intra.peff.net \
--to=peff@peff.net \
--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 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).