You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Steve Folly <st...@blueyonder.co.uk> on 2005/11/10 23:10:01 UTC

More partial checkout woes

Hi,

I've given up on trying to use svn:externals to mimic partial  
checkouts - it just got too nasty when I started to consider tags and  
branches.

However, I'm now looking at non-recursive checkouts and updates to  
try and achieve the same effect. But still with some problems...

Consider the following simple repository structure:

	trunk/
		dira/
		dirb/
		dirc/
		dird/
		dire/
	tags/
	branches/


I want a working copy with just dira, dirb and dire:

	svn -N co svn://svn.example.com/ wc
	cd wc
	svn -N update trunk tags
	svn update trunk/dira trunk/dirb trunk/dire

So far so good. So I do some commits and now want to create a tag  
with just these three directories.

Looking at the 4 svn copy possibilities:

URL -> URL : Not useful, since that will include dirc and dird in the  
copy.
URL -> WC : Not useful, files are already in working copy

WC  -> URL:  immediately commit a copy of WC to URL

     $ cd wc
     $ svn cp trunk svn://svn.example.com/tags/1.0

     Committed revision 31.

Unfortunately, includes trunk/dirc and trunk/dird in tags/1.0

WC  -> WC:   copy and schedule for addition (with history)

     $ cd wc
     $ svn cp trunk tags/1.0
     A         tags/1.0
     $ ls tags/1.0
     dira            dirb            dire
     svn commit -m "released 1.0" tags/1.0
     Adding         tags/1.0

     Committed revision 32.

This would appear to be the best solution. And, indeed it does only  
copy those directories that exist under trunk at the time of the copy.
However, if we now checkout tags/1.0:

    $ svn co svn://svn.example.com/tags/1.0
    A    1.0/dira
    A    1.0/dirb
    A    1.0/dirc
    A    1.0/dird
    A    1.0/dire

We see that suddenly dirc and dird have crept in. How did that happen?
Is this a bug I'm seeing here? dirc and dird were never in the  
working copy, so how did they get committed?

Is it just that I'm not fully understanding Subversion?  Thanks for  
any advice.

(BTW, this is using 1.2.3 on Mac OS X).


-- 
Regards,
Steve.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: More partial checkout woes

Posted by Joshua Varner <jl...@gmail.com>.
On 11/10/05, Steve Folly <st...@blueyonder.co.uk> wrote:
> Hi,
>
> I've given up on trying to use svn:externals to mimic partial
> checkouts - it just got too nasty when I started to consider tags and
> branches.
>
> However, I'm now looking at non-recursive checkouts and updates to
> try and achieve the same effect. But still with some problems...

svn checkout -N is currently broken.
see http://subversion.tigris.org/issues/show_bug.cgi?id=695.
You are seeing a manifestation of this. The wc doesn't realize that
there are only those directories locally so it gets messed up when
you do the copy. What you could do is copy the subdirectories individually
into the tag, then commit it. It was the copy of trunk that was the
problem.

Josh

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org