You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Michael Hartmeier <mi...@1und1.de> on 2012/02/20 14:49:54 UTC

Problem getting new external into my working copy

Hi,

I have a working copy that only contains svn:externals, no "normal" 
files or directories:

    $ svn propget svn:externals .
    shop https://svn.schlund.de/shop/trunk
    popups https://svn.schlund.de/popups/trunk/

How can I add a new external without updating the whole working copy?

What worked with 1.6: I changed (and committed) the svn:externals to

    shop https://svn.schlund.de/shop/trunk
    popups https://svn.schlund.de/popups/trunk/
    tuneup https://svn.schlund.de/tuneup/trunk/

and manually checked out the respective directory with

   svn co https://svn.schlund.de/tuneup/trunk/ tuneup

However, with Subversion 1.7, this directory is shown with status "?":

   $ svn st
   X       shop
   X       popups
   ?       tuneup

How can I fix the "tuneup" status to make it

   X     tuneup

???

Any help would be apprecheated!

Best regards,

Michael


Re: Problem getting new external into my working copy

Posted by Philip Martin <ph...@wandisco.com>.
That might be considered a bug.

I think you have to run update to get the new external.  If the other
externals are single revision then you could define that revision
explicitly in svn:externals.  Then you could run update and those
externals would not change.  You could even make the svn:externals
change as a local modification and revert it after the update.

Michael Hartmeier <mi...@1und1.de> writes:

