Note that sending a MOVE request with a Target-Selector header is ILLEGAL; it is impossible to delete or move away a single version. Use COPY instead to specify a source version. Thus these two tables assume no Target-Selector header.
|
Destination state |
Overwrite: T |
Overwrite: F |
Overwrite: update |
|
Exists, versioned |
Replace dest version-history with src version-history. |
Fail. |
Entire src version-history is added onto the dest history. |
|
Exists, NOT versioned |
Replace dest with default version from source |
Fail |
Same as T |
|
Doesn’t exist |
Create a versioned resource at the dest w/ all the history from src. |
Same as T |
Same as T |
|
Doesn’t exist, can’t be versioned |
Create new resource at the dest with default version from source |
Same as T |
Fail |
(since the target may be versioned, and since versioning defines Overwrite: update, the versioning spec must address this scenario)
|
Destination state: |
Overwrite: T |
Overwrite: F |
Overwrite: update |
|
Exists, versioned |
Replaces all dest versions with single version from source |
Fail |
Create a new version at dest with contents of src. |
|
Exists, NOT versioned |
Defined by WebDAV to replace dest. |
Fail |
Same as T |
|
Doesn’t exist |
Defined by WebDAV to create dest |
Same as T |
Same as T |
Abbreviations used:
- dest à destination
- src à source
-
w/ à with
If the source is versioned, COPY can legitimately have a target-selector header. If it doesn’t, does the user intend to COPY the entire history, or the default version? This table specifies…
|
Destination State |
Overwrite: T |
Overwrite: F |
Overwrite: update |
|
Exists, versioned |
Replace entire version-history at dest w/ selected version from src |
Fail |
Create new version at dest w/ selected version from src |
|
Exists, not versioned |
Replace dest w/ selected version from src |
Fail |
Fail |
|
Doesn’t exist |
Create unversioned dest w/selected content from src |
Same as T |
Create new versioned resource, or fail? |
|
Doesn’t exist, and can’t be versioned |
Create unversioned dest w/ selected content from src |
Same as T |
Fail |
In this case, Target-Selector header is illegal…
|
Destination State |
Overwrite: T |
Overwrite: F |
Overwrite: update |
|
Exists, versioned |
Illegal to replace an existing version history with nothing? |
Fail? |
Create new version at dest w/ content from src. |
|
Exists, not versioned |
Defined by WebDAV to overwrite content |
Fail |
Illegal? |
|
Doesn’t exist |
Defined by WebDAV to create dest |
Succeed |
Meaningless – perhaps should do same as T |