Bug#357617: tries to write files in weird places
Marc 'HE' Brockschmidt
he at debian.org
Sat Mar 18 16:20:05 UTC 2006
Package: libsvn-core-perl
Version: 1.2.3dfsg1-3
Severity: important
Heya,
I had fun debugging a weird work problem today. The code, old version:
my $tempdir = tempdir ( "osfconf.XXXXXX", DIR => "/tmp/", CLEANUP => 1);
my $co_tmpdir = tempdir("svn-co.XXXXXX", DIR => $tempdir, CLEANUP => 1);
$ctx->checkout($base_repo_URI, $co_tmpdir, 'HEAD', 0);
#SVN SUCKS SUCKS SUCKS SUCKS, it won't even diff if the timestamps don't differ:
sleep 1;
$ctx->merge($base_repo_URI, 'HEAD', $base_repo_URI, $revision, $co_tmpdir, 1, 1, 0, 0);
my $answer = $ctx->commit($co_tmpdir, 0);
This is part of a CGI, so let's try to use it:
[Sat Mar 18 16:38:26 2006] [error] [client 192.168.1.123] Permission denied: Could not save file: Can't open 'tmp': Permission denied at /usr/share/osf/OSF/Config.pm line 481, referer: http://192.168.1.214/config_restore.cgi
Hrmpfl. After a few weird tries, I found this, working solution:
my $tempdir = tempdir ( "osfconf.XXXXXX", DIR => "/tmp/", CLEANUP => 1);
my $co_tmpdir = tempdir("svn-co.XXXXXX", DIR => $tempdir, CLEANUP => 1);
$ctx->checkout($base_repo_URI, $co_tmpdir, 'HEAD', 0);
#SVN SUCKS SUCKS SUCKS SUCKS, it won't even diff if the timestamps don't differ:
sleep 1;
chdir $tempdir;
$ctx->merge($base_repo_URI, 'HEAD', $base_repo_URI, $revision, $co_tmpdir, 1, 1, 0, 0);
my $answer = $ctx->commit($co_tmpdir, 0);
I guess it tries to use . for some tempfile when doing the merge. Which is, err,
not a good idea. The very helpful error message (absolute path would be nice) gives
extra-frustration points.
Marc
More information about the pkg-subversion-maintainers
mailing list