Most active commenters
  • SCdF(4)
  • flohofwoe(4)
  • int_19h(3)

←back to thread

848 points thefilmore | 53 comments | | HN request time: 1.394s | source | bottom
1. SCdF ◴[] No.43970018[source]
I get what you're saying, but tbf hosting on github doesn't (yet!) box you out of just moving back to that system. It's still just git. It's still distributed, in the sense that if github goes down you could still generate patches and email them around, and then push back to github when it's back.

Everything surrounding code: issues, CICD, etc, is obviously another story. But it's not a story that is answered by distributed git either. (though I would love a good issue tracking system that is done entirely inside git)

replies(9): >>43970039 #>>43970120 #>>43970143 #>>43970151 #>>43970180 #>>43970299 #>>43970301 #>>43970480 #>>43970514 #
2. littlestymaar ◴[] No.43970039[source]
> Everything surrounding code: issues, CICD, etc, is obviously another story

That's what Github is though, it's not about the code itself it's about all your project management being on Github, and once you move it, moving out isn't realistic.

replies(6): >>43970041 #>>43970050 #>>43970059 #>>43970073 #>>43970450 #>>43970597 #
3. xboxnolifes ◴[] No.43970041[source]
Sure, but then we are no longer talking about git.
4. enos_feedler ◴[] No.43970050[source]
And how are we suppose to solve this problem? By creating distributed versions of every possible component of every piece of software? Seems unrealistic. I think we should be grateful that the core underlying protocol for the most important data has the distributed properties we want. It's a lot more than we can say vs. lots of other platforms out there.
replies(3): >>43970087 #>>43970202 #>>43971124 #
5. SCdF ◴[] No.43970059[source]
Right, but distributed git As Torvalds Intended™ doesn't solve those problems, so it's not related.

For the actual event we are commenting on, they have disabled all features other than code hosting and PRs.

