Live data from Hacker News

Git without a forge

chiark.greenend.org.uk

11–20 of 164 posts

Re: Git without a forge

#11
post #7

> In particular, your project automatically gets a bug tracker – and you don’t get a choice about what bug tracker to use, or what it looks like. If you use Gitlab, you’re using the Gitlab bug tracker. The same goes for the pull request / merge request system. With Forgejo (Codeberg) you can toggle features such as pull requests, issues, etc. You can also configure any external issue tracker or wiki apparently, thoug…

Forgejo (once federation is implemented) also fixes the main issue of forcing people to have an account at every forge.

Re: Git without a forge

#12
as someone who finds the whole forge interface a massive improvement in git collaboration workflow I was fully prepared to find the author's arguments against a lightweight self hosted forge unconvincing. but the "need to create an account" is an extremely valid drawback, and one I do not have a good answer to.

Re: Git without a forge

#13
I very much support this sentiment! If we want a decentralized internet, we need to stop relying on large companies to manage everything for us. Git was designed to be a p2p system, but we very quickly centralized it with forges like Github. It is very discouraging. Most of the internet is like this now--managed by a handful of very powerful organizations. There is no end to the problems this will cause.

Re: Git without a forge

#14

》The simplest kind of git bundle – a full bundle – is a whole git repository, wrapped up into a single file. Git repo can have executable code! Git hooks are shell commands stored in dir ".git/hooks" executed on events such as merge, commit... That is not duplicated by git clone, I am not sure about bundles. But I would be VERY careful to accept something like compressed git repo from anyone!

Bundles only include things that can be in the pack files: the git objects `git clone` would pull.

Re: Git without a forge

#15

》The simplest kind of git bundle – a full bundle – is a whole git repository, wrapped up into a single file. Git repo can have executable code! Git hooks are shell commands stored in dir ".git/hooks" executed on events such as merge, commit... That is not duplicated by git clone, I am not sure about bundles. But I would be VERY careful to accept something like compressed git repo from anyone!

As you said, git clone wont copy it, and you don't get a zip of a repo, you get a remote that you can clone/ pull from.

Re: Git without a forge

#16
post #6

> Sometimes people just can’t work out how to send me patches at all. Yeah indeed. I have written but not submitted patches to a project (OpenSBI) because it made the submission process super complicated, requiring signing up to a mailing list, learning how to set up git send-email. I don't see how he can think creating a GitHub account (which almost everyone already has) is a big barrier when he freely admits his pr…

I submitted at least one patch to putty some time ago and it was such a nothingburger I don't even remember what it took. Somehow it neither baffled nor infuriated nor even annoyed me a little.

All these complaints and critiques sound like so much baby crying over nothing to me.

Re: Git without a forge

#17
> People can ‘git clone’ my code, and there’s a web-based browsing interface (the basic gitweb) for looking around without having to clone it at all.

I host my own public Git repositories, but statically--read-only, no HTML views. I don't want to run any specialized server-side code, whether dynamic or preprocessed, as that's a security vector and system administration maintenance headache I don't want to deal with. You can host a Git repository as a set of static files using any web server, without any special configuration. Just clone a bare repo into an existing visible directory. `git update-server-info` generates the necessary index files for `git clone https://...` to work transparently. I add a post-receive hook to my read-write Git repositories that does `cd /path/to/mirror.git && git fetch && git --bare update-server-info` to keep the public repo updated.

In theory something like gitweb could be implemented purely client-side, using JavaScript or WASM to fetch the Git indices and packs on-demand and generate the HTML views. Some day I'd like to give that a try if someone doesn't beat me to it. You could even serve it as index.html from the Git repository directory, so the browser app and the Git clone URL are identical.

Re: Git without a forge

#18
I was expecting the justification to be a stodgy get of my lawn rant.

But the author does a very good and reasonable job of explaining it.

It didn't convince me to do the same thing, but I can't help but nod along to the even-handed pros and cons that he lays out.

Re: Git without a forge

#19
post #17

> People can ‘git clone’ my code, and there’s a web-based browsing interface (the basic gitweb) for looking around without having to clone it at all. I host my own public Git repositories, but statically--read-only, no HTML views. I don't want to run any specialized server-side code, whether dynamic or preprocessed, as that's a security vector and system administration maintenance headache I don't want to deal with.…

I haven't looked into mich details of gibt's packing, but for a big repo you probably don't want a client to download it all nor do a huge amount of http range requests for being able to show the summary page. You think that would work well or would this need at least some caching layer?

Re: Git without a forge

#20
post #6

> Sometimes people just can’t work out how to send me patches at all. Yeah indeed. I have written but not submitted patches to a project (OpenSBI) because it made the submission process super complicated, requiring signing up to a mailing list, learning how to set up git send-email. I don't see how he can think creating a GitHub account (which almost everyone already has) is a big barrier when he freely admits his pr…

>when he freely admits his process is incomprehensible.

Which one of the 4 preferred processes, not including the maligned git send-email, and infinite other accepted processes?

Post reply on HN