Resuming work on Extensions, first little step
Yeah I’m back on working on my part of the extension thing in PostgreSQL.
First step is a little one, but as it has public consequences, I figured I’d
talk about it already. I’ve just refreshed my
git
repository to follow the
new
master
one, and you can see that here
http://git.postgresql.org/gitweb?p=postgresql-extension.git;a=commitdiff;h=9a88e9de246218e93c04b6b97e1ef61d97925430.
It’s been easier than I feared, mainly:
$ git --no-pager diff master..extension
$ git --no-pager format-patch master..extension
$ cp 0001-First-stab-at-writing-pg_execute_from_file-function.patch ..
$ git checkout master
$ git pull -f pgmaster
$ git reset --hard pgmaster/master
$ git checkout extension
$ git reset --hard master
$ git am -s ../0001-First-stab-at-writing-pg_execute_from_file-function.edit.patch
$ git status
$ git log --short | head
$ git log -n2 --oneline
$ git push -f
So that’s still more steps that one want to call dead simple, but still. The
format-patch
command is to save my work away (all patches that are in the
extension branch but not in the
master — well that was only one of them
here). Then, as the master repository
URL
didn’t change, I can simply
pull
the changes in. Of course I had a nice message
warning: no common commits.
Once pulled, I trashed my local copy and replaced it with the new official
one, that’s
git reset --hard pgmaster/master
, then in the
extension branch I
could trash it and have it linked to the local
master
again.
Of course, the
git am
method wouldn’t apply my patch as-is, there was some
underlying changes in the source files, the identification tag changed from
$PostgreSQL$
to, e.g.,
src/backend/utils/adt/genfile.c
, and I had to cope
with that. Maybe there’s some tool (
git am -3
?) to do it automatically, I
just copy edited the
.patch
file.
Lastly, it’s all about checking the result and publishing the result. This
last line is
git push -f
and is when I just trashed and replaced my
postgresql-extension community repository. I don’t think anybody was
following it, but should it be the case, you will have to
reinit your copy.
More blog posts to come about extensions, as I arranged to have some real time to devote on the topic. At least I was able to arrange things so that I can work on the subject for real, and the first thing I did, the very night before it was meant to begin, is catch a tonsillitis. Lost about a week, not the project! Stay tuned!