Comparing Confusing Terms in GitHub, Bitbucket, and GitLab
about.gitlab.com
about.gitlab.com
We always kind of hated the term "pull request". It's pretty confusing for a beginner, and for a number of years led to the idea that GitHub didn't have code review at all in the product. (For that reason, I always thought we should just call them "Code Reviews", or just "Reviews".) There were a number of attempts to change it, but they all died.
It wasn't until last year when I got a beer with an ex-Atlassian employee when we chatted about this and realized we both had hated the term and had a number of attempts to change the nomenclature, but they fizzled out. Funny how things work out.
End result: people are confused and using a procedure that's more complex than what most of their contributions call for, but that goes away when you remember what the numbers for the company are.
It may seem superficial, but if there's some way that you could give users the option to surface the pull request terminology rather than merge request, even if it's just a configuration option, you may find people more receptive to your product.
That being said, you can't POSSIBLY be serious that this one piece of nomenclature drove the decision between GitLab Enterprise and GitHub Enterprise. The latter costs roughly 5 times more than the former! Either this is unbridled hyperbole... or else money is no object at your company, and it's weird that you were evaluating GitLab in the first place.
And developers cost several orders of magnitude more than the software license.
The decision wasn't a matter of looking at features and making a logical decision. The decision was made by taking a sampling of developers and allowing them to test both systems and relying on their preference. They were unanimous that they preferred GHE. In drilling into their preference, the merge request nomenclature was the only issue that everyone mentioned they disliked.
And yes, the company wastes money like no other...it's part of the culture here and the result of having cash cow products that have very little competition. The only reason there was an evaluation was because one group inside the company was using Gitlab and another GH.com and the company decided to standardize on a single in-house solution.
Blasphemy. Atlanta can have their "Coke". Us North Carolinians drink Pepsi (born 1893 in New Bern, NC).
And to your point:
>The latter costs roughly 5 times more than the former! Either this is unbridled hyperbole... or else money is no object at your company, and it's weird that you were evaluating GitLab in the first place.
Never underestimate the ability of enterprises to over pay for a product despite the existence of cheaper, and arguably better solutions.
BTW, sytse, what's the best address to contact you about gitlab? There's something I'd like your thoughts on.
I found fetch/rebase/merge to be more difficult to wrap my head around (and I still can't do an interactive rebase/squash)
Then I thought "Hey, why not use the docker image?" (reeling from deep pain from the last time I tried to upgrade an LXC-based Gitlab instance across major versions), then I wondered if I needed aufs, then I wound up reading presentations about storage drivers (zfs FTW, but shame on docker for wanting an entire zpool to itself!), then decided overlay was better (and in-kernel), then I wanted to switch to a PaX kernel, now I've got a day of recompilation and installations ahead of me. But I will be glad to know MRs lie at the end ;) +1 docker bug: https://github.com/docker/docker/issues/20303
Use native devicemapper (using an lvm mounted volume). Best, fastest and least buggy.
Overlay was flagged as massively buggy.
Source?
I was not planning to use LVM because it's documented[0] as slow and resource hungry... full copy each time, massive memory use, etc.
CONFIG_OVERLAY_FS is mainline kernel code (unlike aufs) and not marked as experimental so if docker's implementation is buggy it is more likely to be docker's fault. It is documented by docker as being generally fast.[1]
Regardless, I don't see performance as a great concern for my workloads... I'm more interested in the workflow enhancements.
[0] https://docs.docker.com/engine/userguide/storagedriver/devic... [1] https://docs.docker.com/engine/userguide/storagedriver/overl...
I shifted from overlay to devicemapper after this conversation. YMMV.
Huge fan of Gitlab, though. We're about to migrate from BitBucket Server née Stash to Gitlab CE.
Maybe that says more about the Gist UI than anything else. I still think there's a chance for a Git-backed OneNote clone to really take off - if you hid Git away for normal users it would be really powerful.
I think some concept of scratch/temporary repositories might be better than a Gist-style thing, but Gist with a better UI might work too.
Pull Request makes sense to me, Merge Request makes sense to me too. To others, one may resonate more. Rosetta Stone posts like this can be helpful to people who are used to a particular vernacular, and I don't think the semantic distinction is itself the point. Other than the Gist comparison (which I mentioned in another comment), I think this post was helpful.
It's truly inspiring how _present_ Gitlab are in the communities they serve.
Note that "Merge request" doesn't solve this problem.
From a user-interface design perspective I would say it would be bad to have a button or link that solely says "pull request" or "merge request". It should probably be preceded by a verb such as view, send or process.
Also, pulling a pull request or merging a merge request is just weird and doesn't make sense.
Then how come the following is possible?
1. I submit a pull request to Bob.
2. I delete my repository.
3. Bob successfully accepts my pull request.
Where is Bob pulling from if my repository is already gone?
Semantically you are correct, of course, but Github's current implementation doesn't reflect that.
"Pull request" communicates "I just did a bunch of work, please recognize it and me." "Merge request" communicates "I just did something that is going to make your life hard, please do a bunch of work on my behalf." The later may be more accurate but the former is more emotionally satisfying to the dev making the request.
Edit: reducing verbosity
But I'd love to know. I asked http://programmers.stackexchange.com/q/256789/108980 a while ago.