You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by "Rui, Guo" <ti...@mail.ustc.edu.cn> on 2008/04/08 03:46:38 UTC

Classifying use cases for sparse-directories

Hi,
I tried to present a classification of possible use cases and to fit the
test cases in depth-tests.py into my classification.
Items prefixed with a '=' is test cases coming from depth-tests.py.
Items prefixed with a '!!' is the missed ones that should be filled in.
This is only an outline and lacks of some detail. Please remind me of tricky
corner cases that are easily neglected.

1. Basic checkout
 - empty, files & immediates
   = depth_empty_checkout
   = depth_files_checkout
   = nonrecursive_checkout

2. depth of operation (depth semantics)
 - includes what it should
   = depth_empty_commit 
   = depth_empty_with_file 
   = depth_empty_with_dir
   = depth_immediates_receive_delete
   = depth_immediates_subdir_propset_1
   = depth_immediates_subdir_propset_2 
- exclude what it should not
   = depth_empty_update_bypass_single_file
   = depth_empty_unreceive_delete
- both include & exclude
   = depth_immediates_bring_in_file
   = commit_propmods_with_depth_empty
   = commit_depth_immediates
   = depth_immediates_get_top_file_mod_only
   = depth_immediates_receive_new_dir
   = add_tree_with_depth_files
   = diff_in_depthy_wc
   = status_in_depthy_wc
 - Explicit depth constraint 
   * depth < wc-depth
     = depth_empty_update_bypass_single_file
     = depth_immediates_subdir_propset_2
     = commit_propmods_with_depth_empty
     = diff_in_depthy_wc
     = commit_depth_immediates
     = add_tree_with_depth_files
     = status_in_depthy_wc
     = depthy_update_above_dir_to_be_deleted
   * depth >= wc-depth (limited by wc-depth)
     = depth_empty_update_bypass_single_file

3 Mixed depth by explicitly pull in dir/files 
 - empty + infinity/files
   = depth_empty_with_dir
   = depth_mixed_bring_in_dir
 - files + immediates/empty
   = depth_mixed_bring_in_dir
 - empty + immediates; files+infinity
 - immediates/infinity + others     //only when pulling in new added ones
   !!
 - Explicitly pull in file 
   = depth_empty_commit
   = depth_empty_with_file
   = depth_immediates_bring_in_file
 -Explicitly pull in subdir using --depth
   = add_tree_with_depth_files  //what is the wc-depth of newly added sub
dir?
   !! svn up --depth ommited-dir, check depth?

4. Updating existing wc-depth
 - expanding
   * unified depth (clean wc)
     & Empty=>files
       = depth_update_to_more_depth
       = diff_in_depthy_wc
       = status_in_depthy_wc
       = upgrade_from_above
     & Files=>immediates
       = depth_update_to_more_depth
       = diff_in_depthy_wc
       = status_in_depthy_wc
   * mixed depth (clean wc)
     & immediates + files =>infinity
       = depth_immediates_fill_in_dir
       = depth_update_to_more_depth
     !! ?
 - folding
   * Clean wc
     !! every possible combination to depth, even with explicitly added
files
     & unversioned items
       !!
   * modified wc
     & modification to preserve
       !!
     & modification to discard (unversion it)
       !!
   * updated repos? //These are well tested in section 3, need this?
   * depth-exclude // this is good, but can be postponed...


Rui, Guo. 



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org