-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTODO.txt
88 lines (72 loc) · 4.33 KB
/
TODO.txt
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
Common:
- implement svn diff --git support into gen_branch_workingset.bat/sync_branch_workingsset.bat, tests
- scm/svn/* tests
- tests for index_patch_file.bat on patch with "Index: ", "@@ " and "GIT binary patch" sequences not in the beginning of lines
Tests for autodetect (-ad) in svn_gen_branch_workingset.bat:
- in WC directory w/o .svn subdirectory, but w/ .svn subdirectory in parent directory
- in WC directory w/o .svn subdirectory, but w/ .svn subdirectory in child directory
- in local repo (file:///) directory
- in directory not under SVN control (w/o autodetect, and with autodetect but w/o .svn subdirectory inside parent/child directories)
Tests for svn_sync_branch_workingset.bat:
- sync directories between revisions where a directory was an external and removed from externals
- sync directories between revisions where a directory was an external and became internal and vice versa
- sync directories where an external directory removed between revisions but having local changes. Script must stop with an error if the auto revert flag is not set
- sync w/ the fresh checkout flag and w/o must gain equal results if no collisions
- sync with in-a-repository relocation should not leave directories with the S suffix (switched) in the svnversion output
- sync w/ binary files add/remove/change
- sync w/ tree changes (gen must be implemented with "svn diff --git" support)
- sync w/o any flags
- sync w/ an external has local changes but must be removed
- sync external with URL relocation, where patch from the gen contains URL changes
- sync and break in middle of parent wc.db update, where EXTERNALS tabdle processed for insert/update/delete
- sync with local changes in nested externals with the -ignore_nested_externals_local_changes flag set
Test for svn_remove_externals.bat/svn_remove_external.bat/svn_remove_external_dir.bat:
- sync where content of the external directory already partially removed
- sync where the external directory does not have .svn subdirectory
- sync where path to an external directory half removed (for example, dir1/dir2/ext does not exist, but dir1/dir2 is the external path)
Tests for svn_changeset.bat:
- in WC directory w/o .svn subdirectory, but w/ .svn subdirectory in parent directory
- in local repo (file:///) directory
- in directory not under SVN control
Tests for svn_list.bat:
- in WC directory w/o .svn subdirectory, but w/ .svn subdirectory in parent directory
- output from the script on SVN WC directory w/o .svn subdirectory, but w/ .svn subdirectory in parent directory w/ flags -offline -wcroot flags should be the same to the output w/o -offline flag and w/ --depth infinity --non-interactive flags
- in local repo (file:///) directory
- in directory not under SVN control
Add:
- svn_rebase.bat script as addition to the svn relocate command. This will be offline command with direct access to the wc.db sqlite database file to change the repos_path by base path mask to new base path.
Specific test cases:
1. rename with addition:
1. rename versioned files1.txt to file1_2.txt
2. create/copy new file file1.txt with different content
3. file1.txt add to svn
3. commit
Result: the file file1.txt should not be left uncommitted
2. SVN repo structure:
/EXT/A
/EXT/B
/ROOT
/ROOT/V/B
WC structure of externals in the directory X:
A -> /ROOT
B -> /ROOT/V/B
The operations set to test:
1. move content of the /ROOT into /ROOT/A
2. move and rename directory /ROOT/A/V/B to /ROOT/B
3. change external A from /ROOT to /ROOT/A for the directory X
4. change external B from /ROOT/V/B to /ROOT/B for the directory X
5. rename or remove the /X/B directory (created by external update)
4. remove directory /ROOT/A/V as left behind empty after svn move and rename
5. Commit changes as revision Z
6. update to the head
7. update to the Z-1 revision
8. update to the head again
The SVN repo structure in the revision Z:
/EXT/A
/EXT/B
/ROOT/A
/ROOT/B
WC structure of externals in the directory X:
A -> /ROOT/A
B -> /ROOT/B
Result: The WC versioned directory structure in revion Z must be the same as in the revision Z-1, except the /X/B is taken externally w/o intermediate path A/V