git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jakub Narebski <jnareb@gmail.com>
To: git@vger.kernel.org
Subject: Re: Difficulties in advertising a new branch to git newbies
Date: Tue, 30 Jan 2007 22:02:40 +0100	[thread overview]
Message-ID: <epobn1$jv8$1@sea.gmane.org> (raw)
In-Reply-To: 87odognuhl.wl%cworth@cworth.org

Carl Worth wrote:

> The things I haven't liked in the above are:
> 
>       1. The doubled-up "branch:branch" thing in git-fetch, which
>            just plain looks awkward. Yes, it's common for "git pull"
>            to fetch something and not store it in any branch, but it
>            seems that it could ask for that behavior explicitly and we
>            could make "fetch URL branch" act as "fetch URL
>            branch:branch".

If youd don't mind fetching more, you can ask just to do "git fetch".
 
But, currently:

  * A parameter <ref> without a colon is equivalent to
    <ref>: when pulling/fetching, so it merges <ref> into the current
    branch without storing the remote branch anywhere locally

I don't think it would be bad if we changed <ref> to mean <ref>:<ref>
and require <ref>: to pull without storing remote branch anywhere locally;
the problem is that we probably want <ref>:<remote>/<ref>.

An alternative would be to tag a fix, and as to do the following

  $ git fetch origin tag proposed-fix

>       2. The "-b build" thing in git-checkout. Worse than just
>            looking awkward, this causes a real problem, since my
>            git-fetch instructions only work the first time, (if they
>            follow them later they're going to run into "branch build
>            already exists"). Detached head in 1.5 should help here,
>            but see below.

An alternative would be to have some branch used only to bring
working directory to given state, by using "git reset --hard <ref>"
while being on it.

E.g.

  $ git checkout build
  $ git reset --hard proposed-fix

(assuming that 'build' branch was created earlier).

>       3. The separation between how to clone and how to fetch into
>            an existing repository is annoying. What I'd really like to
>            do is just publish something like:
> 
>               git://git.project.org/~cworth/project proposed-fix
> 
>          and allow users to just cut-and-paste that to commands as
>          needed. That is, I think it would be nice if "git fetch" or
>          "git clone" could accept the "URL branch" string above and
>          just do the right thing with it.
> 
[...]
> Also, if I'm willing to assume (or insist) that users have git 1.5 or
> newer, it'd be nice to be able to drop the "-b build" thing thanks to
> the new detached HEAD support. But if I suggest doing just:
> 
>               git checkout origin/proposed-fix
> 
> the user is presented with the following message which is much more
> scary than useful in this situation:
> 
>       warning: you are not on ANY branch anymore.
>       If you meant to create a new branch from the commit, you need -b to
>       associate a new branch with the wanted checkout.  Example:
>         git checkout -b <new_branch_name> origin/proposed-fix
> 
> The user is getting warned, getting told they perhaps wanted to do
> something else, and getting told that if so they would need to use a
> different command. But the command I gave does exactly what they
> wanted, and following git's advice here would be a bad idea.
> 
> I propose this warning be removed here. Otherwise, I either add text
> to my instructions telling the user to ignore the warning message they
> get, or else I go back to "-b build" and back to all the old problems
> it causes.

I rather leave warning, but (perhaps around 1.5.1) remove the
instructions. RTFM (err... I'm not sure we have one about detached HEAD).

-- 
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git

  reply	other threads:[~2007-01-30 21:01 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-01-30 20:13 Difficulties in advertising a new branch to git newbies Carl Worth
2007-01-30 21:02 ` Jakub Narebski [this message]
2007-01-30 21:25   ` Yann Dirson
2007-01-30 21:31     ` Jakub Narebski
2007-01-30 21:32     ` Junio C Hamano
2007-01-30 21:40       ` Jakub Narebski
2007-01-30 22:33 ` Matthias Lederhofer
2007-01-30 22:36   ` Matthias Lederhofer
2007-01-30 23:10 ` Jeff King
2007-01-31  1:34   ` Junio C Hamano
2007-01-31  1:51     ` Nicolas Pitre
2007-01-31  3:22     ` Jeff King
2007-01-31 14:59       ` Nicolas Pitre
2007-01-31 17:07         ` Jeff King
2007-01-31 18:59           ` Nicolas Pitre
2007-01-31 22:53             ` Jeff King
2007-01-31 20:20           ` Junio C Hamano
2007-01-31 22:51             ` Theodore Tso
2007-01-31 23:03               ` Junio C Hamano
2007-01-31 23:18               ` Jakub Narebski
2007-01-31  1:48   ` Nicolas Pitre
2007-01-31  0:10 ` Daniel Barkalow
2007-01-31  1:55   ` Nicolas Pitre
2007-01-31  5:09     ` Daniel Barkalow
2007-01-31 14:31       ` Nicolas Pitre
2007-01-31 14:38         ` J. Bruce Fields
2007-01-31 14:53           ` Jakub Narebski
2007-01-31 15:15             ` Nicolas Pitre
2007-01-31 16:25         ` Daniel Barkalow
2007-01-31 18:25           ` Nicolas Pitre
2007-01-31 13:13 ` Guilhem Bonnefille
2007-01-31 16:06   ` Carl Worth
2007-01-31 16:15     ` Johannes Schindelin
2007-01-31 19:27 ` Santi Béjar
2007-01-31 19:50   ` Carl Worth
2007-02-01  0:20     ` Josef Weidendorfer
2007-02-01  9:02       ` Santi Béjar
2007-02-01  4:12 ` Jakub Narebski
2007-02-06  5:51 ` Carl Worth
2007-02-06  6:37   ` Junio C Hamano
2007-02-06  7:25     ` Junio C Hamano
2007-02-06  7:31       ` Jeff King
2007-02-06 18:53     ` Carl Worth
2007-02-06 19:14       ` Junio C Hamano
2007-02-06 19:39         ` Carl Worth
2007-02-06 19:58           ` Jakub Narebski
2007-02-06  7:28   ` Jeff King
2007-02-06  7:46     ` Junio C Hamano
2007-02-06  8:12       ` Jeff King
2007-02-06 15:33     ` Nicolas Pitre

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='epobn1$jv8$1@sea.gmane.org' \
    --to=jnareb@gmail.com \
    --cc=git@vger.kernel.org \
    /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).