4

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

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

4

2 回答 2

6

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

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

对于可以wiki rename自动执行这一系列操作的命令,有一些话要说,但到目前为止还没有完成。您可以在化石论坛上发布请求,看看是否有开发人员接受了它。:-)

于 2014-03-21T14:51:37.067 回答
0

原则上,它可以通过在 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,并更新增量以防您之前进行过编辑。

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

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
于 2021-10-30T12:55:56.367 回答