[Zope-dev] Re: [Zope3-dev] Change in repository approach to software sharing

2004-05-07 Thread Chris Withers
Jim Fulton wrote:
I think you'll find this doesn't work when 
svn+ssh://svn.zope.org/repos/Zope3/trunk/src/ZConfig already exists. 
That's not relevent to the example, as, in the example, we are
creating it for the first time.
Yep, I know, but I've been there, and you feel great after the first time ,and 
disappointed when it doesn't work again ;-)

Do do so, we may have to remove the old copy first.
Yeah, which means two operations for each copy :-S

My experience has been that it's best just to have shared software 
exist in each location where it's used and maintained in those 
places with new versions being brought across via merges.
That's what I'm suggesting.
...hence just doing the merge which is the desired effect anyway ;-)

Another option, and one which I'd really strongly suggest here if it 
could be made to work is the external definitions stuff:
http://svnbook.red-bean.com/svnbook/ch07s03.html
That's close to what we have now, with repolinks. It's cleaner that 
repolinks,
but it has the same basic flaw, the shared software is *truly* shared:

- Users of the software have no control over when they get changes to it
I may have misread the external definitions docs, but I'm pretty sure you 
specify a revision number in the property, so you only ever get the exact 
version you want, and hence changes when you want them. Or did I miss something?

- A use of the software can make what they might think is a local
  change, check it in, and break other users.
Indeed. But since other users will stick with their specific revision, this 
should be okay, and it's better that such breakages get found sooner, rather 
than having several gradually forking copies of the same code (I almost ran into 
this problem with some custom products used in multiple SVN'ed instance-home's 
before slapping myself very hard...)

cheers,

Chris

--
Simplistix - Content Management, Zope  Python Consulting
   - http://www.simplistix.co.uk
___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope )


[Zope-dev] Re: [Zope3-dev] Change in repository approach to software sharing

2004-05-06 Thread Chris Withers
Jim Fulton wrote:

We'll also have a top-level ZConfig project directory.  The trunk
of the ZConfig Python package will be in ZConfig/trunk/src/ZConfig.
If we create a tag T1 of ZConfig, then the Python package for that tag
will be in ZConfig/tags/T1/src/ZConfig.
The /src/ in the above paths seems like a dead chicken to me, why's it there?

Now, when we set up the Zope 3 repository, we will create the ZConfig
package in Zope 3 by copying a *tag* from the ZConfig project:
  svn copy svn+ssh://svn.zope.org/repos/ZConfig/tags/T1/src/ZConfig \
   svn+ssh://svn.zope.org/repos/Zope3/trunk/src/ZConfig
   -m 'Bring ZConfig T1 into main branch'
I think you'll find this doesn't work when 
svn+ssh://svn.zope.org/repos/Zope3/trunk/src/ZConfig already exists. It's the 
one thing that's disappointed me about SVN so far :-(
(well, that and not beign able t odo inter-repository operations ;-)

Later, we may decide to upgrade the Zope 3 head to use ZConfig tag 3.
At that point, we can recopy from the tag, or we can merge changes
made between the two tags.
My experience has been that it's best just to have shared software exist in 
each location where it's used and maintained in those places with new versions 
being brought across via merges. Merges in SVN have ended up feeling a LOT nicer 
for me that with CVS, but the key is still to keep the number of maintained 
locations of a piece of shared software to an absolute minimum, as Tim points out.

Another option, and one which I'd really strongly suggest here if it could be 
made to work is the external definitions stuff:
http://svnbook.red-bean.com/svnbook/ch07s03.html

The svn:externals way of doing things means you only develop the shared software 
it it's own tag/trunk/branches structure and just link to it from where you want 
to use it, which sounds like it might save a few grey hairs on Tim's part since 
there won't be any local development in the locations where the shared 
software is used...

cheers,

Chris

--
Simplistix - Content Management, Zope  Python Consulting
   - http://www.simplistix.co.uk
___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope )


[Zope-dev] Re: [Zope3-dev] Change in repository approach to software sharing

2004-05-06 Thread Jim Fulton
Chris Withers wrote:
Jim Fulton wrote:

...

Now, when we set up the Zope 3 repository, we will create the ZConfig
package in Zope 3 by copying a *tag* from the ZConfig project:
  svn copy svn+ssh://svn.zope.org/repos/ZConfig/tags/T1/src/ZConfig \
   svn+ssh://svn.zope.org/repos/Zope3/trunk/src/ZConfig
   -m 'Bring ZConfig T1 into main branch'


I think you'll find this doesn't work when 
svn+ssh://svn.zope.org/repos/Zope3/trunk/src/ZConfig already exists. 
That's not relevent to the example, as, in the example, we are
creating it for the first time.
Later, we may decide to upgrade the Zope 3 head to use ZConfig tag 3.
At that point, we can recopy from the tag,
Do do so, we may have to remove the old copy first.

 or we can merge changes
made between the two tags.


My experience has been that it's best just to have shared software 
exist in each location where it's used and maintained in those places 
with new versions being brought across via merges.
That's what I'm suggesting.

 Merges in SVN have
ended up feeling a LOT nicer for me that with CVS, but the key is still 
to keep the number of maintained locations of a piece of shared software 
to an absolute minimum, as Tim points out.
There should be only one place that shared software is maintained.
Periodically, we'll need to resync copies.
Another option, and one which I'd really strongly suggest here if it 
could be made to work is the external definitions stuff:
http://svnbook.red-bean.com/svnbook/ch07s03.html
That's close to what we have now, with repolinks. It's cleaner that repolinks,
but it has the same basic flaw, the shared software is *truly* shared:
- Users of the software have no control over when they get changes to it

- A use of the software can make what they might think is a local
  change, check it in, and break other users.
Jim

--
Jim Fulton   mailto:[EMAIL PROTECTED]   Python Powered!
CTO  (540) 361-1714http://www.python.org
Zope Corporation http://www.zope.com   http://www.zope.org
___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope )