Re: Cleaning up git user-interface warts

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: Junio C Hamano <junkio@...>
Cc: Michael K. Edwards <medwards.linux@...>, <git@...>
Date: Friday, November 17, 2006 - 5:18 am

On Fri, 17 Nov 2006 00:41:33 -0800, Junio C Hamano wrote:

That's fine with me. Maybe I didn't explain this well before, but my
desire is exactly for this to work with multiple repositories.

Specifically, what we have in cairo is a "central" shared tree that
many people push to. But we only have two branches there, (one for
bug-fixes only for our stable releases, and one for ongoing
development of new features, and that only of stuff that's well
cooked).

So that tree looks and acts an awful lot like our cvs tree back in the
past. It's often very linear and often fairly boring to look at in gitk.

Meanwhile, all the really interesting stuff happens in personal
repositories where people have their own branches for stuff that is
still getting cooked. This is what's a lot more fun to watch, and
there's a lot more distributed back-and-forth that goes on here as
people collaborate on things. And it's all this kind of collaboration
that cvs never helped with at all, but git has been great.

So, what I want is both "git update" for the central tree. I said we
only have two branches, but that's really only two that are
active---the "stable" branch is actually a new branch after every
major release. It was 1.0 for a while, is 1.2 now, and will be 1.4
later. So I want "git update" to automatically pick those new branches
up as they get created.

Meanwhile, I also want to use "git update" to track everything that
people are working on in the more wild personal trees. So, yes, I do
want "git update" to be able to track lots of remote repositories in a
sane way.

What I have been doing up to this point is a little script I wrote
that does git-ls-remote on the repository I want to track and writes a
.git/remotes file to bring in all their branches. So if I want to see
what behdad is up to, I first refresh his .git/remotes file with my:

	cairo-git-setup-remotes behdad
then:
	git fetch behdad

And I end up with a bunch of branch names with "behdad-" prefixes that
I can explore or blow away if I'm no longer interested, (could have
used a "behdad/" prefix as well).

The first problem we ran into when doing that months ago was that I
don't want any tracking branches to come across this way. Or else I
end up with behdad-origin, he then gets cworth-behdad-origin, ad
nauseum. So we filtered "origin" out, but it will be nice to revisit
this if there's a sane distinction in git now to separate tracking
branches from heads.


Yes, git-fetch is lovely, and it's the need for manual configuration
that's a problem, (and the mixing up of heads and remote tracking
branches that has been in git historically).

So, yes, I'll definitely look into improving this. I think the details
will involve:

1. Making clone do the --use-separate-remotes behavior by default

2. Taking advantage of that consistently for all branches instead of a
   special master:origin mapping in clone

3. Enhancing git-fetch (or other) to modify .git/remotes, (or was
   there a desire for some other branch-specific section in the config
   file?)

4. Making git-fetch handle the disappearance of a remote branch
   gracefully

5. Adding something like git-fetch --all to allow it to pick up all new
   branches

6. Adding a "git update" that does a fetch for all appropriately
   marked remotes.

On this last point, maybe we do something like:

	update=no|yes|all

in .git/remotes. Then git-clone would set this up with update=all for
origin so git-update would do a "fetch --all" on the origin
repository. Then step 3 above would have to provide for setting this
update option as appropriate.

Anyway, something along those lines perhaps. Any feedback?

