sapling/eden/scm/tests/test-sparse-casecollision.t
Muir Manders 44343769f8 collapse edenscm.mercurial package into edenscm
Summary:
We want to rename away from "mercurial". Rather than rename the "mercurial" Python package, we opted to just collapse it into the parent "edenscm" package. This is also a step towards further organizing we want to do around the new project name.

To ease the transition wrt hotfixes, we now replace "edenscm.mercurial" with "mercurial" to fix imports within base64-python extensions.

Reviewed By: sggutier

Differential Revision: D38943169

fbshipit-source-id: 03fa18079c51e2f7fac05d65b127095da3ab7c99
2022-08-24 13:45:53 -07:00

52 lines
1.4 KiB
Perl

#chg-compatible
#debugruntest-compatible
#require no-icasefs
$ setconfig workingcopy.ruststatus=False
Test sparse profiles in combination with case-collisions outside of the
profile.
$ cat > force_case_insensitivity.py <<EOF
> # We force the issue at update time, by monkey-patching util.fscasesensitive
> # and util.normcase to act like a case-insensitive filesystem
> from edenscm import encoding, util
> util.fscasesensitive = lambda *args: False
> util.normcase = lambda p: encoding.upper(p)
> EOF
$ hg init myrepo
$ cd myrepo
$ enable sparse
$ mkdir profiles
$ cat > profiles/sparse_profile <<EOF
> [exclude]
> colliding_dir
> EOF
$ hg add profiles -q
$ hg commit -m 'profiles'
$ mkdir colliding_dir
$ cd colliding_dir
$ echo a > a
$ echo A > A
$ hg add A a
warning: possible case-folding collision for colliding_dir/a
$ hg commit -m '#1'
$ cd ..
$ hg up -r 'desc(profiles)'
0 files updated, 0 files merged, 2 files removed, 0 files unresolved
The case collision is ignored when the sparse profile is enabled:
$ setconfig extensions.force_case_insensitivity=../force_case_insensitivity.py
$ hg up -r .~-1
abort: case-folding collision between colliding_dir/[Aa] and colliding_dir/[aA] (re)
[255]
$ hg sparse --enable-profile profiles/sparse_profile
$ hg up -r .~-1
0 files updated, 0 files merged, 0 files removed, 0 files unresolved