Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Subversion Wiki" for 
change notification.

The "TreeConflictTests" page has been changed by JohanCorveleyn:
https://wiki.apache.org/subversion/TreeConflictTests?action=diff&rev1=2&rev2=3

Comment:
Update to current test list, and use icons for the XFail tests

  
  Below you can find, per "operation", a matrix of tree conflict tests, so we 
have an idea of how much work is still left to increase test coverage. The 
matrix row headers give the "local" situation, the column headers the "incoming 
change". These are only meant to be broad categories, an actual test may build 
up a very complex situation (but still be part of a certain category). The 
categories might need to be extended.
  
- The numbers refer to the test numbers. An (X) indicates an XFail test.
+ The numbers refer to the test numbers. An {X} indicates an XFail test.
  
  TODO:
-  * Add some short test summary with each test number (directly in the cell, 
or linked to a footnote?). While we're at it, make it possible to add 
additional comments.
+  * Make it possible to add additional comments related to specific tests (as 
a footnote?).
   * Extend the matrices with extra categories. For instance, for "merge" I'm 
thinking of using "add_f,edit_f" to indicate "f was added on the branch 
(anything before the comma) and locally edited (anything behind the comma)". In 
that case ",add_f" would be "branch is in sync, but has added f as a local 
uncommitted change"
   * Create "cherrypick" as a specific "operation" with its own matrix? Here we 
could also create additional categories for incoming, to discern between what 
happened on trunk before the cherrypick-rev, and what's part of the 
cherrypick-rev ("mv_f,edit_f" then means: file was moved on trunk, and edited, 
and only the edit is cherrypick-merged).
   * Create a script that can parse our C (and python?) tests, or their --list 
output. To help the script we could add some sort of tagging to our tests (in 
the test description), so it knows to what part of what matrix the test 
belongs. For instance: "[add_f-add_f] incoming add file ignore".
  
  === merge ===
  
- ||'''local \ 
incom'''||'''edit_f'''||'''add_f'''||'''add_d'''||'''rm_f'''||'''rm_d'''||'''mv_f'''||'''mv_d^f'''||
+ ||'''loc \ 
inc'''||'''edit_f'''||'''add_f'''||'''add_d'''||'''rm_f'''||'''rm_d'''||'''mv_f'''||'''mv_d^f'''||
- ||'''edit_f''' ||            ||           ||           || 15. resolve: 
ignore<<BR>>16. resolve: accept<<BR>>29. incoming replace: options ||      || 
17. resolve: text merge<<BR>>25. resolve: merge with text conflict (X)<<BR>>27. 
chained move - resolve: text merge || 20. incoming move dir: options 
(X)<<BR>>21. with local edit<<BR>>22. with local add<<BR>>28. with moved file 
(X) ||
+ ||'''edit_f''' ||            ||           ||           || 10. resolve: 
ignore<<BR>>11. resolve: accept<<BR>>24. incoming replace: options ||      || 
12. resolve: text merge<<BR>>20. {X} resolve: merge with text conflict<<BR>>22. 
chained move - resolve: text merge || 15. {X} incoming move dir: 
options<<BR>>16. with local edit<<BR>>17. with local add<<BR>>23. {X} with 
moved file ||
  ||'''add_f'''  ||            || 1. resolve: ignore<<BR>>2. resolve: text 
merge<<BR>>3. resolve: replace<<BR>>4. resolve: replace and merge ||       ||   
   ||      ||      ||        ||
- ||'''add_d'''  ||            ||           || 8. resolve: ignore<<BR>>9. 
resolve: merge<<BR>>10. with file change - resolve: merge<<BR>>11. with move 
history - resolve: merge<<BR>>12. resolve: replace<<BR>>13. resolve: replace 
and merge (X)<<BR>>14. with file change - resolve: replace    ||      ||      
||      ||        ||
+ ||'''add_d'''  ||            ||           || 5. with file change - resolve: 
merge<<BR>>6. with move history - resolve: merge<<BR>>7. resolve: replace<<BR>> 
8. {X} resolve: replace and merge<<BR>>9. with file change - resolve: replace   
 ||      ||      ||      ||        ||
- ||'''rm_f'''   ||            ||           ||           || 23. resolve: accept 
 ||          ||          ||            ||
