📄 protocol
字号:
get-file params: ( path:string [ rev:number ] want-props:bool want-contents:bool ) response: ( [ checksum:string ] rev:number props:proplist ) If want-contents is specified, then after sending response, server sends file contents as a series of strings, terminated by the empty string, followed by a second empty command response to indicate whether an error occurred during the sending of the file. get-dir params: ( path:string [ rev:number ] want-props:bool want-contents:bool ? ( field:dirent-field ... ) ) response: ( rev:number props:proplist ( entry:dirent ... ) )] dirent: ( name:string kind:node-kind size:number has-props:bool created-rev:number [ created-date:string ] [ last-author:string ] ) dirent-field: kind | size | has-props | created-rev | time | last-author | word check-path params: ( path:string [ rev:number ] ) response: ( kind:node-kind ) If path is non-existent, 'svn_node_none' kind is returned. stat params: ( path:string [ rev:number ] ) response: ( ? entry:dirent ) dirent: ( name:string kind:node-kind size:number has-props:bool created-rev:number [ created-date:string ] [ last-author:string ] ) New in svn 1.2. If path is non-existent, an empty response is returned. update params: ( [ rev:number ] target:string recurse:bool ) Client switches to report command set. Upon finish-report, server sends auth-request. After auth exchange completes, server switches to editor command set. After edit completes, server sends response. response: ( ) switch params: ( [ rev:number ] target:string recurse:bool url:string ) Client switches to report command set. Upon finish-report, server sends auth-request. After auth exchange completes, server switches to editor command set. After edit completes, server sends response. response: ( ) status params: ( target:string recurse:bool ) Client switches to report command set. Upon finish-report, server sends auth-request. After auth exchange completes, server switches to editor command set. After edit completes, server sends response. response: ( ) diff params: ( [ rev:number ] target:string recurse:bool ignore-ancestry:bool url:string ? text-deltas:bool ) Client switches to report command set. Upon finish-report, server sends auth-request. After auth exchange completes, server switches to editor command set. After edit completes, server sends response. response: ( ) log params: ( ( target-path:string ... ) [ start-rev:number ] [ end-rev:number ] changed-paths:bool strict-node:bool ? limit:number ) Before sending response, server sends log entries, ending with "done". log-entry: ( ( change:changed-path-entry ... ) rev:number [ author:string ] [ date:string ] [ message:string ] ) | done changed-path-entry: ( path:string A|D|R|M [ copy-path:string ] [ copy-rev:number ] ) response: ( ) get-locations params: ( path:string peg-rev:number ( rev:number ... ) ) Before sending response, server sends location entries, ending with "done". location-entry: ( rev:number abs-path:number ) | done response: ( ) get-file-revs params: ( path:string [ start-rev:number ] [ end-rev:number ] ) Before sending response, server sends file-rev entries, ending with "done". file-rev: ( path:string rev:number rev-props:proplist file-props:propdelta ) | done After each file-rev, the file delta is sent as one or more strings, terminated by the empty string. If there is no delta, server just sends the terminator. response: ( ) lock params: ( path:string [ comment:string ] steal-lock:bool [ current-rev:number ] ) response: ( lock:lockdesc ) lock-many params: ( [ comment:string ] steal-lock:bool ( (path:string [ current-rev:number ] ) ... ) ) Before sending response, server sends lock cmd status and descriptions, ending with "done". lock-info: ( success ( lock:lockdesc ) ) | ( failure ( err:error ) ) | done response: ( ) unlock params: ( path:string [ token:string ] break-lock:bool ) response: ( ) unlock-many params: ( break-lock:bool ( ( path:string [ token:string ] ) ... ) ) Before sending response, server sends unlocked paths, ending with "done". pre-response: ( success ( path:string ) ) | ( failure ( err:error ) ) | done response: ( ) get-lock params: ( path:string ) response: ( [ lock:lockdesc ] ) get-locks params: ( path:string ) response ( ( lock:lockdesc ... ) ) replay params: ( revision:number low-water-mark:number send-deltas:bool ) After auth exchange completes, server switches to editor command set. After edit completes, server sends response. response ( )3.1.2. Editor Command SetIf edit pipelining is negotiated (see section 2.1), than an editoperation produces only one response, at close-edit or abort-edittime. However, the consumer may write an error response at any timeduring the edit in order to terminate the edit operation early; thedriver must notice that input is waiting on the connection, read theerror, and send an abort-edit operation. After an error is returned,the consumer must read and discard editing operations until theabort-edit. In order to prevent TCP deadlock, the consumer must usenon-blocking I/O to send an early error response; if writing blocks,the consumer must read and discard edit operations until writingunblocks or it reads an abort-edit.If edit pipelining is not negotiated, then the target-rev, open-root,delete-entry, add-dir, open-dir, close-dir, and close-file operationsproduce empty responses. Errors produced other operations arereported by the enclosing close-dir or close-file operation. target-rev params: ( rev:number ) open-root params: ( [ rev:number ] root-token:string ) delete-entry params: ( path:string rev:number dir-token:string ) add-dir params: ( path:string parent-token:string child-token:string [ copy-path:string copy-rev:number ] ) open-dir params: ( path:string parent-token:string child-token:string rev:number ) change-dir-prop params: ( dir-token:string name:string [ value:string ] ) close-dir params: ( dir-token:string ) absent-dir params: ( path:string parent-token:string ) add-file params: ( path:string dir-token:string file-token:string [ copy-path:string copy-rev:number ] ) open-file params: ( path:string dir-token:string file-token:string rev:number ) apply-textdelta params: ( file-token:string [ base-checksum:string ] ) If edit-pipelining is not negotiated, after sending command, client sends svndiff data as strings, terminated by an empty string. textdelta-chunk (only used if edit-pipeline is negotiated) params: ( file-token:string chunk:string ) textdelta-end (only used if edit-pipeline is negotiated) params: ( file-token:string ) change-file-prop params: ( file-token:string name:string [ value:string ] ) close-file params: ( file-token:string [ text-checksum:string ] ) absent-file params: ( path:string parent-token:string ) close-edit params: ( ) response: ( ) abort-edit params: ( ) response: ( ) finish-replay params: ( ) Only delivered from server to client, at the end of a replay.3.1.3. Report Command SetTo reduce round-trip delays, report commands do not return responses.Any errors resulting from a report call will be returned to the clientby the command which invoked the report (following an abort-editcall). Errors resulting from an abort-report call are ignored. set-path: params: ( path:string rev:number start-empty:bool ? [ lock-token:string ] ) delete-path: params: ( path:string ) link-path: params: ( path:string url:string rev:number start-empty:bool ? [ lock-token:string ] ) finish-report: params: ( ) abort-report params: ( )4. ExtensibilityThis protocol may be extended in three ways, in decreasing order ofdesirability: * Items may be added to any tuple. An old implementation will ignore the extra items. * Named extensions may be expressed at connection initiation time by the client or server. * The protocol version may be bumped. Clients and servers can then choose to any range of protocol versions.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -