#!/usr/bin/perl -w
use strict;
use SVK::Test;
plan tests => 30;
our $output;
# build another tree to be mirrored ourself
my ($xd, $svk) = build_test();
$svk->mkdir('-m' => 'trunk', '//trunk');
my $tree = create_basic_tree ($xd, '//trunk');
my ($copath, $corpath) = get_copath ('view');
$svk->ps ('-m', 'my view', 'svk:view:myview',
'/trunk
-B
-A
# AQ/Q/qz /trunk/A/Q/qz
BSP /trunk/B/S/P
', '//trunk');
is_output($svk, 'ls', ['//^trunk/myview'],
['BSP/', 'C/', 'D/', 'me']);
is_output($svk, 'checkout', ['//^trunk/myview', $copath],
['Syncing //trunk(/trunk) in '.__($corpath)." to 4.",
map { __($_) } "A $copath/me",
"A $copath/C",
"A $copath/C/R",
"A $copath/D",
"A $copath/D/de",
"A $copath/BSP",
"A $copath/BSP/pe",
" U $copath"]);
TODO: {
local $TODO = 'intermediate directory for A/Q/qz reviving map.';
ok (-d "$copath/AQ/Q");
}
ok (!-e "$copath/A/Q/qu");
ok (-e "$copath/BSP");
is_output ($svk, 'status', [$copath], []);
append_file ("$copath/BSP/pe", "foobar\n");
is_output ($svk, 'st', [$copath],
[__"M $copath/BSP/pe"]);
overwrite_file ("$copath/BSP/newfile", "foobar\n");
is_output($svk, 'add', ["$copath/BSP/newfile"],
[__"A $copath/BSP/newfile"]);
is_output($svk, 'rm', ["$copath/D"],
[map {__($_)}
"D $copath/D",
"D $copath/D/de"]);
is_output($svk, 'st', [$copath],
[map {__($_)}
"M $copath/BSP/pe",
"A $copath/BSP/newfile",
"D $copath/D",
"D $copath/D/de",
]);
is_output ($svk, 'revert', ['-R', $copath],
[__("Reverted $copath/BSP/pe"),
__("Reverted $copath/BSP/newfile"),
__("Reverted $copath/D"),
__("Reverted $copath/D/de")]);
$svk->add ("$copath/BSP/newfile");
append_file ("$copath/BSP/pe", "foobar\n");
is_output($svk, 'commit', ['-m', 'commit from view', $copath],
['Committed revision 5.']);
is_output($svk, 'st', [$copath], []);
is_output($svk, 'up', [$copath],
['Syncing //^trunk/myview@4(/trunk) in '.__($corpath)." to 5."]);
$svk->diff('-r4:5', '//');
rmtree [$copath];
$svk->checkout ('//trunk', $copath);
ok(-e "$copath/B/S/P/newfile", 'file created via view commit');
is_output($svk, 'switch', ['//^trunk/myview', $copath],
[ "Syncing //trunk(/trunk) in $corpath to 5.",
map { __($_) }
"A $copath/BSP",
"A $copath/BSP/pe",
"A $copath/BSP/newfile",
"D $copath/A",
"D $copath/B"]);
is_output($svk, 'up', ['-r3', "$copath/BSP"],
['Syncing //^trunk/myview@5(/trunk/BSP) in '.__($corpath."/BSP").' to 3.',
__("U $copath/BSP/pe"),
__("D $copath/BSP/newfile")]);
is_output($svk, 'up', [$copath],
['Syncing //^trunk/myview@5(/trunk) in '.__($corpath).' to 5.',
__("U $copath/BSP/pe"),
__("A $copath/BSP/newfile")]);
is_output($svk, 'up', [-r2 => "$copath/BSP"],
['Syncing //^trunk/myview@5(/trunk) in '.__($corpath).' to 2.',
__("D $copath/BSP")]);
is_output($svk, 'st', [$copath], []);
is_output($svk, 'up', [$copath],
['Syncing //^trunk/myview@5(/trunk) in '.__($corpath).' to 5.',
__("A $copath/BSP"),
__("A $copath/BSP/pe"),
__("A $copath/BSP/newfile")]);
is_output($svk, 'up', ['-r4', "$copath/BSP"],
['Syncing //^trunk/myview@5(/trunk/BSP) in '.__($corpath."/BSP").' to 4.',
__("U $copath/BSP/pe"),
__("D $copath/BSP/newfile")]);
$svk->ps ('-m', 'A view', 'svk:view:view-A',
'/trunk/A
-Q
qz Q/qz
BSP /trunk/B/S/P
', '//trunk/A');
is_output($svk, 'ls', ['//^trunk/A/view-A'],
['BSP/', 'be', 'qz']);
$svk->ps ('-m', 'A view', 'svk:view:view-A',
'/trunk/A
-*
X Q
', '//trunk/A');
rmtree [$copath];
is_output($svk, 'co', ['//^trunk/A/view-A', $copath],
['Syncing //trunk/A(/trunk/A) in '.__($corpath).' to 7.',
__("A $copath/X"),
__("A $copath/X/qu"),
__("A $copath/X/qz"),
__(" U $copath")
]);
is_output($svk, 'rm', ["$copath/X/qz"],
[__("D $copath/X/qz")]);
is_output($svk, 'ci', [-m => 'foo', $copath],
['Committed revision 8.']);
overwrite_file("$copath/X/orz", "orz\n");
is_output($svk, 'add', ["$copath/X/orz"],
[__("A $copath/X/orz")]);
is_output($svk, 'rm', ["$copath/X/qu"],
[__("D $copath/X/qu")]);
is_output($svk, 'ci', [-m => 'foo', $copath],
['Committed revision 9.']);
is_output($svk, 'up', ["$copath"],
['Syncing //^trunk/A/view-A@7(/trunk/A) in '.__($corpath).' to 9.']);
TODO: {
local $TODO = 'blame in view.';
$svk->blame("$copath/X/orz");
#warn $output;
$svk->blame('//^trunk/A/view-A/X/orz@7');
#warn $output;
}