git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Precious files and the .jj directory

From
Junio C Hamano <gitster@pobox.com>
Date
Jul 22, 2025, 17:09 UTC
Message-ID
<xmqqzfcwrw3k.fsf@gitster.g>
In-Reply-To
<CAFA9we_yDs9SPL2pJU_WiUz8CqvQ8ZPHwXBfTzHHbt-QGV34qA@mail.gmail.com>
Jade Lovelace <lists@jade.fyi> writes:
Show 8 quoted lines
> I'm aware of the many discussions about precious files [1] [2] [3],
> but I wanted to highlight a particularly pernicious category of
> precious files that are really hard to do the right thing about with
> Git: namely, other version control systems. In particular, as I
> learned in [4], `git clean -ixd` will of course list `.jj` to delete
> and delete it if you have it in gitignore. But yet having it untracked
> results in it possibly accidentally getting added and also clutters up
> `git status`.

Yes, that is a very concise summary of what happens if you do not support "ignored but precious" as a class of files distinct from "ignored and expendable". Git only supports the latter and we wish we had also the former is where we are, after "many discussions" you have read.

> It's my understanding that git has more file deletion edge cases of
> gitignored files than of untracked ones so the latter is theoretically
> safer. Is that correct?
Sorry, but I am not sure what apples and oranges you are comparing.

You list a thing in the .gitignore file or the .git/info/exclude file (collectively known as "exclude mechanism") and the thing becomes "ignored an dexpendable". Your "add" will warn when you try to add it, because it is ignored. Your "checkout", "merge", etc., will happily overwrite such a path when it needs to be removed to make room, because it is expendable.

You do not tell about a thing to the exclude mechanism, and the thing is "untracked, not ignored". Your "add" will happily add such a path, because it is not ignored. Your "checkout" and others will play safer and more careful, avoid removing it, stop operation that needs to remove the path in order to continue, because it is not expendable.

The only solution would be to add proper support for ignored but precious, I would think.

Previous: Martin von Zweigbergk
Message 4 of 4 in “Precious files and the .jj directory”
  1. Jade LovelaceJul 22, 2025
  2. Elijah NewrenJul 22, 2025
  3. Martin von ZweigbergkJul 24, 2025
  4. Junio C HamanoJul 22, 2025

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.