jj-vcs/jj

FR: Use filesets for sparse checkouts

Open

#7 815 ouverte le 22 oct. 2025

Voir sur GitHub
 (15 commentaires) (1 réaction) (0 assignés)Rust (1 052 forks)batch import
enhancement🏗️good first issue

Métriques du dépôt

Stars
 (28 830 stars)
Métriques de merge PR
 (Merge moyen 23j 5h) (46 PRs mergées en 30 j)

Description

After reading the Sparse Patterns V2 design doc I was wondering why we don't use the Filesets DSL to describe paths of a sparse checkout? Is there something I am missing or was that simply not considered as a possibility? (I just did a quick search which revealed nothing, but maybe I missed the argument against it...)

Suppose I have the following files in my working copy:

project1/foo.txt
project1/bar.txt
project2/foo.txt
project2/bar.txt
...
projectN/foo.txt
projectN/bar.txt

Now I want to restrict the checked out files to */foo.txt. Since both the current implementation as well as the Sparse Patterns V2 design doc use prefix-matching only (I.e. no glob-patterns) I really have to list all the files I am interested in:

jj sparse set --clear --add 'project1/foo.txt' --add 'project2/foo.txt' ...
# for the lazy ones:
ls */foo.txt | jj sparse edit --config 'ui.editor="tee"'

However, IMHO a simple jj sparse set 'glob:"*/foo.txt"' would be the better user experience.

Would a contribution with that change be accepted?

Guide contributeur