On Thu, 4 May 2006, Daniel Barkalow wrote: > > I think it shouldn't be on fetch, though; I think a "git remote" command > for describing, creating, and modifying remotes would be better, since you > also sometimes want to add a "Push:" line. I don't think this is wrong, but I think it's more important to try to decide on how we want to represent this information first, and stabilize that. I realize that git has gotten a lot more porcelainish over time, but at the same time, now you're really starting to argue about syntax that really ends up being often a feature of the development environment. If you did development using an IDE that knows about git, I think the "remote" information ends up being not necessarily a git command at all, but really an interface in the IDE. I'm actually growing pretty fond of the config file interfaces that Dscho is pushing. I really like the idea of "git pull" doing different things depending on which branch is active at the time, because different branches really can have different sources they come from. Always pulling from the same default source seems wrong, and having to remember whose source some branch is associated with is just not all that user-friendly, but perhaps more importantly, it's also going to result in people making mistakes, pulling from the wrong branch (because they didn't think about where they were), and then having strange merges that they might not notice were wrong until it's too late and they pushed the result out. So Johannes' patches seem to move into that direction, and having it all in the config file actually seems to be quite readable. And that, in turn, may mean that a lot of porcelains really only care about that syntax, and then they may update the config file any way they please (whether by hand, or by using "git repo-config" or by using "git remote"). So I'd argue that (a) yes, we do want to have the "proto porcelain" that sets remote branch information without the user having to know the magic "git repo-config" incantation, or know which file in .git/remotes/ to edit, but that (b) it's even more important to try to decide on what the remote description format _is_. I personally have just two preferences: - I'd like each branch I'm on to have a "default source" for pulling (and _maybe_ for pushing too). I'd like to just say "git pull", and it would automatically select the appropriate thing to pull from. - maybe the same per-branch thing for "push", but more importantly for me, I like to push to multiple destinations, and I'd like the description format to be sane. I think it may already be sane in the form it is in now (supporting both config file _and_ .git/remotes/ formats), I'd just like us to decide on exactly what the meaning is, and hopefully get to the point where we can tell porcelain how to use that meaning to their advantage (and not change it) Others may disagree, or (equally importantly), may have additional preferences. We should try to find something that works for everybody, and that is easy to work with. Linus - : send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html