On Apr 19, 2010, at 5:50 PM, Ryan Schmidt wrote:

> 
> On Apr 19, 2010, at 17:39, Ryan Schmidt wrote:
> 
>> On Apr 19, 2010, at 17:04, Omar Ousmane Kadry wrote:
>> 
>>> Not sure if it is the right place for this but I’m looking for a way to 
>>> imitate the cvs behavior when checking out folders.
>>> In cvs:
>>>   cvs co mod1/dir1/dir2/file2
>>>   will result in having:
>>>   mod1/dir1/dir2/file2
>>> 
>>> How can I obtain this hierarchical checkout with SVN?
>> 
>> There isn't anything built into Subversion to do that. You'll have to make 
>> the directories yourself, for example using "mkdir -p".
> 

Maybe I misunderstood the question, but this works for me (with an added 
parameter, the directories are created by checkout)...

svn co https://.../example1/trunk/svn-admin/bin example1/trunk/svn-admin/bin


> Here's a quick unix script "svnco" I wrote which you could use instead of 
> "svn co" to do this. There's no error checking, no handling of special 
> characters (i.e. those that would be percent-encoded in URLs), and maybe 
> other issues, but it shows how it can be done.
> 
> 
> $ cat /path/to/svnco
> #!/bin/bash
> 
> URL="$1"
> 
> MKDIR=mkdir
> SED=sed
> SVN=svn
> 
> REPO_ROOT=$($SVN info "$URL" | $SED -n "s|^Repository Root: ||p")
> PATH_IN_REPO=$(echo "$URL" | $SED "s|^$REPO_ROOT/||")
> $MKDIR -p "$PATH_IN_REPO"
> $SVN co "$URL" "$PATH_IN_REPO"
> 
> 
> $ mkdir test
> $ cd test
> $ /path/to/svnco 
> http://svn.macosforge.org/repository/macports/trunk/dports/devel/subversion
> A    trunk/dports/devel/subversion/files
> A    trunk/dports/devel/subversion/files/patch-path.c.diff
> A    trunk/dports/devel/subversion/files/patch-Makefile.in.diff
> A    trunk/dports/devel/subversion/Portfile
> Checked out revision 66676.
> $ find .
> .
> ./trunk
> ./trunk/dports
> ./trunk/dports/devel
> ./trunk/dports/devel/subversion
> ./trunk/dports/devel/subversion/.svn
> ./trunk/dports/devel/subversion/.svn/all-wcprops
> ./trunk/dports/devel/subversion/.svn/entries
> ./trunk/dports/devel/subversion/.svn/prop-base
> ./trunk/dports/devel/subversion/.svn/prop-base/Portfile.svn-base
> ./trunk/dports/devel/subversion/.svn/props
> ./trunk/dports/devel/subversion/.svn/text-base
> ./trunk/dports/devel/subversion/.svn/text-base/Portfile.svn-base
> ./trunk/dports/devel/subversion/.svn/tmp
> ./trunk/dports/devel/subversion/.svn/tmp/prop-base
> ./trunk/dports/devel/subversion/.svn/tmp/props
> ./trunk/dports/devel/subversion/.svn/tmp/text-base
> ./trunk/dports/devel/subversion/files
> ./trunk/dports/devel/subversion/files/.svn
> ./trunk/dports/devel/subversion/files/.svn/all-wcprops
> ./trunk/dports/devel/subversion/files/.svn/entries
> ./trunk/dports/devel/subversion/files/.svn/prop-base
> ./trunk/dports/devel/subversion/files/.svn/props
> ./trunk/dports/devel/subversion/files/.svn/text-base
> ./trunk/dports/devel/subversion/files/.svn/text-base/patch-Makefile.in.diff.svn-base
> ./trunk/dports/devel/subversion/files/.svn/text-base/patch-path.c.diff.svn-base
> ./trunk/dports/devel/subversion/files/.svn/tmp
> ./trunk/dports/devel/subversion/files/.svn/tmp/prop-base
> ./trunk/dports/devel/subversion/files/.svn/tmp/props
> ./trunk/dports/devel/subversion/files/.svn/tmp/text-base
> ./trunk/dports/devel/subversion/files/patch-Makefile.in.diff
> ./trunk/dports/devel/subversion/files/patch-path.c.diff
> ./trunk/dports/devel/subversion/Portfile
> $
> 
> 
> 
> 
> 

Reply via email to