Post by Sigurd NesPost by MaâtOkay 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
and i also added an empty module repository for property in your tree
you have also the trunk/tags/branches level created so that it's useable
----8<----
Post by Sigurd NesIt 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://***@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://***@svn.savannah.gnu.org/phpgroupware/core/trunk
for branch_0_9_16 :
svn co
vn+ssh://***@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://***@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://***@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