gl publish requires the same strange setup with the same odd justification as git's indefensible remote management. Specifically:
You have to associate an upstream branch with each local branch, with no default; and
The syntax for creating that association is non-obvious, and not suggested by either documentation or error message
An illustration. As a gitless newbie and git-hater (but veteran of RCS, SCCS, CVS, Mercurial, and ClearCase), I worked on a branch and then tried the natural and obvious:
bash-4.4$ gl publish
✘ No dst branch specified and the current branch has no upstream branch set
Well, that's covered by #59, but I'm also complaining about the next bit. I looked in the documentation which appeared to have a clear example of setting an upstream branch of experiment/develop. Well, I had a different branch name in mind, and it didn't have a / in it, so I tried to set-upstream a branch with the same name and then publish to it:
bash-4.4$ gl branch -su disproof_of_concept
✔ Current branch disproof_of_concept set to track disproof_of_concept
bash-4.4$ gl publish
! No dst branch specified, using upstream branch disproof_of_concept
✘ Can't publish to a local branch (yet---this will be implemented in the future)
It was at this point that I realised that none of the git craziness surrounding remote branches has been concealed or dispelled. I, the hapless user, still have to understand git's bizarre arrangement of remotes, remote/branch, and the custom network of remote-tracking branches. The defaults for this setup should be obvious (i.e. the first publish of branch foo should push to origin/foo by default, creating that remote branch if it doesn't exist yet). I'm not surprised that git makes it difficult, but I'm surprised that gitless doesn't make it easy again. Is there really any doubt about the right way to push branches?
gl publish
requires the same strange setup with the same odd justification as git's indefensibleremote
management. Specifically:An illustration. As a gitless newbie and git-hater (but veteran of RCS, SCCS, CVS, Mercurial, and ClearCase), I worked on a branch and then tried the natural and obvious:
Well, that's covered by #59, but I'm also complaining about the next bit. I looked in the documentation which appeared to have a clear example of setting an upstream branch of
experiment/develop
. Well, I had a different branch name in mind, and it didn't have a/
in it, so I tried to set-upstream a branch with the same name and then publish to it:It was at this point that I realised that none of the git craziness surrounding remote branches has been concealed or dispelled. I, the hapless user, still have to understand git's bizarre arrangement of remotes, remote/branch, and the custom network of remote-tracking branches. The defaults for this setup should be obvious (i.e. the first publish of branch
foo
should push toorigin/foo
by default, creating that remote branch if it doesn't exist yet). I'm not surprised that git makes it difficult, but I'm surprised that gitless doesn't make it easy again. Is there really any doubt about the right way to push branches?