Hi,
This is a heads-up on my plans wrt incomplete-directories. Suggestions, comments(, volunteers ;) welcome. It would be great if a full-time committer can sign-up with me on this.
With Karl on vacation, the incomplete-directories branch needs attention. I took a look at it, and the broad status is as following.
1. The depth-states as discussed in the svn dev summit (depth-empty, depth-files, depth-immediates, depth-infinity) is only in documentation - not implemented yet
2. Work is pending on 'feature complete' with the current depth implementation - Please refer to the README.branch, section 5 (Current Status) for details.
3. Decisions on items like client-server interoperability have not yet been discussed exhaustively.
4. The tests are failing. Mostly untested over ra_dav.
Am planning to get started by fixing the tests in accordance with the existing code. There are two steps as I visualize this happening:
- Fix tests to pass over local, svn and dav (in that order)
- Write new depth tests for the desired implementation (with XFAIL) - I think it is very important to have a test driven feature branch. This way, even if am not able to focus on the code tomorrow, a newcomer will know what the expected behavior of the feature is, over yet-to-be-implemented features.
Further steps would be tackling steps 1, 2, 3 above.
Pasted below are the tests that fail for me over ra_local on this branch - just to give you an idea of how much needs to be done, in hopes of enticing volunteers to start cracking down on the failures ;)
Regards,
Madan.
----------------------------8<----------------------------------------8<----------------------
At least one test FAILED, checking /home/madan/wc/incomplete-directories/tests.log
FAIL: getopt_tests.py 7: run svn help log switch
FAIL: basic_tests.py 17: basic ls
FAIL: basic_tests.py 23: basic info command
FAIL: basic_tests.py 32: basic ls of repos with space in name
FAIL: checkout_tests.py 1: co with obstructions should fail without --forceFAIL: checkout_tests.py 2: forced co fails if a dir obstructs a file
FAIL: checkout_tests.py 3: forced co fails if a file obstructs a dir
FAIL: checkout_tests.py 4: co with faux obstructions ok with --force
FAIL: checkout_tests.py 5: co with real obstructions ok with --force
FAIL: checkout_tests.py 6: co with real obstructions and unversioned files
FAIL: checkout_tests.py 7: forced co with versioned obstruction
FAIL: checkout_tests.py 8: import and checkout
FAIL: checkout_tests.py 13: co handles obstructing paths scheduled for add
FAIL: commit_tests.py 1: commit one file
FAIL: commit_tests.py 2: commit one newly added file
FAIL: commit_tests.py 3: commit one newly added binary file
FAIL: commit_tests.py 4: commit multiple targets
FAIL: commit_tests.py 5: commit multiple targets, 2nd variation
FAIL: commit_tests.py 6: commit wc_dir/A/D -- includes D. (anchor=A, tgt=D)FAIL: commit_tests.py 7: commit wc_dir -- (anchor=wc_dir, tgt={})
FAIL: commit_tests.py 8: committing unversioned object produces error
FAIL: commit_tests.py 9: replace two nested dirs, verify empty contents
FAIL: commit_tests.py 10: hudson prob 1.0: delete file, commit, update
FAIL: commit_tests.py 11: hudson prob 1.1: delete dir, commit, update
FAIL: commit_tests.py 12: hudson prob 1.2: delete, commit, re-add, commit
FAIL: commit_tests.py 13: hudson prob 2.0: prop commit on old dir fails
FAIL: commit_tests.py 14: hudson prob 2.1: move files, update empty dir
FAIL: commit_tests.py 16: commit mixed-rev wc (no erroneous merge error)
FAIL: commit_tests.py 17: commit files and dirs with URI-unsafe characters
FAIL: commit_tests.py 18: commit deleted yet edited files
FAIL: commit_tests.py 19: commit a file inside dir scheduled for addition
FAIL: commit_tests.py 20: commit deleted (and missing) file
FAIL: commit_tests.py 21: issue 644 attempt to add a file twice
FAIL: commit_tests.py 22: commit from a dir with a longer name than the wc
FAIL: commit_tests.py 23: try to commit when directory is locked
FAIL: commit_tests.py 24: commit the current directory
FAIL: commit_tests.py 25: attempted commit from multiple wc fails
FAIL: commit_tests.py 26: commit named targets with -N (issues #1195, #1239)
FAIL: commit_tests.py 27: commit with conflicts and check txn in repo
FAIL: commit_tests.py 28: commit deletion of out-of-date file or dir
FAIL: commit_tests.py 29: commit with a log message containing bad data
FAIL: commit_tests.py 30: commit with invalid external editor cmd
FAIL: commit_tests.py 31: commit with mods in schedule delete
FAIL: commit_tests.py 32: tabs in paths
FAIL: commit_tests.py 33: local ops should not be treated like commits
FAIL: commit_tests.py 34: post commit hook failure case testing
FAIL: commit_tests.py 35: commit two targets, both the same folder
FAIL: commit_tests.py 36: commit files with inconsistent eol should fail
FAIL: update_tests.py 1: update a locally-modified binary file
FAIL: update_tests.py 2: update to an old revision of a binary files
FAIL: update_tests.py 4: update to revision 0
FAIL: update_tests.py 7: update that deletes modified files
FAIL: update_tests.py 22: update a schedule-add directory
FAIL: update_tests.py 23: update target that was added in a future rev
FAIL: update_tests.py 31: forced up fails with some types of obstructions
FAIL: update_tests.py 34: update handles obstructing paths scheduled for add
FAIL: switch_tests.py 1: test some basic switching operations
FAIL: switch_tests.py 2: commits after some basic switching operations
FAIL: switch_tests.py 3: update wc that contains switched things
FAIL: switch_tests.py 4: reverse update wc that contains switched things
FAIL: switch_tests.py 5: update switched wc things to HEAD
FAIL: switch_tests.py 6: reverse update switched wc things to an older rev
FAIL: switch_tests.py 9: switch that deletes a sub-directory
FAIL: switch_tests.py 15: commit with mods below switch
FAIL: switch_tests.py 21: forced switch fails with some types of obstuctions
FAIL: prop_tests.py 1: write/read props in wc only (ps, pl, pdel, pe)
FAIL: prop_tests.py 2: commit properties
FAIL: prop_tests.py 3: receive properties via update
FAIL: prop_tests.py 6: update with conflicting props
FAIL: prop_tests.py 9: props work when reverting a replacement
FAIL: prop_tests.py 10: try to set inappropriate props
FAIL: prop_tests.py 11: file copies inherit (not re-derive) special props
FAIL: prop_tests.py 13: some svn: properties should be converted
FAIL: prop_tests.py 14: test binary property support
FAIL: prop_tests.py 16: property operations on an URL
FAIL: prop_tests.py 17: removal of schedule added file with properties
FAIL: prop_tests.py 18: receive properties on the wc root via update
FAIL: schedule_tests.py 4: revert: add some executable files
FAIL: log_tests.py 8: 'svn log wc_target@N'
FAIL: log_tests.py 9: 'svn log target@N' when target removed from HEAD
FAIL: log_tests.py 14: run log on an @BASE target
FAIL: copy_tests.py 6: copy and tree and modify before commit
FAIL: copy_tests.py 7: copy files with properties
FAIL: copy_tests.py 8: copy a tree and delete part of it before commit
FAIL: copy_tests.py 11: working-copy to repository copy
FAIL: copy_tests.py 12: repository to working-copy copy
FAIL: copy_tests.py 24: wc to wc copy with deleted=true items
FAIL: copy_tests.py 31: svn cp PATH PATH replace file with props
FAIL: copy_tests.py 33: svn cp URL PATH replace file with props
FAIL: copy_tests.py 41: move a file twice within a moved dir
FAIL: copy_tests.py 42: move a file out of a moved dir
FAIL: copy_tests.py 43: move a dir twice within a moved dir
FAIL: copy_tests.py 44: move a dir out of a moved dir
FAIL: diff_tests.py 3: add a file in an added directory
FAIL: diff_tests.py 5: multiple revisions diff'd forwards and backwards
FAIL: diff_tests.py 6: non-recursive behaviour
FAIL: diff_tests.py 11: don't diff file marked as binary type
FAIL: diff_tests.py 17: diff for branches
FAIL: diff_tests.py 21: check for omitted prefix in path component
FAIL: diff_tests.py 29: diff to BASE with local property mods
FAIL: diff_tests.py 31: diff a property change plus a local prop edit
FAIL: diff_tests.py 37: basic diff summarize
FAIL: externals_tests.py 1: test checkouts with externals
FAIL: externals_tests.py 2: update to receive a new external module
FAIL: externals_tests.py 3: update to lose an external module
FAIL: externals_tests.py 4: update change to an unmodified external module
FAIL: externals_tests.py 5: update changes to a modified external module
FAIL: externals_tests.py 6: update changes under an external module
FAIL: externals_tests.py 7: commit and update additional externals
FAIL: externals_tests.py 9: test exports with externals
FAIL: merge_tests.py 1: performing a merge, with mixed results
FAIL: merge_tests.py 2: merge and add new files/dirs with history
FAIL: merge_tests.py 3: merge that deletes items
FAIL: merge_tests.py 4: some simple property merges
FAIL: merge_tests.py 7: merge should not die if a target file is absent
FAIL: merge_tests.py 8: merge on deleted directory in target
FAIL: merge_tests.py 9: merging similar trees ancestrally unrelated
FAIL: merge_tests.py 10: merge operations using PREV revision
FAIL: merge_tests.py 11: merge change into unchanged binary file
FAIL: merge_tests.py 12: 3-way merge of 'file add' into existing binary
FAIL: merge_tests.py 15: diff after merge that creates a new file
FAIL: merge_tests.py 16: merge should skip over unversioned obstructions
FAIL: merge_tests.py 17: merge into missing must not break working copy
FAIL: merge_tests.py 18: merge --dry-run adding a new file with props
FAIL: merge_tests.py 20: merge with funny characters (issue #1905)
FAIL: merge_tests.py 21: merge changes to keyword expansion property
FAIL: merge_tests.py 22: merge prop change into deleted target
FAIL: merge_tests.py 24: merge between branches (Issue #2222)
FAIL: merge_tests.py 25: property merges don't overwrite existing prop-modsFAIL: merge_tests.py 26: property merge conflict even without local mods
FAIL: merge_tests.py 27: undo, then redo a property merge
FAIL: merge_tests.py 28: cherry-pick a dependent change, get conflict
FAIL: merge_tests.py 29: merge a replacement of a file
FAIL: merge_tests.py 30: merge a replacement of a directory
FAIL: merge_tests.py 31: merge a replacement of a file to mixed rev wc
FAIL: merge_tests.py 32: merge an added dir on a deleted dir in target
FAIL: merge_tests.py 33: ignore whitespace when merging
FAIL: merge_tests.py 34: ignore eolstyle when merging
FAIL: merge_tests.py 35: conflict from merge of add over versioned file
FAIL: merge_tests.py 36: conflict markers should match the file's eol styleFAIL: revert_tests.py 1: revert relative to wc root
FAIL: revert_tests.py 5: revert svn cp PATH PATH replace file with props
FAIL: revert_tests.py 6: revert a merge replacement of file with history
FAIL: revert_tests.py 7: revert svn cp URL PATH replace file with props
FAIL: stat_tests.py 8: status for unignored file and directory
FAIL: stat_tests.py 22: status on conflicted added file
FAIL: stat_tests.py 23: status with inconsistent eol style
FAIL: stat_tests.py 24: run 'status -u' variations w/ incoming propchanges
FAIL: stat_tests.py 25: run 'status -uv' w/ incoming propchanges
FAIL: special_tests.py 7: merge symlink into file
XPASS: special_tests.py 8: merge file into symlink
FAIL: svnadmin_tests.py 5: 'svnadmin dump' on modified child of copied dir
FAIL: import_tests.py 1: import of executable files
FAIL: depth_tests.py 1: depth-0 (non-recursive) checkout
FAIL: depth_tests.py 2: depth-1 checkout
FAIL: depth_tests.py 3: non-recursive checkout equals depth-1
FAIL: depth_tests.py 4: updating depth-0 wc should not receive file mod
FAIL: depth_tests.py 5: updating depth-1 wc should get top file mod only
FAIL: depth_tests.py 7: act on a file in a depth-0 working copy
FAIL: depth_tests.py 8: bring a dir into a depth-0 working copy
FAIL: depth_tests.py 13: depth-0 working copy ignores a deletion
At least one test was SKIPPED, checking /home/madan/wc/incomplete-directories/tests.log
SKIP: update_tests.py 32: update wc on the root of a Windows (virtual) drive
SKIP: utf8_tests.py 1: conversion of paths and logs to/from utf8
SKIP: svnsync_tests.py 14: verify that unreadable content is not synced
SKIP: svnsync_tests.py 15: verify that copies from unreadable dirs work
SKIP: authz_tests.py 1: authz issue #2486 - open root
SKIP: authz_tests.py 2: authz issue #2486 - open directory
SKIP: authz_tests.py 3: broken authz files cause errors
SKIP: authz_tests.py 4: test authz for read operations
SKIP: authz_tests.py 5: test authz for write operations
SKIP: authz_tests.py 6: test authz for checkout
SKIP: authz_tests.py 7: test authz for log and tracing path changes
SKIP: authz_tests.py 8: test authz for checkout and update
SKIP: authz_tests.py 9: test authz for export with unreadable subfolder
SKIP: authz_tests.py 10: test authz for aliases
make: *** [check] Error 1
----------------------------8<----------------------------------------8<----------------------
Received on Thu Dec 28 10:37:41 2006