[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Difference between 'svn update' and 'svn checkout'

From: Nico Kadel-Garcia <nkadel_at_gmail.com>
Date: Fri, 11 Nov 2011 22:31:04 -0500

On Fri, Nov 11, 2011 at 10:06 PM, Blair Zajac <blair_at_orcaware.com> wrote:
> On 11/11/2011 06:41 PM, Andy Levy wrote:
>>
>> On Fri, Nov 11, 2011 at 21:12, Welington Rodrigues Braga
>> <welrbraga_at_welrbraga.eti.br>  wrote:
>>>
>>> Hi guys,
>>>
>>> I've just started to use Subversion a few months ago and I am really
>>> are asking me why I had never used it before but it is not the reason
>>> of my contact. To be honest I am trying to to do a post-commit script
>>> that automatically sincronizes a given workcopy when any of my users
>>> commits their modifications to my repository.
>>>
>>> Although it's is ok and working fine (at least in my simples test), I
>>> did not put in production yet because I have a doubt that neither
>>> Subversion manual or Google were able to answer me. I didn't find any
>>> difference beetwen 'svn update' and 'svn checkout' commands which is
>>> the main function of my post-commit script.
>>>
>>> Nowadays I'm using 'svn checkout' and it is working, like I said, but
>>> I'm not sure if I'm losing some functionality with this option.
>>>
>>> Can anyone help me and answer my question?
>>
>> svn checkout creates a new working copy.
>>
>> svn update updates an existing working copy.
>
> As Andy said, but there is some special behavior in checkout.  If you run
> svn checkout on top of an existing working copy it'll work if the URL is the
> same as the working copy URLs, but otherwise fail, so this may explain the
> behavior you see.  But if you did
>
> svn co $URL1 dir
> svn co $URL2 dir
>
> the second one would fail.
>
> It's best to do something like this
>
> if test -d dir; then
>  svn up dir
> else
>  svn co $URL dir
> fi

Or, if you actually want a pristine working copy with no local edits
left in place:

  rm -rf $dir
  svn co $URL $dir

I once had a fascinating discussion of a unique local source control
and build system that had been working for some time, but did repeated
"updates" and checkouts that simply did not do what the author thought
it did. Since the system would look for any files with certain
suffixes and process them, neither 'update' nor 'checkout' would be
sufficient to make sure any local config files were cleared. And in
the cases above, neither would clear any files excluded by
'svn:ignore'.

This led to some confusion.
Received on 2011-11-12 04:31:38 CET

This is an archived mail posted to the Subversion Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.