[PD-dev] repository layout

IOhannes m zmoelnig zmoelnig at iem.at
Tue Sep 11 16:35:29 CEST 2007


hi.

after the talk about svn at the pd-con, it seems like there is a general 
ok from the community, if somebody would be willing to perform the 
actual migration.

actually i could be this volunteer.


ad miller: there exist migration paths from both cvs and svn to git, so 
svn would do no harm before we can switch to git :-)


about the structure:

i have written down some ideas on how an svn-repository could be 
structured at http://puredata.info/Members/zmoelnig/pdcon07/SubVersion

basically the layout keeps the same, but with svn-specifics like 
meta-directories "trunk", "tags" and "branches".
ideally (for me) the layout of "trunk" would be:
  /trunk/pd/
  /trunk/pd-devel/
  /trunk/desiredata/
  /trunk/externals/
  /trunk/packages/
  /trunk/scripts/
  /trunk/doc/

differences to the current layout are:
- moved abstractions&extensions&xgui&Framestein into externals
- desiredata&pd-devel live beside "pd" (not in a separate branch)
- htdocs is deprecated (but could as well move into "doc")
- "supercollider" has moved into scripts (i am not sure about this, but 
it seems to be the best place, since "bash_completion" is already in 
there; "supercollider" is no external, it is rather a set of sc3-scripts 
to ease the use of pd&sc together)


the layout of "tags" would be:
  /tags/pd-0.40-4/
  /tags/pd-0.41-1/
  /tags/desiredata-0.39-1/
  /tags/zexy-2.1/
  /tags/pd-extended-0.39.2-rc1
  ...
(that is: a _very_ flat structure of "released" code)

the layout of "branches" would be almost the same as that of "tags" (but 
"tagged" revisions should not be touched any more, whereas "branched" 
revisions can be bug-fixed...)

both branches/tags should only be used for:
  - releases (+maintenance)
  - legacy (discontinued) projects

it is my believe that tags&branches should mainly be used for people who 
want to checkout "working code" (!), rather than developers who want to 
try something out without interfering with the existing code-base (trunk)


for quick experimental branches (e.g. if you want to implement a feature 
but do not want to spill the trunk), i would suggest a 4th 
meta-directory "experimental", like:
  /experimental/pd-0.40-kiosk/
  /experimental/pd-extended-0.39-newbuildsystem/
projects in "experimental" are not meant to be continued, but their 
changes should go back into the main trunk (either by merging into the 
original project or by living besides it)
in any case, these experimental branches should be deleted when 
finished, in order to keep the directory-layour reasonably small.




comments are highly welcome


fgmasd.r
IOhannes




More information about the Pd-dev mailing list