use strict; use warnings; use SVN::Client; use File::Path qw(rmtree); my $repo = 'file:///nfs/pdx/disks/mdo_cttr_prod/dev/tmp/repo_test/repo1'; my $path = '/nfs/pdx/disks/mdo_cttr_prod/dev/tmp/repo_test/wc1'; my $client = new SVN::Client( auth => [ SVN::Client::get_username_provider() ], ); # checkout a working copy my $rev = $client->checkout( $repo, $path, 'HEAD', 0 ); # eliminate the client $client = undef; # attempt to remove wc # this produces the warning for being unable to remove directory rmtree $path; #### cannot remove directory for /nfs/pdx/disks/mdo_cttr_prod/dev/tmp/repo_test/wc1/.svn: Directory not empty at tmp.pl line 21. cannot remove directory for /nfs/pdx/disks/mdo_cttr_prod/dev/tmp/repo_test/wc1: Directory not empty at tmp.pl line 21. #### plxcf4060> ls -alrt wc1/.svn total 132 -rw-r----- 1 rptrdev rptrusrs 122880 Oct 6 10:54 .nfs000000000711c5da000000c9 drwxr-s--- 2 rptrdev rptrusrs 4096 Oct 6 10:54 . drwxr-s--- 3 rptrdev rptrusrs 4096 Oct 6 10:54 .. #### # Currently, the below code is unable to release the sqlite # database file used to store data because SVN::Client module has # no perl code for releasing the lock it aquires on the .svn # working copy db.wc file. In order to accomplish this, it seems # that svn_wc_context_destroy must be called. This seems to be # built into the XS code written for the perl bindings, but there # does not seem to be a perl binding written to utilize it. Until # this is resolved, the only way to release the lock on the # database file is to terminate the process that acquired it.