-Carl
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Re: Cleaning up git user-interface warts, Jakub Narebski, (Tue Nov 14, 5:30 pm)
Re: Cleaning up git user-interface warts, Nicolas Pitre, (Tue Nov 14, 5:34 pm)
Re: Cleaning up git user-interface warts, Junio C Hamano, (Tue Nov 14, 6:56 pm)
Re: Cleaning up git user-interface warts, Nicolas Pitre, (Tue Nov 14, 9:48 pm)
Re: Cleaning up git user-interface warts, Junio C Hamano, (Tue Nov 14, 10:10 pm)
Re: Cleaning up git user-interface warts, Petr Baudis, (Wed Nov 15, 4:12 pm)
Re: Cleaning up git user-interface warts, Nicolas Pitre, (Wed Nov 15, 4:26 pm)
Re: Cleaning up git user-interface warts, Linus Torvalds, (Wed Nov 15, 4:50 pm)
Re: Cleaning up git user-interface warts, Nicolas Pitre, (Wed Nov 15, 5:18 pm)
Re: Cleaning up git user-interface warts, Nicolas Pitre, (Wed Nov 15, 12:20 am)
Re: Cleaning up git user-interface warts, Linus Torvalds, (Wed Nov 15, 2:03 pm)
Re: Cleaning up git user-interface warts, Petr Baudis, (Thu Nov 16, 12:30 am)
Re: Cleaning up git user-interface warts, Theodore Tso, (Wed Nov 15, 9:14 pm)
Re: Cleaning up git user-interface warts, Junio C Hamano, (Thu Nov 16, 12:21 am)
Re: Cleaning up git user-interface warts, Theodore Tso, (Thu Nov 16, 12:07 pm)
Re: Cleaning up git user-interface warts , Sanjoy Mahajan, (Wed Nov 22, 7:21 pm)
Re: Cleaning up git user-interface warts, Theodore Tso, (Thu Nov 16, 12:49 pm)
Re: Cleaning up git user-interface warts, Alexandre Julliard, (Thu Nov 16, 7:34 am)
Re: Cleaning up git user-interface warts, Petr Baudis, (Thu Nov 16, 10:01 am)
Re: Cleaning up git user-interface warts, Alexandre Julliard, (Thu Nov 16, 11:48 am)
Re: Cleaning up git user-interface warts, Han-Wen Nienhuys, (Wed Nov 15, 9:20 pm)
Re: Cleaning up git user-interface warts, Linus Torvalds, (Wed Nov 15, 11:12 pm)
Re: Cleaning up git user-interface warts, Johannes Schindelin, (Thu Nov 16, 7:00 pm)
Re: Cleaning up git user-interface warts, Linus Torvalds, (Thu Nov 16, 7:22 pm)
Re: Cleaning up git user-interface warts, Han-Wen Nienhuys, (Thu Nov 16, 8:05 pm)
Re: Cleaning up git user-interface warts , Horst H. von Brand, (Wed Nov 22, 10:52 pm)
Re: Cleaning up git user-interface warts, Michael K. Edwards, (Thu Nov 16, 9:34 pm)
Re: Cleaning up git user-interface warts, Michael K. Edwards, (Fri Nov 17, 2:42 am)
Re: Cleaning up git user-interface warts, Junio C Hamano, (Fri Nov 17, 3:32 am)
Re: Cleaning up git user-interface warts, Michael K. Edwards, (Fri Nov 17, 9:24 pm)
Re: Cleaning up git user-interface warts, Linus Torvalds, (Thu Nov 16, 8:39 pm)
Re: Cleaning up git user-interface warts, Han-Wen Nienhuys, (Thu Nov 16, 8:52 pm)
Re: Cleaning up git user-interface warts, Junio C Hamano, (Thu Nov 16, 8:13 pm)
Re: Cleaning up git user-interface warts, Carl Worth, (Thu Nov 16, 9:25 pm)
Re: Cleaning up git user-interface warts, Carl Worth, (Thu Nov 16, 8:37 pm)
Re: Cleaning up git user-interface warts, Han-Wen Nienhuys, (Thu Nov 16, 8:27 pm)
Re: Cleaning up git user-interface warts, Petr Baudis, (Thu Nov 16, 8:35 pm)
Re: Cleaning up git user-interface warts, Han-Wen Nienhuys, (Thu Nov 16, 6:45 am)
Re: Cleaning up git user-interface warts, Linus Torvalds, (Thu Nov 16, 12:23 pm)
Re: Cleaning up git user-interface warts, Han-Wen Nienhuys, (Thu Nov 16, 12:42 pm)
Re: Cleaning up git user-interface warts, Linus Torvalds, (Thu Nov 16, 1:17 pm)
Re: Cleaning up git user-interface warts, Carl Worth, (Thu Nov 16, 2:13 pm)
Re: Cleaning up git user-interface warts, Linus Torvalds, (Thu Nov 16, 1:57 pm)
Re: Cleaning up git user-interface warts, Linus Torvalds, (Thu Nov 16, 2:28 pm)
Re: Cleaning up git user-interface warts, Junio C Hamano, (Thu Nov 16, 3:47 pm)
Re: Cleaning up git user-interface warts, Linus Torvalds, (Thu Nov 16, 3:53 pm)
Re: Cleaning up git user-interface warts, Junio C Hamano, (Thu Nov 16, 2:27 pm)
Re: multi-project repos (was Re: Cleaning up git user-interf..., Johannes Schindelin, (Thu Nov 16, 6:21 pm)
Re: multi-project repos (was Re: Cleaning up git user-interf..., Johannes Schindelin, (Thu Nov 16, 7:36 pm)
Re: multi-project repos (was Re: Cleaning up git user-interf..., Johannes Schindelin, (Thu Nov 16, 9:22 pm)
Re: multi-project repos (was Re: Cleaning up git user-interf..., Johannes Schindelin, (Thu Nov 16, 10:16 pm)
Re: multi-project repos, Junio C Hamano, (Thu Nov 16, 6:44 pm)
Re: multi-project repos, Johannes Schindelin, (Thu Nov 16, 8:29 pm)
Re: multi-project repos, Junio C Hamano, (Fri Nov 17, 1:39 pm)
Re: multi-project repos, Shawn Pearce, (Sat Nov 18, 2:02 am)
Re: multi-project repos, Junio C Hamano, (Sat Nov 18, 3:31 am)
Re: multi-project repos, Shawn Pearce, (Sat Nov 18, 3:45 am)
Re: multi-project repos, Junio C Hamano, (Fri Nov 17, 4:24 pm)
Re: multi-project repos, Junio C Hamano, (Thu Nov 16, 2:33 pm)
Re: Cleaning up git user-interface warts, Junio C Hamano, (Thu Nov 16, 7:11 am)
Re: Cleaning up git user-interface warts, Han-Wen Nienhuys, (Thu Nov 16, 9:03 am)
Re: Cleaning up git user-interface warts, Han-Wen Nienhuys, (Thu Nov 16, 9:11 am)
Re: Cleaning up git user-interface warts, Junio C Hamano, (Thu Nov 16, 7:47 am)
Re: Cleaning up git user-interface warts , Horst H. von Brand, (Mon Nov 20, 3:44 pm)
Re: Cleaning up git user-interface warts, Shawn Pearce, (Mon Nov 20, 3:46 pm)
Re: Cleaning up git user-interface warts, Junio C Hamano, (Wed Nov 15, 10:03 pm)
Re: Cleaning up git user-interface warts, Han-Wen Nienhuys, (Wed Nov 15, 10:30 pm)
Re: Cleaning up git user-interface warts, Junio C Hamano, (Wed Nov 15, 11:27 pm)
Re: Cleaning up git user-interface warts, Junio C Hamano, (Thu Nov 16, 12:07 am)
Re: Cleaning up git user-interface warts, Junio C Hamano, (Wed Nov 15, 11:35 pm)
Re: Cleaning up git user-interface warts, Andy Parkins, (Wed Nov 15, 2:58 pm)
Re: Cleaning up git user-interface warts, Junio C Hamano, (Wed Nov 15, 3:32 pm)
Re: Cleaning up git user-interface warts, Linus Torvalds, (Wed Nov 15, 3:18 pm)
Re: Cleaning up git user-interface warts, Michael K. Edwards, (Wed Nov 15, 3:39 pm)
Re: Cleaning up git user-interface warts, Linus Torvalds, (Wed Nov 15, 4:09 pm)
Re: Cleaning up git user-interface warts, Nicolas Pitre, (Wed Nov 15, 4:21 pm)
Re: Cleaning up git user-interface warts, Linus Torvalds, (Wed Nov 15, 4:40 pm)
Re: Cleaning up git user-interface warts, Theodore Tso, (Thu Nov 16, 12:26 am)
Re: Cleaning up git user-interface warts, Andreas Ericsson, (Thu Nov 16, 7:50 am)
Re: Cleaning up git user-interface warts, Linus Torvalds, (Thu Nov 16, 12:30 pm)
Re: Cleaning up git user-interface warts, Carl Worth, (Thu Nov 16, 1:01 pm)
Re: Cleaning up git user-interface warts, Linus Torvalds, (Thu Nov 16, 1:30 pm)
Re: Cleaning up git user-interface warts, Sean, (Thu Nov 16, 1:44 pm)
Re: Cleaning up git user-interface warts, Carl Worth, (Wed Nov 15, 5:08 pm)
Re: Cleaning up git user-interface warts, Jerome Lovy, (Tue Nov 21, 9:25 am)
Re: Cleaning up git user-interface warts, Linus Torvalds, (Wed Nov 15, 5:45 pm)
Re: Cleaning up git user-interface warts, Carl Worth, (Wed Nov 15, 6:52 pm)
Re: Cleaning up git user-interface warts, Sean, (Wed Nov 15, 7:07 pm)
Re: Cleaning up git user-interface warts, Shawn Pearce, (Wed Nov 15, 7:02 pm)
Re: Cleaning up git user-interface warts, Linus Torvalds, (Wed Nov 15, 7:33 pm)
Re: Cleaning up git user-interface warts, Carl Worth, (Thu Nov 16, 12:37 pm)
Re: Cleaning up git user-interface warts, Michael K. Edwards, (Thu Nov 16, 1:57 pm)
Re: Cleaning up git user-interface warts, Carl Worth, (Thu Nov 16, 2:23 pm)
Re: Cleaning up git user-interface warts, Junio C Hamano, (Fri Nov 17, 4:41 am)
Re: Cleaning up git user-interface warts, Carl Worth, (Fri Nov 17, 5:18 am)
Re: Cleaning up git user-interface warts, Junio C Hamano, (Fri Nov 17, 7:29 am)
Re: Cleaning up git user-interface warts, Johannes Schindelin, (Fri Nov 17, 6:11 am)
Re: Cleaning up git user-interface warts, Shawn Pearce, (Fri Nov 17, 12:58 pm)
Re: Cleaning up git user-interface warts, Junio C Hamano, (Fri Nov 17, 7:41 am)
Re: Cleaning up git user-interface warts, Michael K. Edwards, (Wed Nov 15, 11:02 pm)
Re: Cleaning up git user-interface warts, Andreas Ericsson, (Thu Nov 16, 7:35 am)
Re: Cleaning up git user-interface warts, Nicolas Pitre, (Wed Nov 15, 8:08 pm)
Re: Cleaning up git user-interface warts, Linus Torvalds, (Wed Nov 15, 11:07 pm)
Re: Cleaning up git user-interface warts, Nicolas Pitre, (Wed Nov 15, 11:43 pm)
Re: Cleaning up git user-interface warts, Junio C Hamano, (Wed Nov 15, 5:31 pm)
Re: Cleaning up git user-interface warts, Nicolas Pitre, (Wed Nov 15, 5:40 pm)
Re: Cleaning up git user-interface warts, Junio C Hamano, (Wed Nov 15, 5:52 pm)
Re: Cleaning up git user-interface warts, Karl , (Fri Nov 17, 8:20 am)
Re: Cleaning up git user-interface warts, Nicolas Pitre, (Wed Nov 15, 5:59 pm)
Re: Cleaning up git user-interface warts, Nicolas Pitre, (Wed Nov 15, 2:43 pm)
Re: Cleaning up git user-interface warts, Shawn Pearce, (Wed Nov 15, 2:49 pm)
Re: Cleaning up git user-interface warts, Marko Macek, (Wed Nov 15, 3:05 pm)
Re: Cleaning up git user-interface warts, Sean, (Wed Nov 15, 6:28 pm)
Re: Cleaning up git user-interface warts, Junio C Hamano, (Wed Nov 15, 4:41 pm)
Re: Cleaning up git user-interface warts, Marko Macek, (Thu Nov 16, 2:07 am)
Re: Cleaning up git user-interface warts, Shawn Pearce, (Wed Nov 15, 6:07 pm)
Re: Cleaning up git user-interface warts, Junio C Hamano, (Wed Nov 15, 12:58 am)
Re: Cleaning up git user-interface warts, Michael K. Edwards, (Tue Nov 14, 10:27 pm)