After having consulted How to merge library including lib and mod files, I’m still worrying about how to merge new or modified symbols into the current state of the git master branch.
Use case: Modifications and new symbols are created around early 5.x series, in an own branch of “at that time” git repository state. Current state (after a year of no kicad work): Kicad 5.1.7 and current git master library state (I did not “install” library packages). Symbol & footprint repositories are stored in /home/kicad/ (and also a user & group “kicad” is present to facilitate more than one workstation user).
I encounter severe difficulties of doing so via git rebase, and fixing the merge problems manually is a job that requires quite some consciousness and time… - especially if the common ancestor shows a library version 2.3, while both current git master & own branch show 2.4 upon the file start.
Hence I’m considering an alternative approach: Doing it via symbol copy using the symbol editor. But then I need a copy of the whole library in current master as well as my older branch state and have all of them accessible within the same symbol editor session. This would make sense especially for transferring modified components: Simple visual comparison is possible (of course at best with two instances of the symbol editor active).
The problem with this approach is the global sym-lib-table. I’d need an extra project specific sym-lib-table that adds the state of the own git branch.
In the end it seems to make more sense to copy all my modified and new components into a temporary symbol library file (referred to in the local project sym-lib-table) and then exit the symbol editor, switch to git master branch, start symbol editor again and then take care of transferring each symbol of the temporary library file.
Any suggestions resp. ideas about strategies?
And does the python utils package (schlib) offer support for this sort of work?
Note: the “current” (e.g. 5.1.7 lib) global sym-lib-table may differ from earlier sym-lib-table because of changes in library file names or deletions or added stuff. This may complicate merge matters…