replies(1): >>43970118 #
6. tigroferoce ◴[] No.43970073[source]
GitHub is about the community. There are others alternatives, more in line with what Mozilla claim to be their view (I'm thinking to GitLab, for instance), but nothing gives you visibility like GitHub.

Sad to see that Mozilla is becoming less and less what they promised to be once Google funding are depleting.

7. groestl ◴[] No.43970087{3}[source]
> And how are we suppose to solve this problem? By creating distributed versions of every possible component of every piece of software? Seems unrealistic.

That's how we started out.

replies(1): >>43970252 #
8. Flimm ◴[] No.43970118{3}[source]
It's impossible to disable PRs on GitHub, sadly. See https://github.com/dear-github/dear-github/issues/84
replies(1): >>43970714 #
9. sublinear ◴[] No.43970120[source]
IIRC Phabricator stored most of it's metadata in git-notes. In theory we could have been making tools compatible with such a format all this time.
10. sshine ◴[] No.43970143[source]
> if github goes down you could still generate patches and email them around, and then push back to github when it's back.

You could, but generally people can’t. They learn a set of narrow workflows and never explore beyond. GitHub use translates into GitLab use, but not into general git use workout a central repository.

> Everything surrounding code: issues, CICD, etc, is obviously another story. But it's not a story that is answered by distributed git either. (though I would love a good issue tracking system that is done entirely inside git)

Radicle offers one. CLI-based, too.

replies(4): >>43970191 #>>43970214 #>>43970429 #>>43970525 #
11. account-5 ◴[] No.43970151[source]
This is why I like fossil, it comes with most of the stuff I use built in, and you can deploy it as a website too. Use it for all of my personal projects and used it extensively for coursework at university.
replies(1): >>43971110 #
12. frizlab ◴[] No.43970180[source]
Like fossil?
replies(1): >>43970516 #
13. lucianbr ◴[] No.43970191[source]
People could learn, if there was suddenly a need. Just like they learned the narrow workflows they use now.
14. hnlmorg ◴[] No.43970202{3}[source]
As a GitHub user myself, I don’t disagree with your point. However I’d like to say that this isn’t quiet as different a problem to solve as it might first appear:

The issue tracking can be a branch and then you just need a compatible UI. In fact some git front ends do exactly this.

CI/CD does already exist in git via githooks. And you’re already better off using make/just/yarn/whatever for your scripts and rely as little on YAML as possible. It’s just a pity that githooks require users to set up each time so many people simply don’t bother.

15. flohofwoe ◴[] No.43970214[source]
> They learn a set of narrow workflows and never explore beyond.

And tbh, that's how it should be for a version control system. Before git with its byzantine workflows and a thousand ways to do the same thing, version control (e.g. svn) was a thing that's just humming along invisibly in the background, something that you never had to 'learn' or even think about, much like the filesystem.

I don't need to know how a filesystem works internally to be able to use it.

And having a centralized store and history helps a lot to keep a version control system conceptually simple.

replies(5): >>43970218 #>>43970262 #>>43970270 #>>43970425 #>>43970565 #
16. AStonesThrow ◴[] No.43970218{3}[source]
https://m.xkcd.com/1597/
17. baq ◴[] No.43970252{4}[source]
Maybe that's the reason everything tends to get centralized.
replies(1): >>43971381 #
18. baq ◴[] No.43970262{3}[source]
svn was not 'humming' unless you confined yourself to a very narrow set of functionality, e.g. merging was best left to experts.
replies(1): >>43970323 #
19. writebetterc ◴[] No.43970270{3}[source]
You don't need to learn how git works internally to be able to use it. You need to know a lot about filesystems in order to use them: Folders, files, symbolic links, copy, cut, paste, how folders can exist on different devices, etc. There's just a tonne of assumed knowledge regarding them, and it's very obvious when you meet someone that doesn't have it (regular people often don't have all it).

Subversion also isn't some thing humming along invisibly in the background, it has its own quirks that you need to learn or you'll get stung.

20. dijit ◴[] No.43970299[source]
> Everything surrounding code: issues, CICD, etc, is obviously another story. But it's not a story that is answered by distributed git either. (though I would love a good issue tracking system that is done entirely inside git)

Embrace, Extend..

(largely this is unfair, as plain git leaves much to be desired- but you can’t deny that the things surrounding git on github are very sticky).

replies(2): >>43970365 #>>43970648 #
21. rablackburn ◴[] No.43970301[source]
>> I would love a good issue tracking system that is done entirely inside git

You might like git-bug:

https://github.com/git-bug/git-bug

replies(1): >>43971681 #
22. flohofwoe ◴[] No.43970323{4}[source]
In a centralized version control system with a single history, branching and merging is also much less important.

In git, working on your own branch is essential to not step on other people's feet and to get a clean history on a single main/dev branch (and tbf, git makes this easy for devs and text files). With a centralized version control system, both problems don't even exist in the first place.

When we did game development with a team of about 100 peeps (about 80 of those non-devs, and about 99% of the data under version control being in binary files) we had a very simple rule:

(1) do an update in the morning when you come to work, and (2) in the evening before you leave do a commit.

Everybody was working on the main branch all the time. The only times this broke was when the SVN server in the corner was running full and we either had to delete chunks of history (also very simple with svn), or get more memory and a bigger hard drive for the server.

23. wordofx ◴[] No.43970365[source]
Build a bridge and…
24. vishnugupta ◴[] No.43970425{3}[source]
svn was a nightmare when it came to handling conflicts. So at least for me, humming in the background wasn’t the term used for it at work.
replies(1): >>43970929 #
25. arp242 ◴[] No.43970429[source]
"I only accept patches and bug reports over email" is just as much of a narrow set of workflows as "I only accept patches and bug reports through PRs".
26. arp242 ◴[] No.43970450[source]
GitHub has a fairly extensive API without too many limits AFAIK. You can definitely migrate all your data to $something_else if you want to.
27. Sander_Marechal ◴[] No.43970480[source]
Gitlab is working on using ActivityPub for interoperability between instances. See: https://handbook.gitlab.com/handbook/engineering/architectur...
28. nextaccountic ◴[] No.43970514[source]
Unfortunately the project is not just code. It also has issues, PRs and other stuff. Github has two kinds of lock in, a) your stuff is there and if you move elsewhere you probably will wipe your issues etc (huge loss of institutional knowledge), and b) there is a network effect because everyone has a github account and people are used to just hop on a repository and file an issue (rather than being greeted by a log in page), cross-reference issues between repositories (hard to make work if repos aren't in the same site, unless both sites use some interop thing like activitypub which github will never use), etc

> Everything surrounding code: issues, CICD, etc, is obviously another story. But it's not a story that is answered by distributed git either. (though I would love a good issue tracking system that is done entirely inside git)

There is https://github.com/git-bug/git-bug - would love if people started o use it, even in a read only way: use github issues normally, but also have a bot that saves all coments to git-bug, so that i can read issues without an internet connection. Then, at a later date, make it so that people that make issues on git-bug also gets the issue posted on github, making a two way bridge.

Then, optionally, at a later stage when almost everyone migrated to git-bug, make the github issues a read only mirror of the git-bug issues. Probably not worth it: you lose drive-by comments from newcomers (that already have a github account but probably never heard of git-bug), raising the friction to report bugs

replies(3): >>43970562 #>>43970653 #>>43970726 #
29. kaichanvong ◴[] No.43970516[source]
while --it-is possible seeing how fossil confuses, for the Github conversation, it's not really in the same category, conversation, some clever happenings happening within fossil-scm, however, it's not really the same as the problem design-led github solves given people saying downtimes; sure, git, github; however how people using github, different–similar, git, however, github.

However, were you to say liken-able (slang keywords: comparative something else--) of, "fossil with git-github", then again: no.

Good call were the conversation (comments, almost interchangeable at-times haha!) being, everyone use git for Firefox, something kinda wild-topic!

replies(1): >>43973099 #
30. laserbeam ◴[] No.43970525[source]
> You could, but generally people can’t. They learn a set of narrow workflows and never explore beyond.

The point is you CAN. Joe can in theory do it, and Steve can make an alternative piece of software to do it for Joe. In most other centralized places (like social media), you CANNOT. Joe cannot take his data off of Facebook and interact with it outside of the platform or move it to another platform.

31. SCdF ◴[] No.43970562[source]
> Unfortunately the project is not just code.

The literal project we are discussing is just code. It's literally just code. It doesn't have issues, PRs are disabled as much as they can be (by a GitHub action that automatically closes all PRs with a note that code should be submitted elsewhere), and all "other stuff" is disabled.

https://github.com/mozilla-firefox/firefox

replies(2): >>43970638 #>>43980206 #
32. guappa ◴[] No.43970565{3}[source]
Have you ever actually used svn?
replies(1): >>43970815 #
33. LtWorf ◴[] No.43970597[source]
I managed to move to codeberg all my projects. There's everything except the secret deals with pypi to directly publish from github. Which is massively insecure anyway.
34. elAhmo ◴[] No.43970638{3}[source]
What you are referring to is more of a mirror-like approach usage of GitHub.

Some big repos or organizations might be able to pull this off, but good luck having a small project and then directing users to go through all of those hoops to submit issues somewhere else, open PRs somewhere else, etc.

35. blueflow ◴[] No.43970648[source]
Lets pray that Microsoft won't use Github to find new ways to extract money.
36. mkingston ◴[] No.43970653[source]
I was reading the git-bug documentation and found "bridges" to third-party platforms:

https://github.com/git-bug/git-bug/blob/master/doc/usage/thi...

I have not tried it.

37. SCdF ◴[] No.43970714{4}[source]
Interestingly mozilla has effectively done this here, by using a GitHub action that automatically closes any PR with a message explaining that PRs are not to be used.

It's very silly they have to do this, but at least they can I suppose.

38. aktau ◴[] No.43970726[source]
This is one area where Gerrit Code Review is (was? I don't know if it changed) is superior. It stores everything it knows about in git repositories (preferences in a separate meta git repository, comments, patches). With the right refspec, you can pull it all down and have a full backup.
39. flohofwoe ◴[] No.43970815{4}[source]
Yes for about 18 years(?) in the context of game development (I don't exactly remember when we had switched from cvs to svn, but it must have been around 2003..2005) in teams up to about 100 people, working copy sizes up to about 150 GB (with most of the data being binary game asset files), and everybody working on trunk (we only used branches for releases which were branched off trunk but never merged back, only cherry-picking bugfixes from the main into release branches as needed).

We used TortoiseSVN as UI which worked well both for devs and non-devs.

With this sort of setup, git would break down completely if it weren't for awkward hacks like git-lfs (which comes with its own share of problems).

replies(1): >>43978342 #
40. flohofwoe ◴[] No.43970929{4}[source]
This was only for true before svn 1.5 (before it had 'merge tracking'). Also, branching and merging by far wasn't as essential in svn as it is in a decentralized version control system like git. In a centralized version control system it works perfectly well to do all development in the main branch, and only branch off dead-end 'release branches' which are never merged back.

Tbh, I really wonder where the bad reputation of svn is coming from. Git does some things better, especially for 'programmer-centric teams'. But it also does many things worse, especially in projects where the majority of data is large binary files (like in game development) - and it's not like git is any good either when it comes to merging binary data.

41. int_19h ◴[] No.43971110[source]
The annoying thing about Fossil is that it doesn't let you squash commits, not even in your private branches - they have some kind of philosophical point about that.

If you happen to agree with it, then yeah, it's great. If you like to commit quick and dirty and then tidy it up by squashing into logically complete and self-consistent commits, too bad.

replies(1): >>43971495 #
42. int_19h ◴[] No.43971124{3}[source]
By storing issues etc in the repo itself. A git repo is just a generic object graph, after all, and objects don't necessarily describe files.

There are several such solutions already. The problem is that neither of them is popular enough to become a de facto standard. And, of course, centralized git providers like GitHub have a vested interest in keeping in this way, so they are unlikely to support any such solution even if it does become popular enough.

replies(1): >>43978369 #
43. groestl ◴[] No.43971381{5}[source]
It's an emergent phenomenon, it requires less energy expenditure overall. It's also the way of the Dodo.
44. account-5 ◴[] No.43971495{3}[source]
I can certainly see the appeal of having neat commits but I tend not to worry about them. On a couple of occasions, with my university writing, having a immutable history helped me figure out, for example, how something had ended up in a final draft without citation. I'd deleted the citation which was a quick URL paste in a comment block in an earlier draft, and I'd never saved it to zotero. If I'd been able to tidy up my commits I'd likely have lost it completely.
replies(1): >>43971657 #
45. int_19h ◴[] No.43971657{4}[source]
The appeal depends on how messy your commits are to begin with. When you know that commit history can be rewritten later, it suddenly becomes okay to commit incomplete code that doesn't properly run or even build, effectively using git as an undo system with branching. But the resulting history is completely unsuitable for any future attempt to use `git blame` and such.
46. sublinear ◴[] No.43971681[source]
Why bury this in the documentation if it's the sole feature its users would care about? https://github.com/git-bug/git-bug/blob/master/doc/design/da...

This should be one of the very first links in the readme.

replies(2): >>43980638 #>>43980718 #
47. frizlab ◴[] No.43973099{3}[source]
I don’t get any of that. I tried, but no, it just makes no sense.
replies(1): >>43974827 #
48. kaichanvong ◴[] No.43974827{4}[source]
;( I feel for you, hopefully–you can get more out from things in the future.
49. nsagent ◴[] No.43978342{5}[source]
Interesting. At game companies I worked at we generally used version control solutions that easily allowed storing code and assets together, such as Perforce and Alienbrain.
50. enos_feedler ◴[] No.43978369{4}[source]
Wouldn’t it make economic sense for a git host to emerge that just did things this way and collect big pay for it? Gits been around forever and you’re idea sounds simple enough that a market of people would probably choose it on principle. There must be something more fundamental at play here.
51. nextaccountic ◴[] No.43980206{3}[source]
This mirror is just code, but Firefox has issues. They are just stored elsewhere (bugzilla)
52. rablackburn ◴[] No.43980638{3}[source]
>> ...if it's the sole feature its users would care about?

The tag-line covers it pretty well I thought?

"git-bug is a standalone, distributed, offline-first issue management tool that embeds issues, comments, and more as objects in a git repository (not files!), enabling you to push and pull them to one or more remotes."

That tells you what the feature is - if you need/want a more technical overview you can still get from the `README` to `entity data model` in two clicks (Documentation > Data model).

53. sudoforge ◴[] No.43980718{3}[source]
hey there! i maintain git-bug, and recently trimmed down the README, which was, in my opinion, a bit too dense prior to this recent change (https://github.com/git-bug/git-bug/commit/96c7a111a3cb075b5c...).

i rewrote the README with the goal of providing a clear overview of git-bug's features, and why you might want to use it, and ensuring that for those who are more technically inclined, things like the data model, internal architecture, and more were easy to find under the documentation folder (whether you're browsing through the files directly, or landing on //doc:README.md, which links to the files and folders under //doc.

if you think that there is information missing from the README, or hard to find in the repository (either by browsing through it, or clicking the rather prominent links from the main README), i'd welcome any suggestions in the form of a PR.