home changes contents help options

Miller is now pushing his git repository to the pure-data SourceForge project, so we can use git to stay up-to-date and generate patches. This page is to document git workflows useful for contributing code to the core of Pd.

For generating patches straight from Miller's repository

If you want to add a feature by working with Miller's git, then submit that feature as a patch to the patch tracker, this is the way to generate the patch:

For generating patches when using your own branched repository

Here's one idea for generating patches based on a given feature. Basically, make a local branch for a feature, commit lots, when done, rebase into clean patches and merge into local master, then submit patch to Miller. Something like:

now make the patch:

Keeping your changes ahead of the pure-data master branch

Instead of merging with an upstream repository like pure-data, you might want to keep your changes ahead of the master branch of pure-data. The git manual calls this Keeping a patch series up to date using git rebase. This is the workflow works well if other people are not making commits based on your master. This assumes that you have cloned pure-data and you have set origin to be some remote repository like gitorious and then added pure-data as a remote in .git/config.

now make the patch:

now update with newest code from pure-data

Pd-extended

Pd-extended uses a modified version of the "patch series" workflow above. The rebasing is done in a long-lived patch_series branch, then things are merged into master so that people can work against master. In this case, the patch_series branch serves as a reference, but people should not commit against the patch_series, but always master.

now make the patch:

Here's Hans' workflow for updating the newest code from pure-data:

Here is Hans' workflow adding to Pd-extended:

Configuring A Public Repository for your git

If you start maintaining a git repo of your own changes to pure-data, then it might make sense to start publishing it somewhere so that people can pull from you easily. Then you'll need to be able to push to your own public repo (e.g. gitorious) and still pull from Miller's repo. To do that, you can set up another remote called pure-data, like used in the above example. Here's stuff to add to your pure-data.git/.git/config:

[remote "origin"]
        url = git@gitorious.org:pdvanilla-hcs/pdvanilla-hcs.git
        fetch = +refs/heads/*:refs/remotes/origin/*

[remote "pure-data"]
        url = git://pure-data.git.sourceforge.net/gitroot/pure-data/pure-data
        fetch = +refs/heads/*:refs/remotes/origin/*

[branch "master"]
      remote = origin
      merge = refs/heads/master

Alternate method

Here is another way to work in your own fork of the master:

Main Branches

There are two main branches of Miller's pure-data.git:

http://github.com/umlaeute/pd-vanilla.git

git://pure-data.git.sourceforge.net/gitroot/pure-data/pd-extended.git