+ ||'''rm_f'''   ||            ||           ||           || 18. resolve: accept 
 ||          ||          ||            ||
  ||'''rm_d'''   ||            ||           ||           ||          ||         
 ||          ||            ||
- ||'''mv_f'''   || 26. options (X)       ||           ||           ||          
||          ||          ||            ||
+ ||'''mv_f'''   || 21. {X} options ||           ||           ||          ||    
      ||          ||            ||
  ||'''mv_d^f''' ||            ||           ||           ||          ||         
 ||          ||            ||
  
  === update ===
  
- ||'''local \ 
incom'''||'''edit_f'''||'''add_f'''||'''add_d'''||'''rm_f'''||'''rm_d'''||'''mv_f'''||'''mv_d^f'''||
+ ||'''loc \ 
inc'''||'''edit_f'''||'''add_f'''||'''add_d'''||'''rm_f'''||'''rm_d'''||'''mv_f'''||'''mv_d^f'''||
- ||'''edit_f''' ||            ||           ||           ||          ||         
 || 18. resolve: text merge       ||            ||
+ ||'''edit_f''' ||            ||           ||           ||          ||         
 || 13. resolve: text merge ||            ||
- ||'''add_f'''  ||            || 5. resolve: ignore<<BR>>6. resolve: replace  
||           ||          ||          ||          ||            ||
+ ||'''add_f'''  ||            ||           ||           ||          ||         
 ||          ||            ||
  ||'''add_d'''  ||            ||           ||           ||          ||         
 ||          ||            ||
  ||'''rm_f'''   ||            ||           ||           ||          ||         
 ||          ||            ||
  ||'''rm_d'''   ||            ||           ||           ||          ||         
 ||          ||            ||
@@ -36, +36 @@

  
  === switch ===
  
- ||'''local \ 
incom'''||'''edit_f'''||'''add_f'''||'''add_d'''||'''rm_f'''||'''rm_d'''||'''mv_f'''||'''mv_d^f'''||
+ ||'''loc \ 
inc'''||'''edit_f'''||'''add_f'''||'''add_d'''||'''rm_f'''||'''rm_d'''||'''mv_f'''||'''mv_d^f'''||
- ||'''edit_f''' ||            ||           ||           ||          ||         
 || 19. resolve: text merge ||            ||
+ ||'''edit_f''' ||            ||           ||           ||          ||         
 || 14. resolve: text merge ||            ||
- ||'''add_f'''  ||            || 7. resolve: ignore ||           ||          
||          ||          ||            ||
+ ||'''add_f'''  ||            ||           ||           ||          ||         
 ||          ||            ||
  ||'''add_d'''  ||            ||           ||           ||          ||         
 ||          ||            ||
  ||'''rm_f'''   ||            ||           ||           ||          ||         
 ||          ||            ||
  ||'''rm_d'''   ||            ||           ||           ||          ||         
 ||          ||            ||
  ||'''mv_f'''   ||            ||           ||           ||          ||         
 ||          ||            ||
  ||'''mv_d^f''' ||            ||           ||           ||          ||         
 ||          ||            ||
  
+ ----
+ Output of conflicts-test --list that was used for the above table:
+ {{{
+ Test #  Mode   Test Description
+ ------  -----  ----------------
+    1           merge incoming add file text merge
+    2           merge incoming add file replace and merge
+    3           merge incoming add dir ignore
+    4           merge incoming add dir merge
+    5           merge incoming add dir merge with file change
+    6           merge incoming add dir merge with move history
+    7           merge incoming add dir replace
+    8    XFAIL  merge incoming add dir replace and merge
+    9           merge incoming add dir replace with file change
+   10           merge incoming delete ignore
+   11           merge incoming delete accept
+   12           merge incoming move file text merge
+   13           update incoming move file text merge
+   14           switch incoming move file text merge
+   15    XFAIL  merge incoming move dir
+   16           merge incoming move dir with local edit
+   17           merge incoming move dir with local add
+   18           merge incoming delete vs local delete
+   19           merge file property
+   20    XFAIL  merge incoming move file merge with text conflict
+   21    XFAIL  merge incoming edit for a moved-away working file
+   22           merge incoming chained move vs local edit
+   23    XFAIL  merge incoming moved dir with moved file
+   24           merge incoming file move with new line of history
+ }}}
+ 

Reply via email to