-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy path05svm-rm.t
72 lines (52 loc) · 2.16 KB
/
05svm-rm.t
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#!/usr/bin/perl -w
use strict;
use Test::More;
use SVK::Test;
eval { require SVN::Mirror; 1 } or plan skip_all => 'require SVN::Mirror';
plan tests => 11;
# build another tree to be mirrored ourself
my ($xd, $svk) = build_test('svmrm');
my ($copath, $corpath) = get_copath ('svmrm');
my $tree = create_basic_tree ($xd, '/svmrm/');
my ($test_repospath, $test_a_path, $test_repos) = $xd->find_repos ('/svmrm/A', 1);
my $uri = uri($test_repospath);
$svk->mirror ('//rm/m', $uri.($test_a_path eq '/' ? '' : $test_a_path));
is_output($svk, 'rm', ['-m', 'rm parent of mirrored path', '//rm'],
['//rm contains mirror, remove explicitly: //rm/m']);
$svk->rm ('-m', 'rm parent of mirrored path', '//rm/m');
is_output ($svk, 'propget', ['svm:mirror', '//'], []);
$svk->mirror ('//rm/m', $uri.($test_a_path eq '/' ? '' : $test_a_path));
$svk->checkout ('//', $copath);
chdir ($copath);
is_output ($svk, 'rm', ['rm'],
['//rm contains mirror, remove explicitly: //rm/m']);
$svk->mkdir(-p => "rm/m/foo/bar");
$svk->mkdir(-p => "rm/unrelated");
is_output($svk, 'rm', ["rm/m/foo/bar"],
[__("rm/m/foo/bar is scheduled; use '--force' to go ahead.")]);
is_output($svk, 'rm', ["rm/m/foo/bar", "rm/unrelated"],
['//rm contains mirror, remove explicitly: //rm/m']);
is_output($svk, 'rm', ['--force', "rm/m/foo/bar"],
[__("D rm/m/foo/bar")]);
is_output($svk, 'rm', [-m => 'bye', '--direct', '//rm/m'],
['Committed revision 5.']);
TODO: {
local $TODO = 'detach a obstructed mirror source.';
is_output($svk, 'mi', ['--detach', '//rm/m'],
['Committed revision 6.',
"Mirror path '/rm/m' detached"]);
is_output ($svk, 'propget', ['svm:mirror', '//'], []);
}
# reset tests
$svk->ps(-m => 'bandaid.', 'svm:mirror', '', '//');
$svk->mirror('//rm/m2', "$uri/A");
$svk->mirror('//rm/m1', "$uri/B");
$svk->sync('-a');
is_output($svk, 'rm', [-m => 'try delete', '//rm/m2/Q', '///rm/m1/S/P'],
['Different source.']);
is_output($svk, 'rm', [-m => 'try delete', '//rm/m2/Q/qu', '///rm/m2/Q/qz'],
["Merging back to mirror source $uri/A.",
'Merge back committed as revision 3.',
"Syncing $uri/A",
'Retrieving log information from 3 to 3',
'Committed revision 13 from revision 3.']);