如何在 Fossil SCM 中重命名 wiki 页面?

Posted

技术标签:

【中文标题】如何在 Fossil SCM 中重命名 wiki 页面?【英文标题】:How can you rename a wiki page in Fossil SCM? 【发布时间】:2014-04-28 01:01:11 【问题描述】:

在我的特殊情况下,我想重命名我的项目(在管理员、配置、项目名称中),但是如果我这样做了,那么当我在主菜单中单击主页时,什么都不会显示,因为还没有 wiki名称与我的新项目名称匹配的页面。我想重命名我的项目,并重命名我的(唯一)wiki 页面以匹配。

【问题讨论】:

【参考方案1】:

原则上可以通过在 SQLite 文件编辑器中运行以下命令来重命名它(如果您从“原始 SQL 命令”页面尝试,只有第一个 UPDATE 是成功的):

UPDATE attachment SET target='new name' WHERE target='old name';
UPDATE event SET comment=':new name' WHERE comment=':old name';
UPDATE event SET comment='+new name' WHERE comment='+old name';
UPDATE event SET comment=replace(comment, '[old name]', '[new name]') WHERE comment like '%[old name]%';
UPDATE tag SET tagname='wiki-new name' WHERE tagname='wiki-old name';

乍一看它有效,但随后您将无法更新内容(实际上这对于保护文章很有用)。

为了使重命名生效,您还必须修改包含文章的二进制 blob,并更新增量以防您之前进行过编辑。

我正在研究自动执行上述操作的this script。要使用它,您必须在控制台中执行以下操作:

fossil_editor.py oldname newname repo.fossil

如果一切顺利,应该会出现这样的东西:

This is fossil version 2.16 [7aedd56758] 2021-07-02 12:46:01 UTC
Artifact 61e7cc32f7 updated to 84b8195fe6
Artifact c2290869ad updated to 3ff4f96773
Artifact e993cd0331 updated to bc7e8d52df
References updated

【讨论】:

【参考方案2】:

您无法重命名 wiki 页面,因为 wiki 页面由其名称标识;这无异于删除旧页面。而且您不能删除 wiki 页面; Fossil 永远不会删除现有的工件。

但是您可以创建一个 wiki 页面(使用您项目的新名称),并将旧页面的内容复制到新页面。如果您从旧 wiki 页面中删除所有文本,该旧页面将从 wiki 页面列表中消失。

wiki rename 命令可以自动执行这一系列操作,但到目前为止还没有这样做。您可以在fossil forum 上发布请求,看看是否有开发人员接听了它。 :-)

【讨论】:

以上是关于如何在 Fossil SCM 中重命名 wiki 页面?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Fossil SCM 提供静态文件

Fossil JSON API:如何创建 wiki 页面?

更改 Fossil-SCM 时间线页面 HTML

Fossil SCM:将叶子合并回树干

我打破了化石-scm - SQLITE_NOTADB

Fossil 中的全文搜索