GitHub down
github.com
github.com
Regarding the centralized nature of Github: it is the centralized communication that is a problem, not the ability to share code. I can easily send a patch to somebody on my team, but that doesn't help me review a PR, reply to comments, trigger a CI build, or initiate a deploy.
Code sharing is only a small part of what a team relies on Github for.
My current company uses a self-hosted option, so this doesn't affect me. But I can't help but think that this time it's different, and we'd be hosed. The git part would still work without too much hassle, but we are heavily dependent on a bunch of additional things that GitHub offers, such as the pull request interface. That's slightly worrisome, I suppose.
All that said, I want to steer clear of knee-jerk assuming, "We don't have this problem b/c we self-host." There's a sickening sense of not really being in control of your own fate when a cloud provider goes down, but, realistically, I wouldn't be the person in charge of getting one of our self-hosted services back up, either. What really matters is % downtime. My experience has been that, compared to many in-house IT departments, folks like GitHub are generally very good at keeping the lights on.
So if you have a really busy time coming up, you don't deploy the new git update that day, you wait until you would be okay with some downtime.
[1]: https://web.archive.org/web/20170913175053/https://status.gi...
[2]: https://web.archive.org/web/20170913200633/https://status.gi...
Also, "reports of service unavailability"? I would expect monitoring tools to be screaming...
Though if your internal IT team had a VCS outage, it wouldn't be Hacker News news. Really it is just the scope of the outages (and commiseration) that has changed.
b) Outages are inevitable and if you're using a SaaS you get to blame someone else for it (and sometimes it gets resolved quicker)
However I do wonder sometimes, even with the resources and domain knowledge, if the super crazy scale these SaaS companies have to deal with tips the scales to be about the same reliability as a solid internal ops or IT team (who only have to worry about YOUR scale).
The git-dit project (https://github.com/neithernut/git-dit) provides a distributed issue tracking functionality inside git.
It does this without cluttering the repository with unneeded files, gives the possibility for having tree-like conversation (including merging conversations), referencing issues, linking to commits and so on. It is even possible to host the issues in another repository as the code (if that is wanted) or having one repository of issues for several projects / moving issues from one repository to another.
There is only a CLI as of today. I hear that there is some effort on building a (view-only) web frontend for it, though I don't know much about its progress. Maybe asking the maintainer would be an idea.
What's also missing is a way to give users of the tool access to a repository where they can submit issues (which then could also be used by a web/gui frontend for the tool). This is not the domain of git-dit itself, but a solution needs to be found. One idea would be a publish repo (where everyone can push) which automatically does some sanity-verification on the issues and forwards them to the maintainers repository... or something like that. Also integration/mappers to/from other services (gitlab, github) are missing and so is mail->git-dit integration (posting issues from a mailinglist automagically into the issues repository).
Also, https://github.com/vitiral/artifact/ is a really nice tool to do planning of an application or library inside a git repository. I am currently starting using it in imag (https://imag-pim.org) and it is really wonderful. The author currently does a reimplementation of its core functionality to make it even more powerful.
"The status is still red at the beginning of the day"
"The status is still red at the beginning of the day"
Yesterday was the first "normal" day, before this outage.
I've worked on numerous enterprise git servers - they all inevitably go down for at least a half day every 6-9 months.
I don't get it.
...and sure enough, shortly after writing this it was 'down' for 10 minutes and came back up with the status page saying nothing about it.
There's not much that can go wrong on a single instance with a local database. Have a failover in case the HW fails and you are good to go, and it's faster. The pricing is not great, but perhaps that's something GitLab can solve.
But being hip and being lean (even if it costs more) is more important I guess.
It is payware, but reasonably affordable ($10/10 users, usually).
I've seen companies squeeze some (probably contract-breaching) huge numbers of users out of the very small plans of Atlassian software, as well, usually via insane multiple-people-using-same-account editing conventions.
Nope. They're completely separate things.
The hosted one they bought, and does mercurial too.
The self hosted one is what used to be called stash, and is git only afaik.
EDIT: I meant "host", not "hose", but given some of my experience sysadminning Atlassian products, the sentence may still be correct.
This is incorrect. Bitbucket Cloud and Server are two completely separate codebases. On the other hand, GitHub Enterprise is basically a snapshot of the production GitHub application.
"How will the world's hackers react when their source code goes offline? GitHub Down, watch it now!"
What the hell happened to basic risk mitigation? Offsite backups, disaster procedures, etc aren't new, or unexpected. You'd think they should be the norm, if you're a working professional...
Also, it was updated by the time you posted your reply...
As of 7:20AM PST, it's on there. So it took them 4 whole minutes since this thread was created to get it on there. That's pretty good response.
This is why it pays to have your own source repositories in the cloud. It is kind of shocking that many people with the awareness and means are too cheap to pay for a GitHub private repo. I personally could not risk a careless sysadmin deleting my repositories or (in this case) going down for any length of time.
The obvious answer is to have both, but smooth synchronization isn't always easy or even available.
Even if your own solution had better uptime, you still haven't shown that it's worth it. GitHub is far more than just a git repo on a server.
Second, it is completely worth it. GitLab is better than GitHub, so that definitely makes it worth it.
I'm right there with you, but it doesn't make sense for small teams. Once you get past a point, it starts to make sense to self-host some stuff.
Is there a managed hosting provider that would host all this stuff for you? Like, say "I need GitLab, Jira, Active Directory, and X, Y, Z" and they come back with "$XXX/month for 10 users"?
Them going down is still a problem if you're using Github as part of your daily development or deployment process, of course.
I use gh pages for the static parts of my own site even though I have a web server (which I use for quickly sharing files and whatnot) because GitHub is less likely to leave things broken than I am.
(Did I forget any important buzzword?)
Source code is currently unavailable as it is hosted on ... drum roll ... GitHub: https://github.com/axic/mango.
This repository is also available on Mango at mango://{...}Decentralized GitHub would synergistically leverage our existing cloud infrastructure to provide unprecedented collaboration that is open, robust, efficient, and focused.
Nah, but you could always add some Serverless and Lambada to make it more Agile.
Kodak is riding that pony home ... (noting I live in Buffalo, just down the road from Kodak's home turf in Rochester and I'm a pretty avid photographer - http://www.instagram.com/crispyfotos/).
BigDataDeepLearning.
http://git-ssb.celehner.com/%25n92DiQh7ietE%2BR%2BX%2FI403LQ... http://git.scuttlebot.io/%25n92DiQh7ietE%2BR%2BX%2FI403LQoyf... http://localhost:7718/%25n92DiQh7ietE%2BR%2BX%2FI403LQoyf2Dt...
edit:fix links
deep learning? VR? IoT?
Decentralized storage, filesystem and social media seem to be the most valuable use–case for blockchains aside from the inherent value of cryptocurrency.
The goal of the project is to incentivize FOSS development, similar to Bountysource, except without requiring participants to trust a central party. It's pretty cool!
Yes, git still works. But we don't just rely on the features git provides.
I think centralised CI is the real problem. I don't have the compute power in my home to run our full test suite, so I can't push with confidence without my CI cluster.
Unfortunately, no non-cli frontend exists right now (feel free to build one, shouldn't be complicated). Also some convenience is still missing, but could easily be integrated.
What's also missing is a way to give users of the tool access to a repository where they can submit issues (which then could also be used by a web/gui frontend for the tool). This is not the domain of git-dit itself, but a solution needs to be found. One idea would be a publish repo (where everyone can push) which automatically does some sanity-verification on the issues and forwards them to the maintainers repository... or something like that.
Also, https://github.com/vitiral/artifact/ is a really nice tool to do planning of an application or library inside a git repository. I am currently starting using it in iamg (https://imag-pim.org) and it is really wonderful. The author currently does a reimplementation of its core functionality to make it even more powerful.
Issues could live in /issues. Simple command-line (or GUI) tools could edit them. I'm thinking in particular of how password-store[0] makes tracking history in a git repo invisible: it Just Works™.
Discussions could live in /discussions, stored in something like RFC822 format. Again, simple CLI (or GUI, if you swing that way) tools could manipulate this easily.
A wiki can, again, live in the same repo.
PRs are a little different, since they really do need to live outside the repo. But what is a PR other than someone saying, 'hey, please pull my branch into yours'?
You have a `Product` repo and a `Product-meta` repo.
The biggest issue I have with using git as a truly decentralized system is remote management. Unless you want to be manually futzing with remotes on every single client and pushing/fetching from others correctly, you need some kind of central server.
I really think there is a hole here for a product that works with git underneath, but gives a nice easy way to manage all that complexity.
Every now and then I sketch ideas on the subject, but haven't yet gotten someone to pay me to build it. ;)
Drone is very promising but last time I've checked the documentation had some holes in it. The website is "coming soon" and IIRC it's like this for quite a long while.
I'm unaware about any CIs that are usable with local repos. Would be neat to just run a local command and it would spawn a worker somewhere (local or through a remote coordinator) and run the tests on whatever I have in the working tree, just like it happens with centralized repo+CI combos. It's too frequent I find myself doing `git commit -m 'Fix that stupid typo in previous commit'`.
For your local use case GitLab Runner has a local mode exec, although that is currently being reworked https://gitlab.com/gitlab-org/gitlab-runner/issues/2797#note...
Decentralization just doesn't work too well in practice for whatever reason. Everyone is behind a NAT/firewall, everyone has low computing power, its hard to regulate, etc. This all leads to a centralized solution being easier.
I think the current best thing we have is centralized but open source and encrypted, which gets an "okay"/10 from me.
Because it's inconvenient. Centralisation is convenient, it gives a single discovery and synchronisation point. Decentralisation makes discovery much more difficult, and requires adding separate synchronisation mechanisms. It generates friction and cognitive overhead.
Even more so for "side-services". Sure your VCS is nominally decentralised[0], but what about bug reports? Contributions? Notes & docs? There were distributed bug trackers efforts back in the early 10s but… they didn't really work IME, they were not convenient or practical.
[0] though even without a single giant point of failure, most project would still have a single canonical master copy, a really mesh/distributed contribution system is very rare (Linux's tree of integrators/forks is probably the closest?) and none of the current VCS makes mesh/point-to-point collaborations really convenient
Git's got two big features over SVN:
1. Automatic, private, per-user branching. Git's even nice enough to keep the private branches out of the main repository, and lets you pretend to be the authoritative repository without creating a branch if you really want to. This is what clone/push/pull actually does, and it's what a distributed VCS really brings to the table. It lets every dev pretend to be the project manager when they're writing their own code.
2. A much improved merging model. The graph model of git is just much better than the linear model of SVN.
The second one is what people thought they wanted when they started using git. The first one is what they didn't know they wanted before they started using git.
Git gets around the problem of "Well, if we do #1, how do we know which repository is authoritative then?" by saying, "We're not solving that problem. This is an exercise for the users that's easily solved by file permissions." So by refusing to solve that (rather hard) problem, the VCS becomes internally decentralized. That doesn't mean you can't or shouldn't centrally manage your repositories or have an authoritative repository. It's just that git itself doesn't care about knowing which repository is authoritative.
The point of git is that everyone can keep working right now and can push later without things getting very messy.
edit: Oh jesus christ, there's a fucking tech company called Square Wheel. Kill me now.
I can’t push changes to the decentralized Git protocol, only to a (centralized) server instance.
If you want issues, CI etc... Then you need a local version of github which you will pay for.
I think it'd be fairly straightforward for github or a competitor to store those things in git as plain markdown files, either alongside the main source code, or (as it does with GH Pages) in a separate branch (that has nothing in common with the master branch but it's still in the same repo).
Similar (maybe) is ADR (http://thinkrelevance.com/blog/2011/11/15/documenting-archit...), storing architectural decisions into numbered files in git. See also: https://github.com/npryce/adr-tools
Edit: Nvm, found out Gitlab has the mirroring feature (https://docs.gitlab.com/ee/workflow/repository_mirroring.htm...). Pretty cool!
people who use Github will already know.