配置项¶
A - B - C - D - E - F - G - H - I - K - L - M - P - R - S - T - U - W
A¶
access-log¶
启用此设置时,显示登录尝试(成功和不成功)都会记录在储存库的 “access” 表中。
admin-log¶
启用此设置时,配置更改记录将储存在 “admin_log” 表中。
allow-symlinks¶
当设置关闭时,VB不会将本地的符号链接视为单独的对象类。
auto-captcha¶
如果启用此设置,登录页面会提供一个按钮,用于自动填写验证码。这会使得用户的操作更加简单,但同时对网站又危害的机器人也更容易登录。
auto-hyperlink¶
设置如果非零,即使用户缺乏 “h” 权限,只要HTTP请求中的UserAgent字符串(HTTP_USER_AGENT cgi 变量) 看起来像是人类而不是机器人,就会在网页上启用超链接。详细信息取决于设置的值。
设置值包括:
0
:关闭,不会根据用户代练对 h 权限进行任何调整。1
:serAgent
和Javascript
,超链接的href= value
最初指向/honeypot
,并在页面加载后由运行的javascript
更改为指向正确的目标。auto-hyperlink-delay
和auto-hyperlink-mouseover
设置会影响该javascript
。2
:仅限UserAgent
,如果HTTP_USER_AGENT
看起来像人类,则生成超链接,否则不生成。
备注
当此设置为 1 而不是 2 时,可以获得更好的机器人排除效果。但是,当值为 1 时,超链接的已访问/未访问颜色在 Safari 衍生的 Web 浏览器上停止工作。当此设置为 2 时,超链接在 Safari 上工作得更好,但更多的机器人能够潜入。
auto-hyperlink-delay¶
当自动超链接设置为 1 时,运行以设置超链接的 href= attributes
的 javascript
将在页面加载后延迟这么多毫秒。建议值:50 到 200。
auto-hyperlink-mouseover¶
当自动超链接设置为 1 且此设置处于开启状态时,运行以设置超链接的 href= attributes
的 javascript
将等待,直到看到鼠标移动和点击事件。这有助于区分真实用户和机器人。为了最大程度地防御机器人,建议设置为开启。
auto-shun¶
如果启用此设置,则自动从客户端自动同步的服务器中提取回避列表。
autosync¶
此设置决定如何进行自动同步。该设置是一个字符串,为确定何时自动同步和何时不自动同步提供了很大的灵活性。
on
: 始终对自动同步有意义的命令进行自动同步(commit
、merge
、open
、update
)off
: 从不自动同步。pullonly
: 仅用于拉取自动同步。all
: 与所有遥控器同步。on, open=off
: 大多数命令可自动同步,但open
除外。off, commit=pullonly
: 不要自动同步,除非在每次commit
之前进行拉取,大概是为了避免不必要的分叉。
语法是逗号分隔的 VALUE
和 COMMAND=VALUE
条目列表。如果没有匹配的 COMMAND
,则默认使用纯 VALUE
条目。否则,将使用匹配命令的 VALUE
。
all
值的特殊之处在于,它除了适用于 commit
、merge
、open
、update
之外,还适用于 sync
命令。
autosync-tries¶
如果启用了自动同步,则将其设置为大于零的值将导致自动同步在同步失败时尝试的次数不超过此次数。
B¶
backoffice-disable¶
如果 backoffic-disable
为 true
,则自动后台处理将被禁用。自动后台处理是通常在每次网页呈现后运行的后台工作。由 vb backoffice
命令触发的后台处理不受此设置的影响。
后台处理会执行诸如发送电子邮件之类的操作。因此,如果此设置为 true
,并且没有cron作业定期运行 vb backoffice
,则不会发生电子邮件通知和后台通常执行的其他工作。
backoffice-logfile¶
如果 backoffice-logfile
不是空字符串并且是有效文件名,则每次后台运行时都会向该文件附加一行消息。这可用于调试,以确保后台运行正常。
backoffice-nodelay¶
如果 backoffice-nodelay
为 true
,则后台处理将永远不会调用 sleep()
。如果它没有有用的事情要做,它就会退出。
binary-glob¶
此设置的值是与文件匹配的 GLOB
模式列表,这些文件应被视为“二进制”以进行提交和合并。
示例
*.jpg、*.png
C¶
case-sensitive¶
如果为 TRUE
,则名称仅在大小写上不同的文件将被视为不同文件。如果为 FALSE
,则名称仅在大小写上不同的文件将被视为同一文件。对于 unix,默认为 TRUE
;对于 Cygwin、Mac 和 Windows,默认为 FALSE
。
chat-alert-sound¶
这是用于警报音的内置声音文件的名称。该值必须是内置 WAV
文件的名称。
chat-initial-history¶
如果此设置的整数值为 N,则 /chat
首次启动时会使用最近的 N 条聊天消息初始化屏幕。如果 N 为零,则加载所有聊天消息。
chat-inline-images¶
指定在 /chat
中发布的图片是否应默认以内联方式显示或作为可下载链接显示。每个聊天用户都可以在 UI 中更改其当前聊天会话的此值。
chat-keep-count¶
当 /chat
清理旧消息时,它将始终保留最新的 chat-keep-count
消息,即使其中一些消息早于丢弃阈值。如果此值为零,则 /chat
可以自由删除所有足够旧的历史消息。
chat-keep-days¶
/chat
子系统将尝试丢弃比 chat-keep-days
更早的消息。chat-keep-days
的值可以是浮点数。因此,例如,如果您只想保留聊天消息 12 小时,请将此值设置为 0.5。
值为 0.0 或更小意味着消息将永远保留。
chat-poll-timeout¶
在对 /chat-poll
发出 HTTP 请求时,如果没有新内容可用,则回复会延迟,以等待新内容到达。(这是向客户端传递事件的“长轮询”策略。)此设置决定 /chat-poll
在放弃并返回空回复之前大约会延迟多长时间。默认值约为 7 分钟,这对于 althttpd
网络服务器后面的 vb 来说效果很好。其他服务器环境可以选择更长或更短的延迟。
为了实现最高效率,最好选择不会导致中间代理或 Web 服务器超时的最长延迟。
chat-timeline-user¶
如果此设置已定义且不为空字符串,则时间线事件会在到达时发布到聊天中。合成的聊天消息似乎来自此设置标识的用户,而不是时间线事件上的用户。
来自 chat-timeline-user
的所有聊天消息均被解释为 text/x-fossil-wiki
,而不是 text/x-markdown
。因此,chat-timeline-user
名称可能不是真实用户。
clean-glob¶
设置值为 GLOB 模式 列表, clean 命令将删除与其匹配的文件而不提示或允许撤销。
示例
*.a、*.o、*.so
clearsign¶
启用后,将尝试使用 gpg 对所有提交进行签名。禁用后,提交将不签名。
crlf-glob¶
设置值为 GLOB 模式 列表,与其匹配的文件允许使用 CR、CR+LF 或混合行尾,从而抑制 VisionByte 对此的正常警告。将其设置为 *
可完全禁用 CR+LF 检查。
示例
*.md,*.txt
crnl-glob 设置是兼容性别名。
crnl-glob¶
crlf-glob 设置的别名。
D¶
default-csp¶
内容安全策略 的文本包含在 HTTP 回复的 Content-Security-Policy:
标头字段中,以及在皮肤标头未指定 <head>
部分时添加的默认 HTML <head>
部分中。
文本 $nonce
由为每个网页创建的随机 nonce 替换。
如果此设置为空字符串或省略,则使用以下默认内容安全策略:
default-src 'self' data:;
script-src 'self' 'nonce-$nonce';
style-src 'self' 'unsafe-inline';
img-src * data:;
建议使用默认 CSP。更改此设置的主要原因是添加可安全加载其他内容的 CDN。
default-perms¶
自动授予新用户的权限。
default-skin¶
默认皮肤设置。如果此设置的值是内置皮肤的名称,则该皮肤将成为仓库的默认皮肤。
diff-binary¶
如果启用,则允许二进制文件或与 binary-glob 设置匹配的文件与外部 diff
程序一起使用。如果禁用,则跳过这些文件。
diff-command¶
该值是执行 diff 时要运行的外部命令。如果未定义,则将使用内部文本 diff
。
dont-commit¶
提交设置。如果启用,则阻止提交到此仓库,作为防止意外签入只读仓库的额外预防措施。
dont-push¶
推送设置。如果启用,则阻止此仓库从客户端推送到服务器。这可以用作额外的预防措施,以防止意外将私有克隆推送到公共服务器。
dotfiles¶
如果启用 ,则所有兼容命令都包含 --dotfiles
选项,该选项包含 .
开头的文件 。
E¶
editor¶
设置值是一个外部命令,它将启动用于签入评论的文本编辑器命令。
示例
vim
email-admin¶
系统人工管理员的电子邮件地址设置。对于滥用和故障报告以及密码重置请求都会发送到此电子邮件地址。
email-listid¶
电子邮件列表 ID 设置。如果此设置不是空字符串,则它将成为添加到所有出站通知电子邮件的 List-ID:
标头的参数。
email-renew-interval¶
电子邮件续订间隔设置。如果此设置为整数 N,且该整数 N 大于或等于 14,则对于距离 last contact time
超过 N 天的订阅,将暂停电子邮件通知。last contact time
记录在数据库的 SUBSCRIBER.LASTCONTACT
条目中。
登录、发送论坛帖子、编辑 wiki 页面、在 /alerts
页面更改订阅设置或访问 /renew
页面都会更新 last contact time
。如果此设置不是整数值或小于 14 或未定义,则订阅永不过期。
email-self¶
仓库的电子邮件地址。出站电子邮件将此电子邮件地址添加为 From:
字段。
email-send-command¶
当 email-send-method 设置为 pipe
时,此命令会将出站电子邮件内容通过管道传输。此命令必须从电子邮件标头中提取收件人、发件人、主题和所有其他相关信息。
email-send-db¶
当 email-send-method 设置值为 db
时,设置的值为一个 SQLite 数据库文件,出站电子邮件将写入其数据库。
email-send-dir¶
当 email-send-method 设置值为 dir
时,设置的值为一个目录,出站电子邮件将作为单独文件写入该目录。
email-send-method¶
设置电子邮件发送方式。值可以为:off
、 relay
、 pipe
、 dir
、 db
和 stdout
:
off
:从不发送电子邮件;relay
:将电子邮件使用位于 email-send-relayhost 的 SMTP 发送到邮件发送代理;pipe
:电子邮件消息通过管道传输到由 email-send-command 设置确定的命令中;dir
:将电子邮件写入由 email-send-dir 设置确定的目录中的单个文件中;db
:将电子邮件添加到由 email-send-db 设置命名的 SQLite 数据库中;stdout
:将电子邮件文本写入标准输出,以供调试。
email-send-relayhost¶
当 email-send-method 设置为 relay
时,输出电子邮件消息发送到的主机名和 TCP 端口。应该有一个 SMTP 服务器配置为邮件提交代理,始终监听指定的主机和端口。
email-subname¶
设置用于在电子邮件警报的主题行中标识仓库的简称。传统上,此名称应该包含在 []
中。
示例
[fossil-src]
[sqlite-src]
email-url¶
设置用于访问仓库以进行 克隆 或 同步 或操作 Web 界面的主要 URL 地址,也是电子邮件警报文本中包含的超链接的基本名称,省略尾随的 /
。如果仓库不打算用作长期运行的服务器并且不会发送电子邮件通知,请将此设置为空。
empty-dirs¶
设置的值是 GLOB 模式 路径名列表。在执行 update 和 checkout 命令时,如果不存在具有该名称的目录,即使需要创建一个或多个父目录,也需要创建一个该名称的空目录。
encoding-glob¶
设置值为 GLOB 模式 列表,与该列表匹配的文件在 commit 命令发出有关文本文件可能使用除 ASCII 或 UTF-8 以外的其他编码的警告时,这些文件将被忽略。设置为 *
可禁用编码检查。
示例
*.md,*.txt
exec-rel-paths¶
设置执行某些外部命令(例如 diff 和 gdiff)时,使用的相对路径。
F¶
fileedit-glob¶
设置值为 GLOB 模式 列表,与该列表匹配的文件可以使用 /fileedit
页面编辑,如果设置为空,将禁用该功能。 /fileedit
无法编辑二进制文件,因此 glob 列表不应包含 图片或 PDF 格式。
示例
*.md,*.txt
forbid-delta-manifests¶
如果在客户端上启用,则在提交时禁止生成新的增量清单。如果在服务器上启用,则每当客户端在自动同步期间尝试获取签入锁时,服务器都会在其回复中发送 pragma Avoid-delta-manifests
语句,这将导致客户端避免生成增量清单。
forum-close-policy¶
论坛管理设置。如果值为 true,论坛版主可以关闭/重新打开论坛帖子,并回复已关闭的帖子。如果值为 false,只有管理员才能对论坛进行管理。请注意,这只会影响论坛,而不会影响通过命令行或与远程同步到达的关闭后标签。
G¶
gdiff-command¶
设置的值是执行图形差异时运行的外部命令。如果未定义,则将使用文本差异。
gmerge-command¶
设置值是针对四个文件进行操作的图形化合并冲突解决程序命令。
示例
kdiff3 "%baseline" "%original" "%merge" -o "%output"
xxdiff "%original" "%baseline" "%merge" -M "%output"
meld "%baseline" "%original" "%merge" --output "%output"
hash-digits¶
展示 SHA3 哈希值的十六进制位数。
H¶
hooks¶
设置包含描述所有已定义钩子的 JSON,该值是一个对象数组,每个对象描述一个钩子。
示例
{
"type": "after-receive", // 钩子的类型
"cmd": "command-to-run", // 要运行的命令
"seq": 50 // 按此顺序运行
}
http-port¶
https-login¶
如果设置为 true ,那么 VisionByte 网络服务器将把未加密的登录屏幕请求重定向到 HTTPS 。
I¶
ignore-glob¶
设置值为 GLOB 模式 列表,与其匹配的文件在执行 add 、addremove 、 clean 和 extras 命令时将被忽略。
示例
*txt
K¶
keep-glob¶
设置值为 GLOB 模式 列表,与其匹配的文件执行 clean 命令时不会被删除。
示例
*.exe
L¶
large-file-size¶
vb 将任何大于此值的文件视为大文件。如果您尝试 add
或 commit
一个大文件,vb 可能会发出警告。将此值设置为 0 或更小可禁用所有此类警告。
大文件大小设置。VsionByte 将任何大于此值的文件视为 “大文件”。如果 add 或 commit 一个超过该设置大小的大文件,VisonByte 可能会发出警告。将此值设置为 0 或更小可禁用所有此类警告。
localauth¶
本地认证设置。
设置值 true 或者 1 为启用,则要求来自环回地址(127.0.0.1)的 HTTP 连接使用密码进行身份验证。如果设置为 false 或者 0 ,则某些 HTTP 请求可能被授予完整的 “Setup” 用户权限,而不必提供登录凭据。此机制允许 vb ui 命令提供对仓库的完全访问权限,而无需用户先登录。
为了无需登录即可授予完整的权限,必须满足以下条件:
此设置必须关闭(
vb settings localauth 0
)
HTTP 请求通过环回 TCP/IP 地址 (127.0.01) 或 SSH 到达。
请求必须是 HTTP,而不是 HTTPS。(此限制旨在帮助防止意外向通过反向代理到达的请求提供 “Setup” 权限。)
为了获得最大安全性,请将 localauth 设置为 1。但是,由于(2)(3)(4)的限制,在大多数安装中,尤其是在工作站上的克隆仓库中,将 localauth 设置为 0 应该是安全的。将 localauth 保留为 0 可使 vb ui
命令更方便使用。
lock-timeout¶
这是签入锁在服务器上保留的秒数,在锁过期之前。默认为 60 秒延迟。将此值设置为零可禁用签入锁机制。
此值应在用户自动同步其工作的服务器上设置。此设置对客户端仓库没有影响。只有当所有用户都自动同步到同一台服务器时,签入锁定机制才有效。
签入锁是一种建议机制,旨在帮助防止由于签入竞争而导致意外分叉,因为在安装中许多用户都提交到同一个分支并且启用了自动同步。由于分叉是无害的,因此禁用此机制没有任何危险。但是,保持签入锁处于开启状态可以帮助防止不必要的混乱。
M¶
main-branch¶
主分支设置,默认为 trunk
。
manifest¶
清单文件设置。
清单定义了签入。清单包含项目中每个文件的工件列表和相应的文件名,以及诸如父签入、创建签入的程序员的用户名、签入的创建日期和时间以及与签入相关的任何签入注释等信息。
如果启用,每次签出时自动创建文件 manifest
和 manifest.uuid
。
可选择使用字符组合 r
表示 manifest
,u
表示 manifest.uuid
,t
表示 manifest.tags
。SQLite 和 VisonByte 仓库都需要清单。
max-cache-entry¶
最大缓存数量设置。这是 Web 缓存中允许的 .tar 、.zip 和 .sqlar 缓存的最大条目数。
max-loadavg¶
系统最大负载。如果系统平均负载超过此值,则不允许访问某些 CPU 密集型网页(例如:/zip、/tarball、/blame) ,设置值为 0.0
表示无限制,这仅适用于 unix。只有此值的本地设置才会产生影响,因为当作为 Web 服务器运行时,VisionByte 不会打开全局配置数据库。
max-upload¶
HTTP 请求的最大上传限制。
mimetypes¶
文件扩展名到 mimetypes
的映射列表,每行一个。如: foo application/x-foo 。按此设置中列出的顺序比较文件扩展名,不区分大小写。文件扩展名上允许但不要求以 .
开头。
mtime-changes¶
当前开启时,对所有托管文件使用文件修改次数(mtimes)来检测文件何时被修改。如果禁用,则对所有托管文件进行散列以检测更改,这对于大型项目来说很慢。
mv-rm-files¶
如果启用,mv 和 rename 命令也将移动签出范围内的相关文件,并且 rm <commandline/rm>
和 delete <commandline/delete>
命令也将从签出范围内删除相关文件。
P¶
pgp-command¶
用于在签入时清除清单签名的命令。默认值为 gpg --clearsign -o
。
preferred-diff-type¶
设置确定网页格式,默认格式为 diff
,设置值:
1
:统一差异2
:并排差异
如果省略此设置或者其值为 0 或更小,则会被忽略。
对于不同的网页,如果查询参数未指定差异类型( 1 与 0 ),并且该设置被省略或小于 1,则根据对请求是否来自移动设备的猜测来选择差异类型。移动设备获得统一差异,桌面获得并排差异。
proxy¶
HTTP 代理的 URL。如果未定义或设置为 system
,则 http_proxy
环境变量为其默认值。如果设置为 off
,则使用直接 HTTP 连接。
R¶
redirect-to-https¶
指定是否将 http://
请求重定向到 https:// URI
。
0
:默认值,表示不重定向;1
:表示仅重定向/login
页面;2
:表示始终重定向。
relative-paths¶
显示更改和附加内容时,报告相对于当前工作目录的相对路径。
repo-cksum¶
每次签出时计算所有文件的校验和,以再次检查正确性。在大型仓库上禁用此功能可提高性能。
repolist-skin¶
仓库外观设置。
如果非零,则使用此仓库作为仓库列表的外观,例如由以下仓库列表创建的:
vb server DIRECTORY –repolist
vb ui DIRECTORY –repolist
vb http DIRECTORY –repolist
CGI 脚本中
repolist
选项
vb all ui
vb all server
搜索所有仓库(按字典顺序),并使用第一个具有非零 repolist-skin 设置值的仓库作为仓库列表页面的外观。如果列表中没有任何仓库具有非零 repolist-skin 设置,则仓库列表将使用未修饰的 HTML(无外观)显示。
如果 repolist-skin 的值为 2,则在用例 1 至 4 中该仓库将从列表中省略,但对于用例 5 和 6 则不会省略。
robot-restrict¶
设置值为 GLOB 模式 列表,该模式匹配那些不允许来自机器人发出的复杂 HTTP 请求的页面。该设置值推荐值为:
S¶
safe-html¶
该设置控制是否允许在 Markdown 格式的文档中使用不安全的 HTML 元素(例如 SCRIPT 或 STYLE 标签)。默认情况下,不安全的 HTML 处于禁用状态。如果此设置存在且为字符串,则该字符串中的字母可以在各种情况下启用不安全的 HTML:
-b
:嵌入文档中允许不安全的 HTML-f
:论坛帖子中允许不安全的 HTML-t
:ticket 中允许不安全的 HTML-w
:wiki 页面上允许使用不安全的 HTML
self-pw-reset¶
允许用户请求将包含指向 /resetpw
页面的超链接的电子邮件发送到他们记录的电子邮件地址,从而允许健忘的用户无需管理员参与即可重置他们忘记的密码。
用户重置密码设置。允许用户请求将包含指向 /resetpw
页面的超链接的电子邮件发送到他们记录的电子邮件地址,从而允许健忘的用户无需管理员参与即可重置他们忘记的密码。
self-register¶
允许用户通过 HTTP UI (默认在端口 8080 上启动服务器)自行注册。例如希望在 wiki 系统中看到除 Anonymous
之外的其他名称,可以使用该设置,并且该设置的用户是无法被删除。
sitemap-extra¶
该设置扩展站点地图功能,使其超出默认配置链接,这些链接将作为 Documentation Search
条目(如果有)之前的 Home Page
条目的子项出现在 /sitemap
网页上。对于使用 /sitemap
页面构建汉堡菜单下拉菜单的皮肤,此处添加的新条目将显示在汉堡菜单中。
此设置应为分为三元组的 TCL 列表。每个三元组定义一个新条目:
第一个术语是
/sitemap
条目的显示名称第二个术语是用户单击条目时要访问的超链接。以
/
开头的超链接与仓库根目录相关。第三项是 TH1
capexpr
命令的参数。如果 capexpr 计算结果为真,则显示该条目。如果不是,则省略该条目。*
始终为真。
默认值为空,表示没有添加条目。
ssh-command¶
该命令用于通过 ssh:// 协议与远程仓库通信。
ssl-ca-location¶
包含 PEM 编码的 CA 根证书的文件的完整路径名,或包含由 OpenSSL 要求的证书哈希形成的文件名的证书目录。 如果设置,这将覆盖操作系统默认的 OpenSSL CA 列表。如果未设置,将使用默认列表。某些平台可能会添加其他证书。如果 CA 根的确切内容对您的应用程序至关重要,则需要检查您的平台行为。
此设置会被环境变量 SSL_CERT_FILE 和 SSL_CERT_DIR 覆盖。
ssl-identity¶
包含 PEM 格式的证书和私钥的文件的完整路径名。通过连接证书和私钥文件来创建。 除了正常的密码验证之外,这个身份还会出现在 SSL 服务器中,用来验证该客户端的身份。
T¶
tclsh¶
设置外部 TCL 解释器的名称,用于运行由各种 diff 命令的 --tk
选项启动的 GUI 差异查看器。
th1-setup¶
创建和初始化 TH1 解释器后要评估的设置脚本。默认情况下,此设置脚本为空,不执行任何额外的设置。
th1-uri-regexp¶
指定 TH1 脚本的 HTTP 请求中允许哪些 URI。如果为空,则不允许任何 HTTP 请求。
ticket-default-report¶
如果此设置具有字符串值,则当工单搜索页面查询为空时,将显示具有此标题的报告。如果设置为空(默认),则不显示任何报告。
U¶
user-color-map¶
用户颜色映射设置可用于覆盖用户颜色选择。该设置是一个空格分隔的单词对列表,每对列表第一个单词是登录名,第二个单词是颜色选择器算法使用的替代名称。 此列表尽量简短,仅使用此映射来解决普通用户之间的颜色冲突。
访问 /hash-color-test?rand
获取列表中每对单词的第二个单词的建议名称列表。
uv-sync¶
未版本化文件管理。如果设置为 True,则自动发送未版本控制的文件作为 vb clone 或 vb sync 命令的一部分。默认值为 false,需要使用 -u
选项来克隆或同步未版本控制的文件。
W¶
web-browser¶
当给定 URL 作为参数时,用于启动首选 Web 浏览器的 shell 命令。 Windows 系统上默认为 start
, Mac 系统上默认为 open
,在 Unix 系统默认为 firefox
。
comment-format¶
设置将时间线注释打印到控制台的默认选项。
全局
--comfmtflags
命令行选项(或别名--comment-format
)可以覆盖此设置。设置值包括:
1
:激活传统的注释打印格式(默认);0
:激活较新的(非传统)评论打印格式;2
:修剪前导和尾随的 CR 和 LF 字符;4
:修剪前导和尾随的空格字符;8
:尝试在单词边界处换行;16
:在嵌入其他文本的原始注释前换行。备注
为了保留换行符,请激活较新的(非旧式)注释打印格式(即设置为
0
,或不包括1
的组合)。也可以通过
/setup_timeline
网页配置在 Web UI 上显示的时间线评论选项。