From: Felipe Contreras Date: Sun, 19 May 2013 08:12:32 GMT Subject: Re: [RFC] New kind of upstream branch: base branch Message-ID: <5198897048728_76e0f31e20807dc@nysa.mail> In-Reply-To: <7vbo871obk.fsf@alter.siamese.dyndns.org> Junio C Hamano wrote: > Kevin Bracey writes: > > And it would be ideal if the initial base and push tracking > > information could be set up automatically on the first "git checkout > > -b"/"git branch" and "git push". > > I think checkout and branch is already covered with -t. There may > even be a configuration option to implicitly add -t to them (I > didn't check). branch.autosetupmerge=always > > (For one, I've always found it odd > > that there's an asymmetry - if you check out a topic branch from the > > server to work on or use it, you get a local copy with upstream set by > > default. But if you create a topic branch yourself then push it, the > > upstream isn't set by default - you need the -u flag. This seems odd > > to me, and I've seen others confused by this). > > Yeah, I would imagine that it would be trivial to add an option to > cause "git push" to do that, and it would be useful if you push to > and pull from the same place (I haven't thought about ramifications > such an option would have on the triangular workflows, though). It would work wonderfully. Now: == remote == % git checkout -b master origin/master # work % git push == local == % git checkout -b topic master # work % git push # ERR % git push -u origin/master # work % git push # ERR That doesn't work. We could set branch.autosetupmerge=always as the default, but it still wouldn't work, because push.default=simple (or at least it will be), and the names don't match. But with my patches, and branch.autosetupmerge=always (hopefully for 2.0): == local == % git checkout -b topic master # work % git push # ERR % git push --set-downstream origin/master # work % git push Cheers. -- Felipe Contreras