[fpc-devel] 134 open merge requests - is that normal?

Marco van de Voort fpc at pascalprogramming.org
Tue Apr 7 12:41:43 CEST 2026


Op 7-4-2026 om 11:01 schreef Martin Frb via fpc-devel:
>
> First of all, I have no insight on the workflows of the FPC team... 
> But, IMHO with git, this should (have) become easier.
>
> Of course, not on its own.
> And certainly not **IF** the merging is done by a small group (subset 
> of the team).

For me it is about the same, if you don't count that merge tracking was 
not out of the box, but crafted by Florian with scripts and a 
requirement to merge with -x.  That took over an year to gestate, and 
has been down for periods.  Still, it is workable. I still have to build 
a filter for the fpcbuild repo, something I planned for the coming 
weeks, now that I have more time again.

As far as merging goes I'm not as versed in solving if something goes 
wrong with GIT as with SVN, so I shy away from the larger merges, but 
that will improve a bit with time, with some unresolved cases remaining 
(GIT can simply go wrong more easily and is more complicated in general)

But I currently can't branch a release branch from fixes and maintain it 
while last minute fixes are delivered. Same but worse for creating a new 
fixes branch. That's why I stopped being release manager in 2020, and it 
is still true.

> But, with git everybody should become part of it. Ok, well not 
> everybody will feel comfortable enough, but that is solvable, if at 
> least half of the team has the "git knowledge" (and willingness).
>
> Everyone should make a **pre**-selection of their own commits in terms 
> of merge or not. 

Yes. But that could have been done both with past SVN or current 
git-with-patchy mergetracking. It simply doesn't happen.

That is the whole problem with all these fantasies (the git migration 
inclusive), they paint an ideal sunny upland, and then try to simplify 
the whole issue to "if we just cross this bridge, the problems will be 
gone away". But the devil is in the details, and it is usually the human 
factor. The big changes are only goal posts to nail policy too, they 
don't solve anything in itself.

To be fair: merging in the compiler is harder than what I do , since 
things are more interconnected there.

> That hardly takes time. And (very most likely) whatever current system 
> is in place, can run from that pre-selection, with heavily reduced 
> amount of work. (and less merge conflicts).

That's what I still do occasionally, merge a large section of the non 
compiler revisions in order. Currently around a x.y.4 point that gets a 
bit harder, and certain categories are not merged at all.

In the past it was mostly intertwinement of must have new mysql 
connectors with fcl-db restructures.   In this cycle I ignore nearly 
everything "web" related categories (fcl-web/js/json, fcl-passrc(due to 
pas2js) and many, many more packages that I hardly know) because the 
very high number of intertwined revisions, and a lack of overview of the 
status of these packages. I assume only Mattias and Michael know 
anything about them.

> That may be to late for the current branches. But for going forward 
> there would be ways. 

Yes. And it happens. Sven, FPK and Jonas all merge some of their revs. 
But at a very, very low rate, and mostly really short revs only.  I 
think only Pierre might fit the description better.

>> Florian already mentioned the submodule problems.
>
> Leaves the question why they are not re-organized.

Because we were told that git solves all problems and can do everything 
(;-)).  It was all so simple and modern, and contributors would 
magically appear from all corners of the internet, and pink unicorns 
would run through its streets and fart perfect code. (ok, I made that 
last bit up)

However during the year before the migration very few of the identified 
problems were solved, except merging pre SVN era history to form a 
large, mostly continuous history.

Submodules, merge-tracking, nothing was ready when the transition was 
forced through, and at a very late point (when migration to GIT changed 
to migration to gitlab, the bugtracker was also thrown under a bus).

A workaround solution for merge tracking took another 1 1/2 year. GItlab 
only allows to save views on the bugtracker for a few months now.

Merge requests, that were hailed as the magic bullet that would speed up 
the pace of development.

Well, merge requests is  the original subject of this thread. One can 
argue if they are a netto plus or not, but there are downsides too (it 
allows users to submit more code at once and without prior communication 
to core about formatting and other decisions), and in any case they are 
not the game changer they were hailed to be.

(I think they are a netto plus, but a rather small one)

I assume that some changes were also postponed to the next release round 
(i.e. pacing the gitlab changes), not realising the gap that would 
build. The same happened with the SVN migration.

> Except for some historical svn order, I never understood why FPC-Build 
> is the top level, and fpc-source is a sub-module within.

fpcsrc is roughly the shipped source archive, fpcbuild is everything 
else + the other submodules like documentation.

But fpcsrc and fpcbuild both need to be mergetracked. Documentation 
afaik isn't,.

Maybe some of the decisions were also influenced by gitlab limits on the 
number of repos if you didn't get the open source status.

> **For an outside observer**, everything says that (if using 
> submodules) then fpc-source should be the main repo, and fpc-build 
> should be a submodule. Yes, I can see that the dependency can be 
> argued either way... Anyway that isn't my call to make... 

See above, things were rushed through, and all details were deemed 
solvable with git(lab). Any opposition was ridiculed as the way of dinosaur.

Anyway, if we reverse the order, then if I understand everything 
correctly  we would have the robo commits to advance the fpcbuild 
submodule link in the fpc/ repo ? No thanks!

If I understand the problem laid out by Florian correctly, a sane 
solution would be more to have a new root repo that only has submodules. 
(fpcbuild , fpdoc, fpcsrc). Then the history of that repo doesn't matter.

But that would require some makefile and scripting rework in fpcbuild to 
handle the change directories.




More information about the fpc-devel mailing list