0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[Tips] chezmoiの管理から外したファイルがローカルに残り続ける問題を.chezmoiremoveで解消する

0
Posted at

はじめに

dotfilesをchezmoiで管理しているのですが、使わなくなったファイルをソースディレクトリから削除しても、ターゲットの実ファイルはそのまま残り続けます。

複数マシンで運用していると他のマシンに使わなくなったファイルが残り続けてしまうので、.chezmoiremoveファイルを使って削除されるようにしているので、紹介します。

.chezmoiremove について

If a file called .chezmoiremove (with an optional .tmpl extension) exists in the source state then it is interpreted as a list of targets to remove. .chezmoiremove is interpreted as a template, whether or not it has a .tmpl extension.

ソース状態で「.chezmoiremove」という名前のファイル(オプションで「.tmpl」という拡張子が付いている場合もある)が存在する場合、そのファイルは削除対象のリストとして解釈されます。「.chezmoiremove」は、拡張子が「.tmpl」であるかどうかにかかわらず、テンプレートとして解釈されます。

DeepLによる日本語訳

リファレンスの説明の通り、削除対象のターゲットのリストとして解釈され、chezmoi applyのタイミングで該当するファイルが削除されます。

そのため、.chezmoiremove自体をGit管理することで、どのマシンでもchezmoi applyをするだけで削除できるようになります。

.chezmoiremoveの例
.config/alacritty/alacritty.toml
.config/zellij/config.kdl

私の運用例

.chezmoiremoveは「ファイルを管理から外すときに追記する」という性質上、つい忘れがちです。
私はdotfilesリポジトリにルールとして明文化し、ClaudeやCodexから参照できるようにしておくことで、私が忘れてもレビューでAIが指摘してくれるようにしています。

CLAUDE.mdの一部
- chezmoi 管理から外すファイルは `.chezmoiremove` にも追記する
  - ソースから消すだけではターゲット(ホーム)の実ファイルは残るため

さいごに

chezmoiの管理から外したファイルがローカルに残り続ける問題は、.chezmoiremoveに追記することで解消できます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?