> Yes: they both have no effect :(
>
> Michael
>
> Am 20.02.2012 15:35, schrieb Daniel Shahaf:
>> Instead of
>>
>>    svn checkout tuneup
>>
>> have you tried
>>
>>    svn up --depth empty
>>
>> or
>>
>>    svn up tuneup
>>
>> ?
>>
>> Michael Hartmeier wrote on Mon, Feb 20, 2012 at 14:49:54 +0100:
>>> Hi,
>>>
>>> I have a working copy that only contains svn:externals, no "normal"
>>> files or directories:
>>>
>>>     $ svn propget svn:externals .
>>>     shop https://svn.schlund.de/shop/trunk
>>>     popups https://svn.schlund.de/popups/trunk/
>>>
>>> How can I add a new external without updating the whole working copy?
>>>
>>> What worked with 1.6: I changed (and committed) the svn:externals to
>>>
>>>     shop https://svn.schlund.de/shop/trunk
>>>     popups https://svn.schlund.de/popups/trunk/
>>>     tuneup https://svn.schlund.de/tuneup/trunk/
>>>
>>> and manually checked out the respective directory with
>>>
>>>    svn co https://svn.schlund.de/tuneup/trunk/ tuneup
>>>
>>> However, with Subversion 1.7, this directory is shown with status "?":
>>>
>>>    $ svn st
>>>    X       shop
>>>    X       popups
>>>    ?       tuneup
>>>
>>> How can I fix the "tuneup" status to make it
>>>
>>>    X     tuneup
>>>
>>> ???
>>>
>>> Any help would be apprecheated!
>>>
>>> Best regards,
>>>
>>> Michael
>>>
>

-- 
Philip

Re: Problem getting new external into my working copy

Posted by Michael Hartmeier <mi...@1und1.de>.
Yes: they both have no effect :(

Michael

Am 20.02.2012 15:35, schrieb Daniel Shahaf:
> Instead of
>
>    svn checkout tuneup
>
> have you tried
>
>    svn up --depth empty
>
> or
>
>    svn up tuneup
>
> ?
>
> Michael Hartmeier wrote on Mon, Feb 20, 2012 at 14:49:54 +0100:
>> Hi,
>>
>> I have a working copy that only contains svn:externals, no "normal"
>> files or directories:
>>
>>     $ svn propget svn:externals .
>>     shop https://svn.schlund.de/shop/trunk
>>     popups https://svn.schlund.de/popups/trunk/
>>
>> How can I add a new external without updating the whole working copy?
>>
>> What worked with 1.6: I changed (and committed) the svn:externals to
>>
>>     shop https://svn.schlund.de/shop/trunk
>>     popups https://svn.schlund.de/popups/trunk/
>>     tuneup https://svn.schlund.de/tuneup/trunk/
>>
>> and manually checked out the respective directory with
>>
>>    svn co https://svn.schlund.de/tuneup/trunk/ tuneup
>>
>> However, with Subversion 1.7, this directory is shown with status "?":
>>
>>    $ svn st
>>    X       shop
>>    X       popups
>>    ?       tuneup
>>
>> How can I fix the "tuneup" status to make it
>>
>>    X     tuneup
>>
>> ???
>>
>> Any help would be apprecheated!
>>
>> Best regards,
>>
>> Michael
>>


Re: Problem getting new external into my working copy

Posted by Daniel Shahaf <da...@elego.de>.
Instead of 

  svn checkout tuneup

have you tried

  svn up --depth empty

or

  svn up tuneup

?

Michael Hartmeier wrote on Mon, Feb 20, 2012 at 14:49:54 +0100:
> Hi,
> 
> I have a working copy that only contains svn:externals, no "normal"
> files or directories:
> 
>    $ svn propget svn:externals .
>    shop https://svn.schlund.de/shop/trunk
>    popups https://svn.schlund.de/popups/trunk/
> 
> How can I add a new external without updating the whole working copy?
> 
> What worked with 1.6: I changed (and committed) the svn:externals to
> 
>    shop https://svn.schlund.de/shop/trunk
>    popups https://svn.schlund.de/popups/trunk/
>    tuneup https://svn.schlund.de/tuneup/trunk/
> 
> and manually checked out the respective directory with
> 
>   svn co https://svn.schlund.de/tuneup/trunk/ tuneup
> 
> However, with Subversion 1.7, this directory is shown with status "?":
> 
>   $ svn st
>   X       shop
>   X       popups
>   ?       tuneup
> 
> How can I fix the "tuneup" status to make it
> 
>   X     tuneup
> 
> ???
> 
> Any help would be apprecheated!
> 
> Best regards,
> 
> Michael
> 

Re: Problem getting new external into my working copy

Posted by Michael Hartmeier <mi...@1und1.de>.
Unfortunatly, a global "svn up" is not an option:
I'd also get updates for the existing svn externals that I don't want.

Michael

Am 20.02.2012 15:24, schrieb Johan Corveleyn:
> On Mon, Feb 20, 2012 at 2:49 PM, Michael Hartmeier
> <mi...@1und1.de>  wrote:
>> Hi,
>>
>> I have a working copy that only contains svn:externals, no "normal" files or
>> directories:
>>
>>    $ svn propget svn:externals .
>>    shop https://svn.schlund.de/shop/trunk
>>    popups https://svn.schlund.de/popups/trunk/
>>
>> How can I add a new external without updating the whole working copy?
>>
>> What worked with 1.6: I changed (and committed) the svn:externals to
>>
>>    shop https://svn.schlund.de/shop/trunk
>>    popups https://svn.schlund.de/popups/trunk/
>>    tuneup https://svn.schlund.de/tuneup/trunk/
>>
>> and manually checked out the respective directory with
>>
>>   svn co https://svn.schlund.de/tuneup/trunk/ tuneup
>>
>> However, with Subversion 1.7, this directory is shown with status "?":
>>
>>   $ svn st
>>   X       shop
>>   X       popups
>>   ?       tuneup
>>
>> How can I fix the "tuneup" status to make it
>>
>>   X     tuneup
>>
>> ???
>>
>> Any help would be apprecheated!
> An 'svn update' after changing the externals should do the trick. That
> should automatically "pull in" the new external.
>


Re: Problem getting new external into my working copy

Posted by Johan Corveleyn <jc...@gmail.com>.
On Mon, Feb 20, 2012 at 2:49 PM, Michael Hartmeier
<mi...@1und1.de> wrote:
> Hi,
>
> I have a working copy that only contains svn:externals, no "normal" files or
> directories:
>
>   $ svn propget svn:externals .
>   shop https://svn.schlund.de/shop/trunk
>   popups https://svn.schlund.de/popups/trunk/
>
> How can I add a new external without updating the whole working copy?
>
> What worked with 1.6: I changed (and committed) the svn:externals to
>
>   shop https://svn.schlund.de/shop/trunk
>   popups https://svn.schlund.de/popups/trunk/
>   tuneup https://svn.schlund.de/tuneup/trunk/
>
> and manually checked out the respective directory with
>
>  svn co https://svn.schlund.de/tuneup/trunk/ tuneup
>
> However, with Subversion 1.7, this directory is shown with status "?":
>
>  $ svn st
>  X       shop
>  X       popups
>  ?       tuneup
>
> How can I fix the "tuneup" status to make it
>
>  X     tuneup
>
> ???
>
> Any help would be apprecheated!

An 'svn update' after changing the externals should do the trick. That
should automatically "pull in" the new external.

-- 
Johan

Re: Problem getting new external into my working copy

Posted by Philip Martin <ph...@wandisco.com>.
Michael Hartmeier <mi...@1und1.de> writes:

> Having "svn up <external-dir>" seems like a proper solution for me.
> Do you want me to file a feature request or bug report?

Yes, please raise an issue.

-- 
Philip

Re: Problem getting new external into my working copy

Posted by Michael Hartmeier <mi...@1und1.de>.
Having "svn up <external-dir>" seems like a proper solution for me.
Do you want me to file a feature request or bug report?
As a work-around, I'll try Philip's fixed revsions.

Thank you all!

Michael


Am 20.02.2012 16:33, schrieb Stefan Sperling:
> On Mon, Feb 20, 2012 at 02:49:54PM +0100, Michael Hartmeier wrote:
>> Hi,
>>
>> I have a working copy that only contains svn:externals, no "normal"
>> files or directories:
>>
>>     $ svn propget svn:externals .
>>     shop https://svn.schlund.de/shop/trunk
>>     popups https://svn.schlund.de/popups/trunk/
>>
>> How can I add a new external without updating the whole working copy?
>>
>> What worked with 1.6: I changed (and committed) the svn:externals to
>>
>>     shop https://svn.schlund.de/shop/trunk
>>     popups https://svn.schlund.de/popups/trunk/
>>     tuneup https://svn.schlund.de/tuneup/trunk/
>>
>> and manually checked out the respective directory with
>>
>>    svn co https://svn.schlund.de/tuneup/trunk/ tuneup
>>
>> However, with Subversion 1.7, this directory is shown with status "?":
>>
>>    $ svn st
>>    X       shop
>>    X       popups
>>    ?       tuneup
>>
>> How can I fix the "tuneup" status to make it
>>
>>    X     tuneup
>>
>> ???
>>
>> Any help would be apprecheated!
> Unfortunately, what you want to do doesn't seem to be working
> at the moment.
>
> The external needs to be recorded in the parent WC during an update
> operation. But if the external working copy already exists and its
> repository root URL matches the one implied by the svn:externals
> property on the parent working copy, the update code doesn't verify
> whether the external is actually registered in the parent WC.
> It just assumes that everything is already splendid.
>
> I am not sure whether we want to support checking out an external manually,
> like you are doing. There are plans to merge meta-data for externals into
> the parent's meta-data store. In that case, the results between checking
> out an external and updating it from the parent WC will be very different.
> Merging a manually checked out external into the parent will then be a lot
> more involved than it would be now. So please always use 'svn update' to
> pull in externals. You are supposed to use 'svn update' for this.
>
> However, passing 'svn update' the path to an external that is defined
> in the svn:external property but does not exist on disk yet doesn't
> seem to work. I think this should be made to work to address your use
> case. Then you could just run 'svn up tuneup' to pull in the external.
>
> So, sorry, I'm afraid that you'll have to update the entire WC until
> this is fixed.


Re: Problem getting new external into my working copy

Posted by Stefan Sperling <st...@elego.de>.
On Mon, Feb 20, 2012 at 02:49:54PM +0100, Michael Hartmeier wrote:
> Hi,
> 
> I have a working copy that only contains svn:externals, no "normal"
> files or directories:
> 
>    $ svn propget svn:externals .
>    shop https://svn.schlund.de/shop/trunk
>    popups https://svn.schlund.de/popups/trunk/
> 
> How can I add a new external without updating the whole working copy?
> 
> What worked with 1.6: I changed (and committed) the svn:externals to
> 
>    shop https://svn.schlund.de/shop/trunk
>    popups https://svn.schlund.de/popups/trunk/
>    tuneup https://svn.schlund.de/tuneup/trunk/
> 
> and manually checked out the respective directory with
> 
>   svn co https://svn.schlund.de/tuneup/trunk/ tuneup
> 
> However, with Subversion 1.7, this directory is shown with status "?":
> 
>   $ svn st
>   X       shop
>   X       popups
>   ?       tuneup
> 
> How can I fix the "tuneup" status to make it
> 
>   X     tuneup
> 
> ???
> 
> Any help would be apprecheated!

Unfortunately, what you want to do doesn't seem to be working
at the moment.

The external needs to be recorded in the parent WC during an update
operation. But if the external working copy already exists and its
repository root URL matches the one implied by the svn:externals
property on the parent working copy, the update code doesn't verify
whether the external is actually registered in the parent WC.
It just assumes that everything is already splendid.

I am not sure whether we want to support checking out an external manually,
like you are doing. There are plans to merge meta-data for externals into
the parent's meta-data store. In that case, the results between checking
out an external and updating it from the parent WC will be very different.
Merging a manually checked out external into the parent will then be a lot
more involved than it would be now. So please always use 'svn update' to
pull in externals. You are supposed to use 'svn update' for this.

However, passing 'svn update' the path to an external that is defined
in the svn:external property but does not exist on disk yet doesn't
seem to work. I think this should be made to work to address your use
case. Then you could just run 'svn up tuneup' to pull in the external.

So, sorry, I'm afraid that you'll have to update the entire WC until
this is fixed.