Sigurd Nes wrote: >> Okay so : the per coder structure is now ready and follows the >> core/module base svn architecture >> >> so for you sigurd the "core" place is there (and empty well i created >> just the trunk/tags/branches level) : >> >> svn+ssh://sigur...@svn.savannah.gnu.org/phpgroupware/people/sigurdne/core >> >> and i also added an empty module repository for property in your tree >> which is there : >> >> svn+ssh://sigur...@svn.savannah.gnu.org/phpgroupware/people/sigurdne/modules/property >> >> you have also the trunk/tags/branches level created so that it's useable >> just out of the box : ----8<---- > > It seems to work :) > ----8<----
Next step in progress : changing structure so that a single checkout is needed to get started Please mark this mail because the following info are really important to get started. PART FOR EVERYBODY WITHOUT COMMIT RIGHTS ################################################ Svn repositories (not repository because i have splitted them) share a common root which is publicly available there : http://svn.savannah.gnu.org/svn/phpgroupware/ under this root we have core, modules and misc : ** core : the repository everybody (betatesters, bug hunters, svn loging users) will want to checkout under core we have : ------------------------ -- trunk : the last (hopefully fast) moving codebase with the last exciting features (and currently the greatest number of bugs we want to get rid of) to get a working copy from there you just need to checkout this url with subversion (or any graphical svn client like tortoise) : http://svn.savannah.gnu.org/svn/phpgroupware/core/trunk -- branches : the various stable (and some of them outdated) branches... for example you'll fint there the branch dedicated to current stable versions 0.9.16.xxx the here above stable branch name is "branch_0_9_16" i tried to normalize all branch names ( branch_0_9_10 branch_0_9_12 branch_0_9_14 branch_0_9_16...) to get a working copy from there you just need to checkout this url with subversion (or any graphical svn client like tortoise) : http://svn.savannah.gnu.org/svn/phpgroupware/core/branches/branch_0_9_16 if you browse core trunk or one of the core branches in core you'll find they are nearly empty : don't panic this is normal... once you begin the check out svn will get all the needed phpgw modules which are located in modules root dir (nice transition for the following subject) ** modules : a root dir located just aside core... modules contains one repository (each with svn trunk / tags / branches canocical structure ) per module... you'll see there addressbook, notes, todo, property and some more for each module repository we have : ------------------------------------------ -- trunk : the last (hopefully fast) moving codebase with the last exciting features (and currently the greatest number of bugs we want to get rid of) -- branches : the various stable (and some of them outdated) branches... for example you'll fint there the branch dedicated to current stable versions 0.9.16.xxx the here above stable branch name is "branch_0_9_16" i tried to normalize all branch names ( branch_0_9_10 branch_0_9_12 branch_0_9_14 branch_0_9_16...) modules trunks are linked to core trunk through a subversion link system using the svn property svn:externals and modules branches are each linked to the appropriate core branch ( modules branches "branch_0_9_16" with core branch "branch_0_9_16" for example) alike most of the time you won't need to play with externals because most of the phpgw modules are already linked if you wan to get another module (let's take we are working in trunks) just edit the svn:externals property of your working copy it looks like this : addressbook http://svn.savannah.gnu.org/svn/phpgroupware/modules/addressbook/trunk admin http://svn.savannah.gnu.org/svn/phpgroupware/modules/admin/trunk calendar http://svn.savannah.gnu.org/svn/phpgroupware/modules/calendar/trunk email http://svn.savannah.gnu.org/svn/phpgroupware/modules/email/trunk if you wan to add for example the module stocks juste add a line like this stocks http://svn.savannah.gnu.org/svn/phpgroupware/modules/stocks/trunk and update :) The property svn:externals will appear as modified in svn status but as http://svn.savannah.gnu.org/svn repositories are read-only you'll nver break anything even if you try a svn commit :) PART FOR APP MAINTAINERS WITH COMMIT RIGHTS ################################################## This part is also for people interrested in becomin' maintainers :) the root for your app must be changed so that you can commit without savannah rejecting you So in svn:externals you have the to edit the line of your app changing the url root http://svn.savannah.gnu.org/svn/phpgroupware with svn+ssh://svn.savannah.gnu.org/phpgroupware or svn+ssh://nickn...@svn.savannah.gnu.org/phpgroupware and run a svn update on your working copy : you app will be updated and the commits will be accepted by savannah if you maintain severas apps just change each needed line in svn:externals WARNING : Double check the coherence of svn:externals urls... if you check out a working copy for 0.9.16.X branch and target the trunk of your app with svn:externals there are very few chances to see it work :) PART FOR PHPGW MAINTAINERS WITH COMMIT RIGHTS ###################################################### This part is also for people interrested in becomin' maintainers :) if you need to : -- patch phpgw root doc -- patch one of the few files located in core repository -- create new branches (for example the waited branch_0_9_18) -- publish releases (for that we need to play with tags... that will be for an other kilometer-long mail :) ) then you need to commit on core repository for that you need to check out with the svn+ssh root url : for trunk : svn co svn+ssh://nickn...@svn.savannah.gnu.org/phpgroupware/core/trunk for branch_0_9_16 : svn co vn+ssh://nickn...@svn.savannah.gnu.org/phpgroupware/core/branches/branch_0_9_16 PART FOR PERSONAL REPOSITORIES USAGE ########################################## aside core and modules there is a people root dit with inside one directory per coder under each coder directory you have the same structure with core and modules (but it's empty till people play with them) that will allow coders to play each in his own sandbox without fearing to break things in reference structure... once a new feature is working in personal repository the coder can merge his code in the maintream in one shot... that will allow us to have a nice commit log in maintream :) for example in my personal core/trunk i can have a copy of root core/trunk with just a change on svn:externals so that i use svn+ssh for ged on my own modules/ged repository then a checkout on svn co svn+ssh://m...@svn.savannah.gnu.org/phpgroupware/people/maat/core/trunk gives me a ready-to-code working copy That structure can also allow, for example, to use a customized phpgwapi with new features not yed teady for mainstream inclusion So changing just the phpgwapi svn:externals link to svn+ssh://nickn...@svn.savannah.gnu.org/phpgroupware/people/nickname/modules/phpgwapi/trunk will allow to play with this patched api and test it with the current official modules trunks Thanks all and apologies for this really long mail Maât _______________________________________________ phpGroupWare-developers mailing list phpGroupWare-developers@gnu.org http://lists.gnu.org/mailman/listinfo/phpgroupware-developers