summaryrefslogtreecommitdiff
path: root/Build/cdbuild/place
diff options
context:
space:
mode:
Diffstat (limited to 'Build/cdbuild/place')
-rwxr-xr-xBuild/cdbuild/place12
1 files changed, 10 insertions, 2 deletions
diff --git a/Build/cdbuild/place b/Build/cdbuild/place
index e8cd110ad08..00854662692 100755
--- a/Build/cdbuild/place
+++ b/Build/cdbuild/place
@@ -54,7 +54,7 @@ else {
$newpackage=1;
}
-xchdir ("$mydir/$package");
+&xchdir ("$mydir/$package");
find (\&files,".");
foreach $file (sort keys %Old) {
print "* $file: [retained=$New{$file}]\n";
@@ -169,7 +169,8 @@ sub files
# add a file to the repository. for svn, we also have to add the
-# containing dir, if it is new.
+# containing dir, and the parent of that dir, if they are new.
+# (Should really just traverse )
#
sub add_file
{
@@ -177,6 +178,13 @@ sub add_file
my $newdir = dirname ($newfile);
+ # when it's needed, parent must come first, else have svn "not working copy".
+ my $parentdir = dirname ($newdir);
+ unless (-d "$parentdir/.svn") {
+ &my_system ("svn add -N $parentdir");
+ $dirs{$parentdir}++;
+ }
+
unless (-d "$newdir/.svn") {
&my_system ("svn add -N $newdir");
}