Hmm, bad new. Seems I cannot rebase any more.
This is, I must say, not particularly surprising to me, I have seen it before. I am getting a lot of conflicts like this -
CONFLICT (rename/delete): examples/testall.pp deleted in Examples tested, categorised, metadata added, restructured and renamed to components/codetools/codetools.inc in HEAD. Version HEAD of components/codetools/codetools.inc left in tree.
CONFLICT (rename/delete): examples/helloform.pp deleted in Examples tested, categorised, metadata added, restructured and renamed to doceditor/frmabout.pp in HEAD. Version HEAD of doceditor/frmabout.pp left in tree.
("Examples tested, categorised, metadata added, restructured" is the name of the commit. Git has spotted a file being deleted (or moved) and has searched around for its "replacement", in this case, there is none).
Most are non plain text files, harder to auto merge I expect. But harder to manually edit out the merge messages too, try it with an icon or .res file !
The issue is that there are simply too many edits in there, its too much for one rebase on top of another to handle. I am not sure if its a stack type problem, seems that git is guessing and realizes its guessing wrongly. Notice how it seems to have searched the whole source tree for what might be a replacement for the file its deleting ? While I admire its persistence, its all wrong !
There is absolutely no way we can risk sending official lazarus a merge request based on this current code base.
I believe that we must revert to my first suggestion, break it up into several, smaller merges -
1. Contents of ~/examples. This by far the biggest change and the one that is triggering the rebase problem. And, its totally non controversial. What I have done there is still usable with existing system and if my plans are rejected, all that needs happen is removal of a hundred or so metadata files. The restructure, fix ups and removal of irrelevant examples is a good thing in any case.
2. Add the new package into ~/components - again, does no harm, easily removed if someone decides its a bad thing. It does not stop the existing one working, it allows someone to choose to install the package and see it all work along side the existing Examples Manager.
3. Finally, the potentially destructive bit. Changes to a number of core files in ~/ide, mostly the removal of the existing Examples Manager.
4. Adding metadata files to all of the examples in other parts of the source tree. I have not yet started on this stage.
I can very easily recover the files needed to do step one and two. It may be possible to recover already edited files from step three (or manually reedit may be safer). No point in starting that if stage one and stage two have not been accepted into the official main. Too much chance of this happening again and my time and effort does need to be assigned some value.
I will have to take it out of the git environment, create a lazarus fork, make a new tree, move my stage one and two file in.
Davo
David