gitless-vcs / gitless

A simple version control system built on top of Git
https://gitless.com
MIT License
1.93k stars 105 forks source link

"publish" has peculiar requirements #74

Open aecolley opened 8 years ago

aecolley commented 8 years ago

gl publish requires the same strange setup with the same odd justification as git's indefensible remote 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:

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?

cougarhawk commented 7 years ago

https://github.com/sdg-mit/gitless/issues/59#issuecomment-323364306