login
Header Space

 
 

Re: multi-project repos (was Re: Cleaning up git user-interface warts)

Score:
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: Johannes Schindelin <Johannes.Schindelin@...>
Cc: Han-Wen Nienhuys <hanwen@...>, Junio C Hamano <junkio@...>, <git@...>
Date: Thursday, November 16, 2006 - 7:08 pm

On Thu, 16 Nov 2006, Linus Torvalds wrote:

Btw, I'd like to claim that this is a _great_ user interface.

Yeah, it's different from other SCM's. I don't think you'd really want to 
script a merge like this in CVS, especially not using standard UNIX 
pipelines etc. But it's an example of how a lot of git operations - even 
the "high level ones" are pretty scriptable, using very basic and very 
simple standard UNIX shell scripting.

So even though I'd not actually _do_ the above one-liner, I think it's a 
great example of how git really works, and how scriptable it can be, 
without a lot of huge problems.

So considering that "FETCH_HEAD" works pretty much everywhere, and that 
you can also use the totally non-scripting approach of doing "standard" 
SCM things like

	git diff ..FETCH_HEAD

or 

	gitk HEAD...FETCH_HEAD

to look at what got fetched (and in the latter case look at both the 
current HEAD _and_ FETCH_HEAD, and what was in one but not the other), I 
really think it's unfair to say that "git fetch" does not have a nice UI.

It's just that "git fetch" can be used two totally different ways:

 - "git fetch" to get something temporary: use FETCH_HEAD, and do _not_ 
   specify a destination branch

 - "git fetch" as a way to update the branches you already have, by either 
   using explicit branch specifiers (which would be unusual, but works), 
   or by just having the branch relationships listed in your .git/remotes/ 
   file or .git/config file.

both are actually very natural things to do.

What is probably _not_ that natural is to do the explicit branch 
specifier, ie

	git fetch somerepo remotebranch:localbranch

which obviously works, but you wouldn't want to actually do this very 
often. Either you do something once (and use FETCH_HEAD, which is actually 
nicer than a real branch in some respects: it also tells you were you 
fetched _from_, and it can contain data on merging from _multiple_ 
branches), or you set up a "real translation" in your configuration files.

So I would say that the natural thing to do is:

 - "git pull somerepo"

   This will _also_ fetch all the branches you've said you want to track, 
   of course.

 - "git fetch somerepo somebranch"

   Look at FETCH_HEAD, and be happy

 - "git fetch somerepo"

   This is kind of strange, but it can be useful if you are basically just 
   mirroring another repo, and want to fetch all the branches you've said 
   you want to track, but don't actually want to check them out.

while the "complicated" scenario like the following is something you 
should generally _avoid_, because it's just confusing and complex:

 - "git fetch somerepo branch1:mybranch1 branch2:mybranch2"

   This works, and I'm sure it's useful, and I've even used it (usually 
   with just one branch, though), but let's face it - it's too damn 
   complicated to be anything you want to do _normally_.

So git is definitely powerful, but I think some people have looked at the 
_complicated_ cases more than the simple cases (ie maybe people have 
looked too much at that last case, not realizing that there really isn't 
much reason to use it - and FETCH_HEAD is one big reason why you seldom 
need the complicated format).

			Linus
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
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 (was Re: Cleaning up git user-interf..., Linus Torvalds, (Thu Nov 16, 7:08 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)
speck-geostationary