Method: VERSION-CONTROL
  Preconditions:
    (DAV:cannot-add-to-existing-history)
    (DAV:must-be-version)
    (DAV:one-version-controlled-resource-per-history-per-workspace)
    (DAV:cannot-modify-checked-in-parent)
  Postconditons:
    (DAV:put-under-version-control)
    (DAV:must-not-change-existing-checked-in-out)
    (DAV:new-version-history)
    (DAV:new-version-controlled-resource)
    (DAV:new-version-controlled-collection)

Method: REPORT
  Preconditions:
    (DAV:supported-report)
    (DAV:acceptable-depth)
  Postconditions:
    (DAV:no-modification)

Method: REPORT (DAV:locate-by-history)
  Preconditions:
    (DAV:must-be-version-history)

Method: REPORT (DAV:compare-baseline)
  Preconditions:
    (DAV:must-be-baseline)
    (DAV:baselines-from-same-history)

Method: REPORT (DAV:latest-activity-version)
  Preconditions:
    (DAV:must-be-activity)

Method: PUT
  Preconditions:
    (DAV:cannot-modify-version-controlled-content)
    (DAV:cannot-modify-version)
  Postconditions:
    (DAV:auto-checkout)
    (DAV:auto-checkout-checkin)

Method: PROPFIND
  Preconditions:
    (DAV:supported-live-property)

Method: PROPPATCH
  Preconditions:
    (DAV:cannot-modify-version-controlled-property)
    (DAV:cannot-modify-version)
    (DAV:cannot-modify-protected-property)
    (DAV:supported-live-property)
  Postconditions:
    (DAV:auto-checkout)
    (DAV:auto-checkout-checkin)

Method: DELETE
  Preconditions:
    (DAV:no-version-delete)
    (DAV:cannot-modify-checked-in-parent)
  Postconditions:
    (DAV:update-predecessor-set)
    (DAV:delete-version-set)
    (DAV:version-history-has-root)
    (DAV:delete-workspace-members)
    (DAV:delete-version-reference)
    (DAV:delete-activity-reference)
    (DAV:delete-working-collection-binding)

Method: COPY
  Preconditions:
    (*** all-off-version-control ***)
    (DAV:cannot-copy-history)
    (DAV:cannot-copy-collection-version)
  Postconditions:
    (DAV:must-not-copy-versioning-property)
    (DAV:auto-checkout)
    (DAV:auto-checkout-checkin)
    (DAV:copy-creates-new-resource)
    (DAV:copy-creates-new-resource)
    (*** all-of-baseline-control ***)

Method: MOVE
  Preconditions:
    (DAV:cannot-rename-version)
    (DAV:cannot-rename-history)
    (DAV:cannot-rename-working-resource)
    (DAV:cannot-modify-checked-in-parent)
    (DAV:cannot-modify-destination-checked-in-parent)
  Postconditions:
    (DAV:preserve-versioning-properties)
    (DAV:workspace-member-moved)
    (DAV:workspace-moved)
    (DAV:update-auto-update)
    (DAV:update-checked-out-reference)
    (DAV:update-activity-reference)
    (DAV:update-workspace-reference)

Method: UNLOCK
  Preconditions:
    (DAV:version-history-is-tree)
  Postconditions:
    (DAV:auto-checkin)

Method: CHECKOUT (applied to a version-controlled resource)
  Preconditions:
    (DAV:must-be-checked-in)
    (DAV:checkout-of-version-with-descendant-is-forbidden)
    (DAV:checkout-of-version-with-descendant-is-discouraged)
    (DAV:checkout-of-checked-out-version-is-forbidden)
    (DAV:checkout-of-checked-out-version-is-discouraged)
    (DAV:must-not-update-baseline-collection)
    (DAV:one-checkout-per-activity-per-history)
    (DAV:linear-activity)
  Postconditions:
    (DAV:is-checked-out)
    (DAV:initialize-predecessor-set)
    (DAV:initialize-activity-set)
    (DAV:initialize-unreserved)
    (DAV:initialize-version-history-bindings)

Method: CHECKOUT (applied to a version)
  Preconditions:
    (DAV:checkout-of-version-with-descendant-is-forbidden)
    (DAV:checkout-of-version-with-descendant-is-discouraged)
    (DAV:checkout-of-checked-out-version-is-forbidden)
    (DAV:checkout-of-checked-out-version-is-discouraged)
  Postconditions:
    (DAV:create-working-resource)
    (DAV:create-working-resource-from-checked-in-version)

Method: CHECKIN (applied to a version-controlled resource)
  Preconditions:
    (DAV:must-be-checked-out)
    (DAV:version-history-is-tree) The versions identified by the DAV:predecessor-set of the checked-out resource MUST be descendants of the root version of the version history for the DAV:checked-out version.
    (DAV:checkin-fork-forbidden)
    (DAV:checkin-fork-discouraged)
    (DAV:merge-must-be-complete)
    (DAV:no-checked-out-baseline-controlled-collection-members)
    (DAV:one-version-per-history-per-baseline)
    (DAV:cannot-modify-version-controlled-configuration)
    (DAV:linear-activity)
    (DAV:atomic-activity-checkin)
  Postconditions:
    (DAV:create-version)
    (DAV:initialize-version-content-and-properties)
    (DAV:checked-in)
    (DAV:keep-checked-out)
    (DAV:add-to-history)
    (DAV:create-baseline-collection)
    (DAV:modify-configuration)
    (DAV:initialize-activity-set)
    (DAV:activity-checkin)
    (DAV:initialize-version-controlled-bindings)
    (DAV:version-control-working-collection-members)

Method: CHECKIN (applied to a working resource)
  Preconditions:
    (DAV:must-be-checked-out)
    (DAV:version-history-is-tree) See Section 4.4.
    (DAV:checkin-fork-forbidden)
    (DAV:checkin-fork-discouraged)
    (DAV:no-overwrite-by-auto-update)
  Postconditions:
    (DAV:create-version)
    (DAV:initialize-version-content-and-properties)
    (DAV:auto-update)
    (DAV:delete-working-resource)

Method: UNCHECKOUT
  Preconditions:
    (DAV:must-be-checked-out-version-controlled-resource)
  Postconditions:
    (DAV:cancel-checked-out)
    (DAV:restore-content-and-dead-properties)
    (DAV:update-version-controlled-collection-members)

Method: MKWORKSPACE
  Preconditions:
    (DAV:resource-must-be-null)
    (DAV:workspace-location-ok)
  Postconditions:
    (DAV:initialize-workspace)

Method: UPDATE
  Preconditions:
    (DAV:must-be-checked-in)
    (DAV:baseline-controlled-members-must-be-checked-in)
    (DAV:must-not-update-baseline-collection)
    (DAV:cannot-modify-version-controlled-configuration)
    (DAV:must-select-version-in-history)
    (DAV:depth-update)
  Postconditions:
    (DAV:update-content-and-properties)
    (DAV:report-properties)
    (DAV:set-baseline-controlled-collection-members)
    (DAV:update-subbaselines)
    (DAV:modify-configuration)
    (DAV:update-version-controlled-collection-members)
    (DAV:apply-request-to-labeled-version)

Method: LABEL
  Preconditions:
    (DAV:must-be-checked-in)
    (DAV:add-must-be-new-label)
    (DAV:label-must-exist)
  Postconditions:
    (DAV:add-or-set-label)
    (DAV:remove-label)

Method: MERGE
  Preconditions:
    (DAV:cannot-merge-checked-out-resource)
    (DAV:checkout-not-allowed)
    (DAV:must-not-update-baseline-collection)
    (DAV:cannot-modify-version-controlled-configuration)
  Postconditions:
    (DAV:ancestor-version)
    (DAV:descendant-version)
    (DAV:checked-out-for-merge)
    (DAV:update-merge-set)
    (DAV:report-properties)
    (DAV:merge-baseline)
    (DAV:merge-subbaselines)
    (DAV:set-baseline-controlled-collection-members)
    (DAV:modify-configuration)
    (DAV:checkin-activity)
    (DAV:update-version-controlled-collection-members)

Method: BASELINE-CONTROL
  Preconditions:
    (DAV:version-controlled-configuration-must-not-exist)
    (DAV:must-be-baseline)
    (DAV:must-have-no-version-controlled-members)
    (DAV:one-baseline-controlled-collection-per-history-per-workspace)
  Postconditions:
    (DAV:create-version-controlled-configuration)
    (DAV:reference-version-controlled-configuration)
    (DAV:select-existing-baseline)
    (DAV:create-new-baseline)

Method: MKCOL
  Preconditions:
    (*** all-of-version-control ***)
  Postconditions:
    (*** all-of-baseline-control ***)
    (*** all-of-version-control ***)

Method: MKACTIVITY
  Preconditions:
    (DAV:resource-must-be-null)
    (DAV:activity-location-ok)
  Postconditions:
    (DAV:initialize-activity)

