You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by James Mitchell <jm...@apache.org> on 2005/06/24 17:41:20 UTC

Re: New Subversion (explained)

That's correct.

Think of svn:externals as like a symbolic link, but the link is not a *file* 
itself but a property of a directory.  So, you won't see it, but svn will.


So (using the current myfaces repository) if you are in myfaces/current/ (or 
whatever you called it) and you do 'svn proplist .'   <==== notice the 
period, that was intentional, but it is not required

[Everything after the $ is my interaction on the command line]

jmitchell@compaq ~/svn/myfaces
$ svn proplist .
Properties on '.':
  svn:ignore
  svn:externals


Ok, so that tells me there are:
 - svn properties for ignoring file types (like .cvsignore)
 - svn properties that describe external locations that svn will pull during 
a checkout or update


Now I want to see what I pulled by checking out 'current'.

jmitchell@compaq ~/svn/myfaces
$ svn propget svn:externals .   <==== (there's that period again)
build    https://svn.apache.org/repos/asf/myfaces/build/trunk
api      https://svn.apache.org/repos/asf/myfaces/api/trunk
impl     https://svn.apache.org/repos/asf/myfaces/impl/trunk
examples https://svn.apache.org/repos/asf/myfaces/examples/trunk
sandbox  https://svn.apache.org/repos/asf/myfaces/sandbox/trunk
tomahawk https://svn.apache.org/repos/asf/myfaces/tomahawk/trunk
forrest  https://svn.apache.org/repos/asf/myfaces/forrest/trunk


That explains where everything is coming from now, but what is this "share" 
business?

jmitchell@compaq ~/svn/myfaces
$ cd tomahawk/

(let's look at what's in tomahawk)

jmitchell@compaq ~/svn/myfaces/tomahawk
$ ls -l
total 5
drwxr-xr-x+ 5 jmitchell None   0 Jun 24 11:17 build
-rw-r--r--  1 jmitchell None 983 Jun 24 11:17 build.properties
drwxr-xr-x+ 3 jmitchell None   0 Jun 24 11:17 conf
-rw-r--r--  1 jmitchell None 217 Jun 24 11:17 manifest.properties
drwxr-xr-x+ 4 jmitchell None   0 Jun 24 11:18 share
drwxr-xr-x+ 4 jmitchell None   0 Jun 24 11:17 src
drwxr-xr-x+ 5 jmitchell None   0 Jun 24 11:18 tld

(Ok, I see "share", but it looks normal to me)

jmitchell@compaq ~/svn/myfaces/tomahawk
$ svn proplist .
Properties on '.':
  svn:externals

jmitchell@compaq ~/svn/myfaces/tomahawk
$ svn propget svn:externals .
build  https://svn.apache.org/repos/asf/myfaces/build/trunk
share  https://svn.apache.org/repos/asf/myfaces/impl/trunk/share

jmitchell@compaq ~/svn/myfaces/tomahawk
$ svn status
X      build
X      share
X      tld/entities
X      tld/misc

Performing status on external item at 'build'

Performing status on external item at 'share'

Performing status on external item at 'tld/entities'

Performing status on external item at 'tld/misc'



By now you should see the pattern here.

The only difficult part of this is keeping up with what is real and what is 
pulled in via svn:externals.  Trust me, if you change something in 
current/tomahawk/tld/misc, but it will be reflected across all the locations 
that include it.


FYI - you could probably deal with the issue of missing RSS files in a 
similar manner (use svn:externals to pull in the missing sources right from 
commons).




--
James Mitchell
Software Engineer / Open Source Evangelist
Consulting / Mentoring / Freelance
EdgeTech, Inc.
http://www.edgetechservices.net/
678.910.8017
AIM:   jmitchtx
Yahoo: jmitchtx
MSN:   jmitchell@apache.org
Skype: jmitchtx

----- Original Message ----- 
From: "Bill Dudney" <bd...@mac.com>
To: "MyFaces Development" <de...@myfaces.apache.org>
Sent: Friday, June 24, 2005 11:05 AM
Subject: Re: New Subversion


> Hi Sean,
>
> So far so good!
>
> I've tried the 'download-dependencies' and it works fine except for  the 
> 1.2 version of commons-validator.jar which is to be expected  until that 
> is released.
>
> The myfaces-current looks good except for getting multiple copies of  the 
> share code, is that expected?
>
> myfaces-current/
>     api/
>         src/java
>     build/
>     examples/
>     forest/
>     impl/
>         share/src  <-- share src, this is where it belongs correct?  The 
> 'home' of share if I'm reading the svn:externals correctly.
>         src <-- impl src
>     sandbox/
>     tomahawk/
>         share/src <-- share src, I did not expect this
>         src <-- tomahawk src
>
> If this is just noise for you now please feel free to let me know, I 
> don't want to make it more difficult for you.
>
> Thanks again,
>
> -bd-
>
>
> On Jun 24, 2005, at 8:00 AM, Sean Schofield wrote:
>
>> errr....
>>
>> https://svn.apache.org/repos/asf/myfaces/current
>>
>>
>>
>> On 6/24/05, Sean Schofield <se...@gmail.com> wrote:
>>
>>> Martin,
>>>
>>> I'm still working on the build so I haven't had a chance to post
>>> instructions yet.
>>>
>>> Try https://svn.apache.org/asf/repos/myfaces/current
>>>
>>> It takes a little while but that has nothing to do with the reorg,
>>> just the volume of files.  If its hanging on you there might be a
>>> problem with the SVN server or on your end.
>>>
>>> Keep me posted.
>>>
>>> sean
>>>
>>> On 6/24/05, Martin Marinschek <ma...@gmail.com> wrote:
>>>
>>>> Hi everyone,
>>>>
>>>> how do you guys handle the checkout of the newly laid out subversion
>>>> tree? I am trying to checkout all at once, but both Tortoise SVN and
>>>> the subversion command line client (on my windows box) stop dead
>>>> sometime during the process (it seems to be that there is just too
>>>> much to checkout if all the branches are coming out as well?).
>>>>
>>>> What to do instead? I don't want to checkout only trunk in every
>>>> subdirectory of MyFaces, that would take to long I think, and I
>>>> couldn't do a single update anymore.
>>>>
>>>> Does anyone have suggestions to solve this problem?
>>>>
>>>> regards,
>>>>
>>>> Martin
>>>>
>>>>
>>>
>>
>
> 



Re: New Subversion (explained)

Posted by James Mitchell <jm...@apache.org>.
We also need to keep one more *critical* thing in mind.

Unless things have changed in the last 6 months, when you branch/tag, the svn:externals 'pointers' (for lack of a better term) still point to https://my/repos/foo/trunk, so it is entirely possible that you make a change to a branch, but it will actually commit to the main line (HEAD).

This means when a branch or tag happens, you must go there and fix the svn:externals properties to point to https://my/repos/foo/branches/MY_BRANCH.



--
James Mitchell
Software Engineer / Open Source Evangelist
Consulting / Mentoring / Freelance
EdgeTech, Inc.
http://www.edgetechservices.net/
678.910.8017
AIM:   jmitchtx
Yahoo: jmitchtx
MSN:   jmitchell@apache.org
Skype: jmitchtx

  ----- Original Message ----- 
  From: John Fallows 
  To: MyFaces Development 
  Sent: Friday, June 24, 2005 6:40 PM
  Subject: Re: New Subversion (explained)


  Be careful when committing changes across svn:external links.

  http://svnbook.red-bean.com/en/1.1/svn-book.html#svn-ch-7-sect-3

  <quote> 
  The support that exists for externals definitions in Subversion today can be a little misleading, though. 

  First, an externals definition can only point to directories, not files. 
  Second, the externals definition cannot point to relative paths (paths like ../../skins/myskin). 
  Third, the working copies created via the externals definition support are still disconnected from the primary working copy (on whose versioned directories the svn:externals  property was actually set). 

  And Subversion still only truly operates on non-disjoint working copies. So, for example, if you want to commit changes that you've made in one or more of those external working copies, you must run svn commit explicitly on those working copies—committing on the primary working copy will not recurse into any external ones.
  </quote>

  Kind Regards,
  John Fallows.

  On 6/24/05, James Mitchell <jm...@apache.org> wrote:
  > That's correct.
  > 
  > Think of svn:externals as like a symbolic link, but the link is not a *file* 
  > itself but a property of a directory.  So, you won't see it, but svn will.
  > 
  > 
  > So (using the current myfaces repository) if you are in myfaces/current/ (or
  > whatever you called it) and you do 'svn proplist .'   <==== notice the 
  > period, that was intentional, but it is not required
  > 
  > [Everything after the $ is my interaction on the command line]
  > 
  > jmitchell@compaq ~/svn/myfaces
  > $ svn proplist .
  > Properties on '.': 
  >   svn:ignore
  >   svn:externals
  > 
  > 
  > Ok, so that tells me there are:
  >  - svn properties for ignoring file types (like .cvsignore)
  >  - svn properties that describe external locations that svn will pull during 
  > a checkout or update
  > 
  > 
  > Now I want to see what I pulled by checking out 'current'.
  > 
  > jmitchell@compaq ~/svn/myfaces
  > $ svn propget svn:externals .   <==== (there's that period again) 
  > build    https://svn.apache.org/repos/asf/myfaces/build/trunk
  > api      https://svn.apache.org/repos/asf/myfaces/api/trunk 
  > impl     https://svn.apache.org/repos/asf/myfaces/impl/trunk
  > examples https://svn.apache.org/repos/asf/myfaces/examples/trunk
  > sandbox  https://svn.apache.org/repos/asf/myfaces/sandbox/trunk
  > tomahawk https://svn.apache.org/repos/asf/myfaces/tomahawk/trunk
  > forrest  https://svn.apache.org/repos/asf/myfaces/forrest/trunk
  > 
  > 
  > That explains where everything is coming from now, but what is this "share"
  > business?
  > 
  > jmitchell@compaq ~/svn/myfaces
  > $ cd tomahawk/
  > 
  > (let's look at what's in tomahawk) 
  > 
  > jmitchell@compaq ~/svn/myfaces/tomahawk
  > $ ls -l
  > total 5
  > drwxr-xr-x+ 5 jmitchell None   0 Jun 24 11:17 build
  > -rw-r--r--  1 jmitchell None 983 Jun 24 11:17 build.properties
  > drwxr-xr-x+ 3 jmitchell None   0 Jun 24 11:17 conf
  > -rw-r--r--  1 jmitchell None 217 Jun 24 11:17 manifest.properties
  > drwxr-xr-x+ 4 jmitchell None   0 Jun 24 11:18 share
  > drwxr-xr-x+ 4 jmitchell None   0 Jun 24 11:17 src 
  > drwxr-xr-x+ 5 jmitchell None   0 Jun 24 11:18 tld
  > 
  > (Ok, I see "share", but it looks normal to me)
  > 
  > jmitchell@compaq ~/svn/myfaces/tomahawk
  > $ svn proplist .
  > Properties on '.': 
  >   svn:externals
  > 
  > jmitchell@compaq ~/svn/myfaces/tomahawk
  > $ svn propget svn:externals .
  > build  https://svn.apache.org/repos/asf/myfaces/build/trunk 
  > share  https://svn.apache.org/repos/asf/myfaces/impl/trunk/share
  > 
  > jmitchell@compaq ~/svn/myfaces/tomahawk
  > $ svn status 
  > X      build
  > X      share
  > X      tld/entities
  > X      tld/misc
  > 
  > Performing status on external item at 'build'
  > 
  > Performing status on external item at 'share'
  > 
  > Performing status on external item at 'tld/entities'
  > 
  > Performing status on external item at 'tld/misc'
  > 
  > 
  > 
  > By now you should see the pattern here.
  > 
  > The only difficult part of this is keeping up with what is real and what is 
  > pulled in via svn:externals.  Trust me, if you change something in
  > current/tomahawk/tld/misc, but it will be reflected across all the locations
  > that include it.
  > 
  > 
  > FYI - you could probably deal with the issue of missing RSS files in a 
  > similar manner (use svn:externals to pull in the missing sources right from
  > commons).
  > 
  > 
  > 
  > 
  > --
  > James Mitchell
  > Software Engineer / Open Source Evangelist 
  > Consulting / Mentoring / Freelance
  > EdgeTech, Inc.
  > http://www.edgetechservices.net/
  > 678.910.8017
  > AIM:   jmitchtx
  > Yahoo: jmitchtx 
  > MSN:   jmitchell@apache.org
  > Skype: jmitchtx
  > 
  > ----- Original Message -----
  > From: "Bill Dudney" < bdudney@mac.com>
  > To: "MyFaces Development" <de...@myfaces.apache.org>
  > Sent: Friday, June 24, 2005 11:05 AM
  > Subject: Re: New Subversion 
  > 
  > 
  > > Hi Sean,
  > >
  > > So far so good!
  > >
  > > I've tried the 'download-dependencies' and it works fine except for  the
  > > 1.2 version of commons-validator.jar which is to be expected  until that
  > > is released.
  > >
  > > The myfaces-current looks good except for getting multiple copies of  the
  > > share code, is that expected?
  > >
  > > myfaces-current/
  > >     api/
  > >         src/java
  > >     build/
  > >     examples/
  > >     forest/
  > >     impl/
  > >         share/src  <-- share src, this is where it belongs correct?  The
  > > 'home' of share if I'm reading the svn:externals correctly.
  > >         src <-- impl src
  > >     sandbox/
  > >     tomahawk/
  > >         share/src <-- share src, I did not expect this 
  > >         src <-- tomahawk src
  > >
  > > If this is just noise for you now please feel free to let me know, I
  > > don't want to make it more difficult for you.
  > >
  > > Thanks again, 
  > >
  > > -bd-
  > >
  > >
  > > On Jun 24, 2005, at 8:00 AM, Sean Schofield wrote:
  > >
  > >> errr....
  > >>
  > >> https://svn.apache.org/repos/asf/myfaces/current
  > >>
  > >>
  > >>
  > >> On 6/24/05, Sean Schofield <sean.schofield@gmail.com > wrote:
  > >>
  > >>> Martin,
  > >>>
  > >>> I'm still working on the build so I haven't had a chance to post
  > >>> instructions yet.
  > >>> 
  > >>> Try https://svn.apache.org/asf/repos/myfaces/current
  > >>>
  > >>> It takes a little while but that has nothing to do with the reorg, 
  > >>> just the volume of files.  If its hanging on you there might be a
  > >>> problem with the SVN server or on your end.
  > >>>
  > >>> Keep me posted.
  > >>> 
  > >>> sean
  > >>>
  > >>> On 6/24/05, Martin Marinschek <ma...@gmail.com> wrote:
  > >>>
  > >>>> Hi everyone, 
  > >>>>
  > >>>> how do you guys handle the checkout of the newly laid out subversion
  > >>>> tree? I am trying to checkout all at once, but both Tortoise SVN and
  > >>>> the subversion command line client (on my windows box) stop dead 
  > >>>> sometime during the process (it seems to be that there is just too
  > >>>> much to checkout if all the branches are coming out as well?).
  > >>>>
  > >>>> What to do instead? I don't want to checkout only trunk in every 
  > >>>> subdirectory of MyFaces, that would take to long I think, and I
  > >>>> couldn't do a single update anymore.
  > >>>>
  > >>>> Does anyone have suggestions to solve this problem? 
  > >>>>
  > >>>> regards,
  > >>>>
  > >>>> Martin
  > >>>>
  > >>>>
  > >>>
  > >>
  > >
  > >
  > 
  > 
  > 

Re: New Subversion (explained)

Posted by John Fallows <jo...@gmail.com>.
Be careful when committing changes across svn:external links.

http://svnbook.red-bean.com/en/1.1/svn-book.html#svn-ch-7-sect-3

<quote>
The support that exists for externals definitions in Subversion today can be 
a little misleading, though. 

First, an externals definition can only point to directories, not files. 
Second, the externals definition cannot point to relative paths (paths like 
../../skins/myskin). 
Third, the working copies created via the externals definition support are 
still disconnected from the primary working copy (on whose versioned 
directories the svn:externals property was actually set). 

And Subversion still only truly operates on non-disjoint working copies. So, 
for example, if you want to commit changes that you've made in one or more 
of those external working copies, you must run svn commit explicitly on 
those working copies—committing on the primary working copy will not recurse 
into any external ones.
</quote>

Kind Regards,
John Fallows.

On 6/24/05, James Mitchell <jm...@apache.org> wrote:
> That's correct.
> 
> Think of svn:externals as like a symbolic link, but the link is not a 
*file*
> itself but a property of a directory. So, you won't see it, but svn will.
> 
> 
> So (using the current myfaces repository) if you are in myfaces/current/ 
(or
> whatever you called it) and you do 'svn proplist .' <==== notice the
> period, that was intentional, but it is not required
> 
> [Everything after the $ is my interaction on the command line]
> 
> jmitchell@compaq ~/svn/myfaces
> $ svn proplist .
> Properties on '.':
> svn:ignore
> svn:externals
> 
> 
> Ok, so that tells me there are:
> - svn properties for ignoring file types (like .cvsignore)
> - svn properties that describe external locations that svn will pull 
during
> a checkout or update
> 
> 
> Now I want to see what I pulled by checking out 'current'.
> 
> jmitchell@compaq ~/svn/myfaces
> $ svn propget svn:externals . <==== (there's that period again)
> build https://svn.apache.org/repos/asf/myfaces/build/trunk
> api https://svn.apache.org/repos/asf/myfaces/api/trunk
> impl https://svn.apache.org/repos/asf/myfaces/impl/trunk
> examples https://svn.apache.org/repos/asf/myfaces/examples/trunk
> sandbox https://svn.apache.org/repos/asf/myfaces/sandbox/trunk
> tomahawk https://svn.apache.org/repos/asf/myfaces/tomahawk/trunk
> forrest https://svn.apache.org/repos/asf/myfaces/forrest/trunk
> 
> 
> That explains where everything is coming from now, but what is this 
"share"
> business?
> 
> jmitchell@compaq ~/svn/myfaces
> $ cd tomahawk/
> 
> (let's look at what's in tomahawk)
> 
> jmitchell@compaq ~/svn/myfaces/tomahawk
> $ ls -l
> total 5
> drwxr-xr-x+ 5 jmitchell None 0 Jun 24 11:17 build
> -rw-r--r-- 1 jmitchell None 983 Jun 24 11:17 build.properties
> drwxr-xr-x+ 3 jmitchell None 0 Jun 24 11:17 conf
> -rw-r--r-- 1 jmitchell None 217 Jun 24 11:17 manifest.properties
> drwxr-xr-x+ 4 jmitchell None 0 Jun 24 11:18 share
> drwxr-xr-x+ 4 jmitchell None 0 Jun 24 11:17 src
> drwxr-xr-x+ 5 jmitchell None 0 Jun 24 11:18 tld
> 
> (Ok, I see "share", but it looks normal to me)
> 
> jmitchell@compaq ~/svn/myfaces/tomahawk
> $ svn proplist .
> Properties on '.':
> svn:externals
> 
> jmitchell@compaq ~/svn/myfaces/tomahawk
> $ svn propget svn:externals .
> build https://svn.apache.org/repos/asf/myfaces/build/trunk
> share https://svn.apache.org/repos/asf/myfaces/impl/trunk/share
> 
> jmitchell@compaq ~/svn/myfaces/tomahawk
> $ svn status
> X build
> X share
> X tld/entities
> X tld/misc
> 
> Performing status on external item at 'build'
> 
> Performing status on external item at 'share'
> 
> Performing status on external item at 'tld/entities'
> 
> Performing status on external item at 'tld/misc'
> 
> 
> 
> By now you should see the pattern here.
> 
> The only difficult part of this is keeping up with what is real and what 
is
> pulled in via svn:externals. Trust me, if you change something in
> current/tomahawk/tld/misc, but it will be reflected across all the 
locations
> that include it.
> 
> 
> FYI - you could probably deal with the issue of missing RSS files in a
> similar manner (use svn:externals to pull in the missing sources right 
from
> commons).
> 
> 
> 
> 
> --
> James Mitchell
> Software Engineer / Open Source Evangelist
> Consulting / Mentoring / Freelance
> EdgeTech, Inc.
> http://www.edgetechservices.net/
> 678.910.8017
> AIM: jmitchtx
> Yahoo: jmitchtx
> MSN: jmitchell@apache.org
> Skype: jmitchtx
> 
> ----- Original Message -----
> From: "Bill Dudney" <bd...@mac.com>
> To: "MyFaces Development" <de...@myfaces.apache.org>
> Sent: Friday, June 24, 2005 11:05 AM
> Subject: Re: New Subversion
> 
> 
> > Hi Sean,
> >
> > So far so good!
> >
> > I've tried the 'download-dependencies' and it works fine except for the
> > 1.2 version of commons-validator.jar which is to be expected until that
> > is released.
> >
> > The myfaces-current looks good except for getting multiple copies of the
> > share code, is that expected?
> >
> > myfaces-current/
> > api/
> > src/java
> > build/
> > examples/
> > forest/
> > impl/
> > share/src <-- share src, this is where it belongs correct? The
> > 'home' of share if I'm reading the svn:externals correctly.
> > src <-- impl src
> > sandbox/
> > tomahawk/
> > share/src <-- share src, I did not expect this
> > src <-- tomahawk src
> >
> > If this is just noise for you now please feel free to let me know, I
> > don't want to make it more difficult for you.
> >
> > Thanks again,
> >
> > -bd-
> >
> >
> > On Jun 24, 2005, at 8:00 AM, Sean Schofield wrote:
> >
> >> errr....
> >>
> >> https://svn.apache.org/repos/asf/myfaces/current
> >>
> >>
> >>
> >> On 6/24/05, Sean Schofield <se...@gmail.com> wrote:
> >>
> >>> Martin,
> >>>
> >>> I'm still working on the build so I haven't had a chance to post
> >>> instructions yet.
> >>>
> >>> Try https://svn.apache.org/asf/repos/myfaces/current
> >>>
> >>> It takes a little while but that has nothing to do with the reorg,
> >>> just the volume of files. If its hanging on you there might be a
> >>> problem with the SVN server or on your end.
> >>>
> >>> Keep me posted.
> >>>
> >>> sean
> >>>
> >>> On 6/24/05, Martin Marinschek <ma...@gmail.com> wrote:
> >>>
> >>>> Hi everyone,
> >>>>
> >>>> how do you guys handle the checkout of the newly laid out subversion
> >>>> tree? I am trying to checkout all at once, but both Tortoise SVN and
> >>>> the subversion command line client (on my windows box) stop dead
> >>>> sometime during the process (it seems to be that there is just too
> >>>> much to checkout if all the branches are coming out as well?).
> >>>>
> >>>> What to do instead? I don't want to checkout only trunk in every
> >>>> subdirectory of MyFaces, that would take to long I think, and I
> >>>> couldn't do a single update anymore.
> >>>>
> >>>> Does anyone have suggestions to solve this problem?
> >>>>
> >>>> regards,
> >>>>
> >>>> Martin
> >>>>
> >>>>
> >>>
> >>
> >
> >
> 
> 
>