All of lore.kernel.org
 help / color / mirror / Atom feed
From: Martin Langhoff <martin@catalyst.net.nz>
To: Carl Worth <cworth@cworth.org>
Cc: git@vger.kernel.org, junkio@cox.net
Subject: Re: [RFC] git-clone: add --track <headname> support
Date: Fri, 13 Apr 2007 09:46:45 +1200	[thread overview]
Message-ID: <461EA8C5.1070503@catalyst.net.nz> (raw)
In-Reply-To: <87veg1tuuv.wl%cworth@cworth.org>

Carl Worth wrote:
> Whether we're talking about cogito migration or not, I also want these
> operations to be dead simple. So I really appreciate seeing your
> efforts on this front.

Hi Carl! Yes - this stuff should be simple, and _really hard to fsck up_.

> I seem to recall Linus complaining about the <repo>#branchname syntax
> because it allows for only one branch name. So one thing to think
> about is how to allow for multiple branches to be tracked while
> cloning, ("--track branch1 --track branch2" ?).

That wouldn't be hard to implement. Actually, we could support both.

> Separately, something I've always wanted is a succint way to advertise
> a complete specification of a branch that users could conveniently
> take, (read, "cut-and-paste, preferably with double-click"), and use
> whether they wanted to do any one of the following operations:
(...)
> For this, I think the <repo>#branch syntax is actually worthing
> thinking about. With it, the above three operations could be provided
> with operations something like:
> 
> 	git clone <repo>#branch
> 
> 	git fetch <repo>#branch
> 
> 	git track <repo>#branch

So you are proposing (or maybe I am re-interpreting things so) that

  git track <repo>#branch

should Do The Right Thing:

 - perform a clone if we aren't in a repo
 - set things up for tracking the branch if we are in a repo

I like the idea. :-)

> Where this new git-track command would encompass a lot of the work
> that git-clone is doing currently. That is, the git-clone rewrite
> that Junio is envisioning could be implemented something like:
> 
> 	mkdir <branch>
> 	cd <branch>
> 	git init-db
> 	git track <repo>#branch

Oops - looks like we are talking about different things. What you write
above can be done with "git-branch --track" on 1.5.1 so it's already in
existence.

> By the way, the <repo>#branch syntax isn't essential for what I'm
> describing here. This syntax does provide something that could be
> usefully provided to either git-clone or git-fetch as a single
> command. This is opposed to the current state where I have to say
> things like:
> 
> 	If you've got a clone already, do: [*]
> 
> 		git fetch <repo> branch:branch
> 		git checkout branch
> 
> 	If you don't have a clone yet, do:
> 
> 		git clone <repo>
> 		git checkout -b branch origin/branch

With my proposed git-track as a wrapper around git-clone _and_
git-branch --track, you only need to say

    To start working on foo, do

      git track <repo>#branch

And if the user has an existing checkout they can do if from inside the
checkout, or perhaps better, saying

     git track --reference <myoldcheckout> <repo>#branch

to avoid the biiig download.


cheers,



m
-- 
-----------------------------------------------------------------------
Martin @ Catalyst .Net .NZ  Ltd, PO Box 11-053, Manners St,  Wellington
WEB: http://catalyst.net.nz/           PHYS: Level 2, 150-154 Willis St
OFFICE: +64(4)916-7224  UK: 0845 868 5733 ext 7224  MOB: +64(21)364-017
      Make things as simple as possible, but no simpler - Einstein
-----------------------------------------------------------------------

  reply	other threads:[~2007-04-12 21:47 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-04-12 10:08 [RFC] git-clone: add --track <headname> support Martin Langhoff
2007-04-12 10:23 ` Junio C Hamano
2007-04-12 21:32   ` Martin Langhoff
2007-04-12 16:34 ` Carl Worth
2007-04-12 21:46   ` Martin Langhoff [this message]
2007-04-12 23:24     ` Carl Worth
2007-04-12 23:50       ` Martin Langhoff
2007-04-13  0:28         ` Junio C Hamano
2007-04-13  3:50       ` Junio C Hamano

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=461EA8C5.1070503@catalyst.net.nz \
    --to=martin@catalyst.net.nz \
    --cc=cworth@cworth.org \
    --cc=git@vger.kernel.org \
    --cc=junkio@cox.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.