TPF Grant Progress Report: October 2013
This past May, The Perl Foundation awarded a grant to fund development of a couple features in Pinto. Pinto is a robust tool for curating a private repository of CPAN modules, so you can build your application with the right modules every time. This is my second progress report on that work.
The next deliverable on the grant proposal is a
merge command. The idea here is to merge the indexes of two stacks, much the same way that you merge two branches of source code. This would allow you to create a separate stack for experimenting with additional or upgraded modules, and then incorporate those modules into the master stack once they have been tested and blessed.
I have completed a prototype that handles simple cases when the head revision of stack is a direct descendant of the head revision of the target stack (this is what Git calls a "fast-forward" merge). However the more complex case is when the two stacks have both diverged from the initial branch point. The stack is basically an unordered list, so merging them is not quite the same as merging lines of source code.
There has been a lot of discussion about how this should work on Github. You're cordially invited to give your opinion over there. I'm hopeful that we can come up with a "smart merge" that is specific to the task of managing Perl modules.