Skip to content

Instantly share code, notes, and snippets.

@ceejbot
Last active March 14, 2019 02:57
Show Gist options
  • Save ceejbot/6322643 to your computer and use it in GitHub Desktop.
Save ceejbot/6322643 to your computer and use it in GitHub Desktop.
A summary of things I miss about Github when I use Stash.

What I miss about github

See this Cloudup stream for visual references.

The short answer is that I miss everything. There is no comparing the two projects. Stash's feature set is a shadow of Github's.

What a project looks like on Github:

What a project looks like on Github

What the same project looks like on Stash:

What the same project looks like on Stash

The constrast is stark. The Stash project has:

  • no project description
  • no most recent commit message/contributor on top
  • no most recent commit message/date for each item in the file browser
  • no contributor information
  • no commit count, no branch count

The Stash view shows almost no useful information at all. It renders the README markdown, which is nice. It fails to render previews of markdown anywhere else, however. It also only previews that one file type. On github, I can preview not only markdown everywhere, but also geojson files, 3D models, and csv files.

Editing in-line

I didn't know how much I loved the ability to edit files right in the web page until I went to do it on Stash one day and couldn't.

Gists

Gists are ways to have conversations about code or anything without needing a full git repo. They're ways to share documents like this one.

They can be code files, markdown, or a fast way to share log data with teammates.

Stash has no equivalent. There's a plugin you can buy that lets you do something like a pastebin clone, but it's nowhere near as useful as the git-backed syntax-highlighted comment-enabled Gist.

Comparisons

Comparisons without PRs:

comparison without PR screenshot

On github, I can click the "compare" button on any fork or branch to compare the state of my code to the other version. I can tinker with the comparison until I feel ready to make a pull request. Stash has no equivalent. If I want to compare branches, I must do it with the git command-line instead of with Stash.

Issue tracking

Github has Github issues. Atlassian has Jira.

Jira is giant, complicated, littered with fields you don't care about, heavyweight. It takes forever to enter a single simple issue. It has no integration with Stash anyway: I have to paste in links to commits by hand, even when I've mentioned a bug number in a commit message. Perhaps some for-extra-money plugin exists to solve the integration problem, but nothing can solve the problem of a bug client that has lived long enough to accumulate that many fields for a bug.

Would any engineer ever choose to use Jira for a personal project?

Github issues are simple and direct. Title, markdown description, assignee (optional), milestone (optional), tags (optional), markdown comments with link conveniences to commits & people. Excellent integration with the git workflow. The simplicity scales even to large busy projects, like this one:

example

The equivalent listing for the Stash project itself was three clicks in from the top page. I knew which links to click on so it didn't take me very long. I'm surprised by how much less information they manage to show on that page. I get far less of a sense of the project's activity than I do from the lighter-weight Github tool.

Pricing

My engineering director assures me that Atlassian is a lot cheaper and that's why he went with it. That'd be the only reason anybody ever has for choosing it, but for mid-sized engineering organizations it can be a strong argument.

For a company of less than 500 people, Atlassian's pricing looks like this: $12000 + $16000 + $12000 = $40K/yr for the 3 Atlassian products

Github pricing is per seat. For a company the size of mine, with say 50 people needing accounts, it'd be $15K/yr. Over 150 people Github starts looking pretty bad. For many companies, hosting on Github's servers makes more sense, unless you don't want your code living on somebody else's disks.

Summary

Stash is a centralized server for git repos. It adds almost no value to me beyond that. If you want to do something interesting with git, you'll be doing it in the command line or a dedicated git client.

In response to Stash's browsing features, I have beefed up my git aliases considerably, so there's that.

@keiichi-morisato
Copy link

I chose Stash for one single reason: they implement the gitflow model and I can enforce branch-level permissions.

So there is no commit to "development" without approval (code review and sign-off from stake-holders).

Further, we have ops that must sign-off so we can use pull-requests to ensure that everyone on the team is aware of the conversation and approves it.

GitHub is sweet and I tried to get work-arounds for the JIRA integration (we could've lived with this one) but the code-review kept me away. Money wasn't an issue for us.

Personally, I'll use github. But I cannot ignore the benefits Stash offers me over all other Git VCS including TFS.

Hope that helps.

@tmcconechy
Copy link

I like github but our issue was legal. Better to host the source
code onsite (it's commercial software) then get an NDA with github. Wondering experience others have with that?

@airtonix
Copy link

airtonix commented Nov 4, 2014

if you want github privately and cost is an issue, then run gitlab and gitlab_ci

@perrupa
Copy link

perrupa commented Nov 20, 2014

@tmcconechy Github Enterprise lets you host your own. I'm looking into that vs stack at the moment.

Decisions, decisions...

@clsa1
Copy link

clsa1 commented Nov 26, 2014

We have to move our repositories from GitHub to a self hosted Git server. We decided to go with GitHub Enterprise, because we thought we could migrate our repositories more easily than to other servers like Stash or GitLab.
Turns out that we were wrong: only the repositories can be migrated. Everything else either can't be migrated cleanly (open pull request, comments, issues) or not at all (users, closed pull request) .

@jasonborne
Copy link

I have some issues with github:
-> It doesn't support pre-receive hooks (I can't enforce a commit message format and similar other things which I used to do in stash).
-> I am trying to understand how will I be able to disable "pull requests" in github. We are trying to use the rebase workflow and that means using pull requests can be harmful if that isn't a fast forward push.

Does anybody has answers to this questions here ???

@Kazark
Copy link

Kazark commented Feb 18, 2015

Care to show your beefed-up Git aliases? We are implementing Stash.

@daniel-kristjansson
Copy link

Has anyone found a solution for code reviews? We're switching to Stash at my company and it takes me much longer to do a code review because I can only see one file at a time in the Stash diff. It looks like a $10k to $15k productivity loss per developer per year with our PR review based workflow.

@JohnMurray
Copy link

@jasonborne - There is one integration pattern you can look at to enforce these kinda of things with the Commit Status API: https://github.com/blog/1227-commit-status-api

Not sure it's the right thing for what you need, but it's an option.

@mrincodi
Copy link

Thanks a lot for this analysis. Yeah, the differences are stark!

My company is looking into Stash because of the difference in price. Not only is Stash cheaper, but you pay for licenses only once. With GitHub you have to renew the licenses per year. When you have a company of more than 200 employees, that's a lot of money.

Also, there is the issue of the code reviews. Haven't really checked JohnMurray's link, but by a glance it doesn't look like it will prevent commits if they don't have a format or have been reviewed somehow.

@stanio
Copy link

stanio commented Apr 25, 2015

@anderos

@robey one of the facts nobody uses Jira, for private projects like you say, is because afaik there is no free version.

If I'm not mistaken JIRA gained popularity just because they have provided it free for open source projects, like:

@lukelittle
Copy link

JIRA is USD $10 for the first ten users. Hosting it is the only issue.

@mdavoodi
Copy link

I made an editor for stash to try and make it feel more github like. Let me know what you guys think.
https://marketplace.atlassian.com/plugins/com.mohamicorp.stash.plugin.editor-for-stash

@SachinKainth
Copy link

Also, un-deleting deleted branches is not as easy in Stash as it is in GitHub.

@alexeyzimarev
Copy link

Jira integrates properly with Stash. There is no "pricey plug in" involved but just RTFM. You can also create and merge branches for Gitflow directly from Jira.

https://confluence.atlassian.com/stash/jira-integration-278071966.html

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment