Loading...
Searching...
No Matches
svn_dav.h File Reference

Code related to WebDAV/DeltaV usage in Subversion. More...

Go to the source code of this file.

## Macros

#define | SVN_SVNDIFF_MIME_TYPE "application/vnd.svn-svndiff"
| This is the MIME type that Subversion uses for its "svndiff" format.
#define | SVN_SKEL_MIME_TYPE "application/vnd.svn-skel"
| This is the MIME type that Subversion users for its "skel" format.
#define | SVN_DAV_DELTA_BASE_HEADER "X-SVN-VR-Base"
| This header is TEMPORARILY used to transmit the delta base to the server.
#define | SVN_DAV_OPTIONS_HEADER "X-SVN-Options"
| This header is used when an svn client wants to trigger specific svn server behaviors.
#define | SVN_DAV_VERSION_NAME_HEADER "X-SVN-Version-Name"
| This header is used when an svn client wants to tell mod_dav_svn exactly what revision of a resource it thinks it's operating on.
#define | SVN_DAV_CREATIONDATE_HEADER "X-SVN-Creation-Date"
| A header generated by mod_dav_svn whenever it responds successfully to a LOCK request.
#define | SVN_DAV_LOCK_OWNER_HEADER "X-SVN-Lock-Owner"
| A header generated by mod_dav_svn whenever it responds successfully to a PROPFIND for the 'DAV:lockdiscovery' property.
#define | SVN_DAV_YOUNGEST_REV_HEADER "SVN-Youngest-Rev"
| Assuming the OPTIONS was performed against a resource within a Subversion repository, then this header indicates the youngest revision in the repository.
#define | SVN_DAV_REPOS_UUID_HEADER "SVN-Repository-UUID"
| Assuming the OPTIONS was performed against a resource within a Subversion repository, then this header indicates the UUID of the repository.
#define | SVN_DAV_ME_RESOURCE_HEADER "SVN-Me-Resource"
| Presence of this in a DAV header in an OPTIONS response indicates that the server speaks HTTP protocol v2.
#define | SVN_DAV_ROOT_URI_HEADER "SVN-Repository-Root"
| This header provides the repository root URI, suitable for use in calculating the relative paths of other public URIs for this repository into .
#define | SVN_DAV_REV_STUB_HEADER "SVN-Rev-Stub"
| This header provides an opaque URI that the client can append a revision to, to construct a 'revision URL'.
#define | SVN_DAV_REV_ROOT_STUB_HEADER "SVN-Rev-Root-Stub"
| This header provides an opaque URI that the client can append PEGREV/PATH to, in order to construct URIs of pegged objects in the repository, similar to the use of a "revision root" in the libsvn_fs API.
#define | SVN_DAV_TXN_STUB_HEADER "SVN-Txn-Stub"
| This header provides an opaque URI which represents a Subversion transaction (revision-in-progress) object.
#define | SVN_DAV_VTXN_STUB_HEADER "SVN-VTxn-Stub"
| Companion to `SVN_DAV_TXN_STUB_HEADER`, used when a POST request returns `SVN_DAV_VTXN_NAME_HEADER` in response to a client supplied name.
#define | SVN_DAV_TXN_ROOT_STUB_HEADER "SVN-Txn-Root-Stub"
| This header provides an opaque URI which represents the root directory of a Subversion transaction (revision-in-progress), similar to the concept of a "txn root" in the libsvn_fs API.
#define | SVN_DAV_VTXN_ROOT_STUB_HEADER "SVN-VTxn-Root-Stub"
| Companion to `SVN_DAV_TXN_ROOT_STUB_HEADER`, used when a POST request returns `SVN_DAV_VTXN_NAME_HEADER` in response to a client supplied name.
#define | SVN_DAV_TXN_NAME_HEADER "SVN-Txn-Name"
| This header is used in the POST response to tell the client the name of the Subversion transaction created by the request.
#define | SVN_DAV_VTXN_NAME_HEADER "SVN-VTxn-Name"
| This header is used in the POST request, to pass a client supplied alternative transaction name to the server, and in the POST response, to tell the client that the alternative transaction resource names should be used.
#define | SVN_DAV_SUPPORTED_POSTS_HEADER "SVN-Supported-Posts"
| This header is used in the OPTIONS response to identify named skel-based POST request types which the server is prepared to handle.
#define | SVN_DAV_ALLOW_BULK_UPDATES "SVN-Allow-Bulk-Updates"
| This header is used in the OPTIONS response to indicate if the server wants bulk update requests (Prefer) or only accepts skelta requests (Off).
#define | SVN_DAV_REPOSITORY_MERGEINFO "SVN-Repository-MergeInfo"
| Assuming the request target is a Subversion repository resource, this header is returned in the OPTIONS response to indicate whether the repository supports the merge tracking feature ("yes") or not ("no").
#define | SVN_DAV_ERROR_NAMESPACE "svn:"
| The error object's namespace.
#define | SVN_DAV_ERROR_TAG "error"
| The error object's tag.
#define | SVN_DAV_PROP_NS_SVN "http://subversion.tigris.org/xmlns/svn/"
| A property stored in the fs and wc, begins with 'svn:', and is interpreted either by client or server.
#define | SVN_DAV_PROP_NS_CUSTOM "http://subversion.tigris.org/xmlns/custom/"
| A property stored in the fs and wc, but totally ignored by svn client and server.
#define | SVN_DAV_PROP_NS_DAV "http://subversion.tigris.org/xmlns/dav/"
| A property purely generated and consumed by the network layer, not seen by either fs or wc.
options-header defines
Specific options that can appear in the options-header:
#define | SVN_DAV_OPTION_NO_MERGE_RESPONSE "no-merge-response"
#define | SVN_DAV_OPTION_LOCK_BREAK "lock-break"
#define | SVN_DAV_OPTION_LOCK_STEAL "lock-steal"
#define | SVN_DAV_OPTION_RELEASE_LOCKS "release-locks"
#define | SVN_DAV_OPTION_KEEP_LOCKS "keep-locks"
Fulltext MD5 headers

These headers are for client and server to verify that the base and the result of a change transmission are the same on both sides, regardless of what transformations (svndiff deltification, gzipping, etc) the data may have gone through in between.

The result md5 is always used whenever file contents are transferred, because every transmission has a resulting text.

The base md5 is used to verify the base text against which svndiff data is being applied. Note that even for svndiff transmissions, base verification is not strictly necessary (and may therefore be unimplemented), as any error will be caught by the verification of the final result. However, if the problem is that the base text is corrupt, the error will be caught earlier if the base md5 is used.

Normal WebDAV or DeltaV clients don't use these.

#define | SVN_DAV_BASE_FULLTEXT_MD5_HEADER "X-SVN-Base-Fulltext-MD5"
#define | SVN_DAV_RESULT_FULLTEXT_MD5_HEADER "X-SVN-Result-Fulltext-MD5"
Custom (extension) values for the DAV header.
Note that although these share the SVN_DAV_PROP_NS_DAV namespace prefix, they are not properties; they are header values.
#define | SVN_DAV_NS_DAV_SVN_DEPTH SVN_DAV_PROP_NS_DAV "svn/depth"
| Presence of this in a DAV header in an OPTIONS request or response indicates that the transmitter supports `svn_depth_t`.
#define | SVN_DAV_NS_DAV_SVN_MERGEINFO SVN_DAV_PROP_NS_DAV "svn/mergeinfo"
| Presence of this in a DAV header in an OPTIONS request or response indicates that the server knows how to handle merge-tracking information.
#define | SVN_DAV_NS_DAV_SVN_LOG_REVPROPS SVN_DAV_PROP_NS_DAV "svn/log-revprops"
| Presence of this in a DAV header in an OPTIONS response indicates that the transmitter (in this case, the server) knows how to send custom revprops in log responses.
#define | SVN_DAV_NS_DAV_SVN_PARTIAL_REPLAY SVN_DAV_PROP_NS_DAV "svn/partial-replay"
| Presence of this in a DAV header in an OPTIONS response indicates that the transmitter (in this case, the server) knows how to handle a replay of a directory in the repository (not root).
#define | SVN_DAV_NS_DAV_SVN_ATOMIC_REVPROPS SVN_DAV_PROP_NS_DAV "svn/atomic-revprops"
| Presence of this in a DAV header in an OPTIONS response indicates that the transmitter (in this case, the server) knows how to enforce old-value atomicity in PROPPATCH (for editing revprops).
#define | SVN_DAV_NS_DAV_SVN_INHERITED_PROPS SVN_DAV_PROP_NS_DAV "svn/inherited-props"
| Presence of this in a DAV header in an OPTIONS response indicates that the transmitter (in this case, the server) knows how to get inherited properties.
#define | SVN_DAV_NS_DAV_SVN_EPHEMERAL_TXNPROPS SVN_DAV_PROP_NS_DAV "svn/ephemeral-txnprops"
| Presence of this in a DAV header in an OPTIONS response indicates that the transmitter (in this case, the server) knows how to properly handle ephemeral (that is, deleted-just-before-commit) FS transaction properties.
#define | SVN_DAV_NS_DAV_SVN_INLINE_PROPS SVN_DAV_PROP_NS_DAV "svn/inline-props"
| Presence of this in a DAV header in an OPTIONS response indicates that the transmitter (in this case, the server) supports serving properties inline in update editor when 'send-all' is 'false'.
#define | SVN_DAV_NS_DAV_SVN_REPLAY_REV_RESOURCE SVN_DAV_PROP_NS_DAV "svn/replay-rev-resource"
| Presence of this in a DAV header in an OPTIONS response indicates that the transmitter (in this case, the server) knows how to handle a replay of a revision resource.
#define | SVN_DAV_NS_DAV_SVN_REVERSE_FILE_REVS SVN_DAV_PROP_NS_DAV "svn/reverse-file-revs"
| Presence of this in a DAV header in an OPTIONS response indicates that the transmitter (in this case, the server) knows how to handle a reversed fetch of file versions.
#define | SVN_DAV_NS_DAV_SVN_SVNDIFF1 SVN_DAV_PROP_NS_DAV "svn/svndiff1"
| Presence of this in a DAV header in an OPTIONS response indicates that the transmitter (in this case, the server) knows how to handle svndiff1 format encoding.
#define | SVN_DAV_NS_DAV_SVN_LIST SVN_DAV_PROP_NS_DAV "svn/list"
| Presence of this in a DAV header in an OPTIONS response indicates that the transmitter (in this case, the server) knows how to handle 'list' requests.
#define | SVN_DAV_NS_DAV_SVN_SVNDIFF2 SVN_DAV_PROP_NS_DAV "svn/svndiff2"
| Presence of this in a DAV header in an OPTIONS response indicates that the transmitter (in this case, the server) knows how to handle svndiff2 format encoding.
#define | SVN_DAV_NS_DAV_SVN_PUT_RESULT_CHECKSUM SVN_DAV_PROP_NS_DAV "svn/put-result-checksum"
| Presence of this in a DAV header in an OPTIONS response indicates that the transmitter (in this case, the server) sends the result checksum in the response to a successful PUT request.

## Detailed Description

Code related to WebDAV/DeltaV usage in Subversion.

# @if copyrights

Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations

# under the License.

Definition in file svn_dav.h.

## Macro Definition Documentation

## SVN_DAV_ALLOW_BULK_UPDATES

#define SVN_DAV_ALLOW_BULK_UPDATES "SVN-Allow-Bulk-Updates"

This header is used in the OPTIONS response to indicate if the server wants bulk update requests (Prefer) or only accepts skelta requests (Off).

If this value is On both options are allowed.

Since
  New in 1.8.

Definition at line 199 of file svn_dav.h.

## SVN_DAV_BASE_FULLTEXT_MD5_HEADER

#define SVN_DAV_BASE_FULLTEXT_MD5_HEADER "X-SVN-Base-Fulltext-MD5"

Definition at line 229 of file svn_dav.h.

## SVN_DAV_CREATIONDATE_HEADER

#define SVN_DAV_CREATIONDATE_HEADER "X-SVN-Creation-Date"

A header generated by mod_dav_svn whenever it responds successfully to a LOCK request.

Only svn clients will notice it, and use it to fill in svn_lock_t->creation_date.

Definition at line 95 of file svn_dav.h.

## SVN_DAV_DELTA_BASE_HEADER

#define SVN_DAV_DELTA_BASE_HEADER "X-SVN-VR-Base"

This header is TEMPORARILY used to transmit the delta base to the server.

It contains a version resource URL for what is on the client.

Note
  The HTTP delta draft recommends an If-None-Match header holding an entity tag corresponding to the base copy that the client has. In Subversion, it is much more natural to use a version URL to specify that base. We'd like, then, to use the If: header to specify the URL. Unfortunately, mod_dav sees all "State-token" items as lock tokens. So we'll use this custom header until mod_dav and other backend APIs are taught to be less rigid, at which time we can switch to using an If: header to report our base version.

Definition at line 66 of file svn_dav.h.

## SVN_DAV_LOCK_OWNER_HEADER

#define SVN_DAV_LOCK_OWNER_HEADER "X-SVN-Lock-Owner"

A header generated by mod_dav_svn whenever it responds successfully to a PROPFIND for the 'DAV:lockdiscovery' property.

Only svn clients will notice it, and use it to fill in svn_lock_t->owner. (Remember that the DAV:owner field maps to svn_lock_t->comment, and that there is no analogue in the DAV universe of svn_lock_t->owner.)

Definition at line 103 of file svn_dav.h.

## SVN_DAV_ME_RESOURCE_HEADER

#define SVN_DAV_ME_RESOURCE_HEADER "SVN-Me-Resource"

Presence of this in a DAV header in an OPTIONS response indicates that the server speaks HTTP protocol v2.

This header provides an opaque URI that the client should send all custom REPORT requests against.

Since
  New in 1.7.

Definition at line 122 of file svn_dav.h.

## SVN_DAV_OPTION_KEEP_LOCKS

#define SVN_DAV_OPTION_KEEP_LOCKS "keep-locks"

Definition at line 82 of file svn_dav.h.

## SVN_DAV_OPTION_LOCK_BREAK

#define SVN_DAV_OPTION_LOCK_BREAK "lock-break"

Definition at line 79 of file svn_dav.h.

## SVN_DAV_OPTION_LOCK_STEAL

#define SVN_DAV_OPTION_LOCK_STEAL "lock-steal"

Definition at line 80 of file svn_dav.h.

## SVN_DAV_OPTION_NO_MERGE_RESPONSE

#define SVN_DAV_OPTION_NO_MERGE_RESPONSE "no-merge-response"

Definition at line 78 of file svn_dav.h.

## SVN_DAV_OPTION_RELEASE_LOCKS

#define SVN_DAV_OPTION_RELEASE_LOCKS "release-locks"

Definition at line 81 of file svn_dav.h.

## SVN_DAV_OPTIONS_HEADER

#define SVN_DAV_OPTIONS_HEADER "X-SVN-Options"

This header is used when an svn client wants to trigger specific svn server behaviors.

Normal WebDAV or DeltaV clients won't use it.

Definition at line 71 of file svn_dav.h.

## SVN_DAV_REPOS_UUID_HEADER

#define SVN_DAV_REPOS_UUID_HEADER "SVN-Repository-UUID"

Assuming the OPTIONS was performed against a resource within a Subversion repository, then this header indicates the UUID of the repository.

Since
  New in 1.7.

Definition at line 115 of file svn_dav.h.

## SVN_DAV_REPOSITORY_MERGEINFO

#define SVN_DAV_REPOSITORY_MERGEINFO "SVN-Repository-MergeInfo"

Assuming the request target is a Subversion repository resource, this header is returned in the OPTIONS response to indicate whether the repository supports the merge tracking feature ("yes") or not ("no").

Since
  New in 1.8.

Definition at line 206 of file svn_dav.h.

## SVN_DAV_RESULT_FULLTEXT_MD5_HEADER

#define SVN_DAV_RESULT_FULLTEXT_MD5_HEADER "X-SVN-Result-Fulltext-MD5"

Definition at line 230 of file svn_dav.h.

## SVN_DAV_REV_ROOT_STUB_HEADER

#define SVN_DAV_REV_ROOT_STUB_HEADER "SVN-Rev-Root-Stub"

This header provides an opaque URI that the client can append PEGREV/PATH to, in order to construct URIs of pegged objects in the repository, similar to the use of a "revision root" in the libsvn_fs API.

(HTTP protocol v2 only)

Since
  New in 1.7.

Definition at line 143 of file svn_dav.h.

## SVN_DAV_REV_STUB_HEADER

#define SVN_DAV_REV_STUB_HEADER "SVN-Rev-Stub"

This header provides an opaque URI that the client can append a revision to, to construct a 'revision URL'.

This allows direct read/write access to revprops via PROPFIND or PROPPATCH, and is similar to libsvn_fs's revision objects (as distinct from "revision roots"). (HTTP protocol v2 only)

Since
  New in 1.7.

Definition at line 136 of file svn_dav.h.

## SVN_DAV_ROOT_URI_HEADER

#define SVN_DAV_ROOT_URI_HEADER "SVN-Repository-Root"

This header provides the repository root URI, suitable for use in calculating the relative paths of other public URIs for this repository into .

(HTTP protocol v2 only)

Since
  New in 1.7.

Definition at line 128 of file svn_dav.h.

## SVN_DAV_SUPPORTED_POSTS_HEADER

#define SVN_DAV_SUPPORTED_POSTS_HEADER "SVN-Supported-Posts"

This header is used in the OPTIONS response to identify named skel-based POST request types which the server is prepared to handle.

(HTTP protocol v2 only)

Since
  New in 1.8.

Definition at line 193 of file svn_dav.h.

## SVN_DAV_TXN_NAME_HEADER

#define SVN_DAV_TXN_NAME_HEADER "SVN-Txn-Name"

This header is used in the POST response to tell the client the name of the Subversion transaction created by the request.

It can then be appended to the transaction stub and transaction root stub for access to the properties and paths, respectively, of the named transaction. (HTTP protocol v2 only)

Since
  New in 1.7.

Definition at line 180 of file svn_dav.h.

## SVN_DAV_TXN_ROOT_STUB_HEADER

#define SVN_DAV_TXN_ROOT_STUB_HEADER "SVN-Txn-Root-Stub"

This header provides an opaque URI which represents the root directory of a Subversion transaction (revision-in-progress), similar to the concept of a "txn root" in the libsvn_fs API.

The client can append additional path segments to it to access items deeper in the transaction tree as part of a commit process. (HTTP protocol v2 only)

Since
  New in 1.7.

Definition at line 166 of file svn_dav.h.

## SVN_DAV_TXN_STUB_HEADER

#define SVN_DAV_TXN_STUB_HEADER "SVN-Txn-Stub"

This header provides an opaque URI which represents a Subversion transaction (revision-in-progress) object.

It is suitable for use in fetching and modifying transaction properties as part of a commit process, similar to the svn_fs_txn_t object (as distinct from a "txn root"). (HTTP protocol v2 only)

Since
  New in 1.7.

Definition at line 151 of file svn_dav.h.

## SVN_DAV_VERSION_NAME_HEADER

#define SVN_DAV_VERSION_NAME_HEADER "X-SVN-Version-Name"

This header is used when an svn client wants to tell mod_dav_svn exactly what revision of a resource it thinks it's operating on.

(For example, an svn server can use it to validate a DELETE request.) Normal WebDAV or DeltaV clients won't use it.

Definition at line 90 of file svn_dav.h.

## SVN_DAV_VTXN_NAME_HEADER

#define SVN_DAV_VTXN_NAME_HEADER "SVN-VTxn-Name"

This header is used in the POST request, to pass a client supplied alternative transaction name to the server, and in the POST response, to tell the client that the alternative transaction resource names should be used.

(HTTP protocol v2 only)

Since
  New in 1.7.

Definition at line 187 of file svn_dav.h.

## SVN_DAV_VTXN_ROOT_STUB_HEADER

#define SVN_DAV_VTXN_ROOT_STUB_HEADER "SVN-VTxn-Root-Stub"

Companion to `SVN_DAV_TXN_ROOT_STUB_HEADER`, used when a POST request returns `SVN_DAV_VTXN_NAME_HEADER` in response to a client supplied name.

(HTTP protocol v2 only)

Since
  New in 1.7.

Definition at line 172 of file svn_dav.h.

## SVN_DAV_VTXN_STUB_HEADER

#define SVN_DAV_VTXN_STUB_HEADER "SVN-VTxn-Stub"

Companion to `SVN_DAV_TXN_STUB_HEADER`, used when a POST request returns `SVN_DAV_VTXN_NAME_HEADER` in response to a client supplied name.

(HTTP protocol v2 only)

Since
  New in 1.7.

Definition at line 157 of file svn_dav.h.

## SVN_DAV_YOUNGEST_REV_HEADER

#define SVN_DAV_YOUNGEST_REV_HEADER "SVN-Youngest-Rev"

Assuming the OPTIONS was performed against a resource within a Subversion repository, then this header indicates the youngest revision in the repository.

Since
  New in 1.7.

Definition at line 109 of file svn_dav.h.

## SVN_SKEL_MIME_TYPE

#define SVN_SKEL_MIME_TYPE "application/vnd.svn-skel"

This is the MIME type that Subversion users for its "skel" format.

This is an application type, for the "svn" vendor. The specific subtype is "skel".

Since
  New in 1.7.

Definition at line 52 of file svn_dav.h.

## SVN_SVNDIFF_MIME_TYPE

#define SVN_SVNDIFF_MIME_TYPE "application/vnd.svn-svndiff"

This is the MIME type that Subversion uses for its "svndiff" format.

This is an application type, for the "svn" vendor. The specific subtype is "svndiff".

Definition at line 44 of file svn_dav.h.