[fpc-devel] FreePascal Git Repo and 2_6 branch

Marco van de Voort marcov at stack.nl
Sat Apr 28 19:57:06 CEST 2012

In our previous episode, Graeme Geldenhuys said:
> To do it the "correct way", is a lot of work, hence the reason I
> stopped mirroring the fixes branches. What I mean by "correct way", is
> cherry-picking the commits from Trunk (master) and applying them in
> the fixes branch - thus it is one standard git repository (with
> alternate branches), is more efficient for git to work with, and uses
> less disk space.  But the problem is, it can't be automated (I need to
> manually track what commits are merged by FPC developers, manually fix
> conflicts etc) and my free time is very limited.

I can try to create some form of automated feed of fixes tree commits +
items that are merged.

So assume fixes branch rev X merges revision T1,T2,T3 from trunk.

You then roughly would do

 for X in all fixes revs to process since last processing do
     svn diff fixes branch X-1,X > temp.patch
     cherry pick from git trunk to git fixes revs  (e.g. T1 T2 T3)
     git revert all changes to files but not mergeinfo (resolves all conflicts)
     patch -p0 < temp.patch    ( applies the manually merged fixes)
     git push/commit whatever

An innerloop for T1,T2,T3 separately is unfortunately not possible (since
manual fixes up might apply to all revs at once)

I'm not saying that I will have such info next week, but if you could test
if you could get such scenario done with GIT, I can see if I drag such info
out of the mergelog package in time.  (which I'm still expanding)

I doubt it is the same as truly working through GIT (I'm not sure if
tracking of line changesets works even if you could all T<x> individually),
it might be already better since it is automated and has GIT level info per
fixes rev what revs were merged from trunk.

It assumes GIT can deal with mergeinfo a bit creatively and flexible though.

More information about the fpc-devel mailing list