Experiences with self-hosted git servers

Adriaan de Groot adridg at freebsd.org
Tue Feb 4 15:37:38 UTC 2020


On Tuesday, 4 February 2020 15:37:57 CET Ed Maste wrote:
> There are a number of options for self-hosting, such as Gitea, GitLab,
> as well as git's plain built-in server. Phabricator (which we use for
> code reviews) also includes a repository hosting module named
> Diffusion.
> 
> I am interested in hearing from FreeBSD users and developers who have
> used one or more of these, or other Git hosting tools - what worked
> well, what didn't? What do you wish you had known before getting
> started?

With my KDE hat on (yet my FreeBSD mail address): talk to KDE sysadmin (part 
of whom I'm BCCing).

We migrated from SVN to git a few years ago, and first did cgit (that's git's 
internal server, I think) plus reviewboard; then cgit plus phabricator; now 
we're migrating to GitLab and dropping cgit and phabricator. That last 
migration is taking a while.

KDE differs from FreeBSD in that we have about 300 repositories (one for each 
bit of KDE software) rather than a small number of really big repo's (e.g. 
src, ports). There is a vaguely similar mechanism of "joining the project" and 
code-review is generally enforced by social contract, like in FreeBSD ports.

GitLab is generally pretty responsive in working with larger Free Software 
projects; it is used by KDE and Gnome in that way, who have their self-hosted 
Community Edition GitLabs to work with, more-or-less integrated with their own 
identity provider systems. Having a web-based workflow, that also supports 
drive-by-contributions, is seen as a bonus over plain git + phab. Especially 
Phabricator seems to be a drag on potential-new-contributors (and I'm not sure 
if it's developed anymore, which is one of the reasons KDE is switching away 
from it).

Mainly for the move to GitLab:

 - figure out what role issues will play; are those for reviews? Developer 
planning? bug reports? How do they align with Bugzilla use?
 - figure out a branching strategy; what kind of private branches do you want? 
where are force-pushes allowed (eg. when rebasing or re-doing a patchset)? 
squash or maintain development history? commit to master only?
 - think about a labels- and tags-scheme;

[ade]
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.freebsd.org/pipermail/freebsd-git/attachments/20200204/2f733c02/attachment.sig>


More information about the freebsd-git mailing list