Improve case-sensitive path comparison
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 25/100
- issue の種類
- 機能追加
- 明瞭さ
- おおむね明確
- 活発さ
- 停滞
- 技術スタック
- csharp
調査の方向性
ファイルやテストは指定されていません。まず既存のパス比較実装とその公開 API を特定し、次にプラットフォームのデフォルトがどのように選択されるかを追跡してください。テキスト比較、プラットフォームのデフォルト、ファイルシステム対応の比較ポリシーが定義され、呼び出し側が comparer を選択でき、プラットフォームのデフォルト動作が維持されれば、issue は完了です。
索引モデルが issue の本文から書いたものです。
説明
I suggest the following changes.
- Introduce three different path comparator kinds.
-
Textual only. This one should operate on strict string equality, and named accordingly (something like
StrictStringPathComparer?). -
Platform-default comparer: should implement case-sensitive comparison on Linux, and case-insensitive (probably with corresponding relaxations related to Unicode normalization) on Windows and macOS.
-
File-system-aware comparer: for each compared path component, should compare the actual case sensitivity of the corresponding file system subroot. For non-existent paths, it should use the platform-dependent policy of calculating the case sensitivity for new subdirectories (is it normally taken from the parent directory?).
This one is obviously IO-intensive, so I'm thinking of introducing some sort of "sensitivity cache" that'd store the lists of checked paths and subtrees in a trie data structure, and would be used for one or multiple operations (probably one per comparer instance, with the ability of manual reset).
-
- Allow the paths to use different comparers; platform-default being used by default, as one giving the best precision while not losing performance dur to intensive IO.
- 主要言語
- C#
- スター
- 107
- フォーク
- 22
- 平均マージ
- 3日 2時間
- マージ済み PR(30日)
- 13
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
ForNeVeR/TruePath のほかの issue
-
enhancement good first issue help wanted
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
ForNeVeR/TruePath#165 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
-
enhancement help wanted
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
メンテナーはふだん 1 日以内に返信
-
enhancement help wanted
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
メンテナーはふだん 1 日以内に返信
-
`path.GetFiles(LocalPathPattern)`対応中かも @hamdiakin が 4 日前に担当しました。 オープンenhancement good first issue help wanted
難易度 2/5 1〜3時間 初心者へのやさしさ 55/100
ForNeVeR/TruePath#202 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
-
Dependency Dashboardオープンdashboard
難易度 3/5 1〜2日 初心者へのやさしさ 15/100
メンテナーはふだん 1 日以内に返信
ForNeVeR/TruePath の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
Volodymyr-Petrunin/Bankomaten#45 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
AvaloniaUI/Avalonia#22420 ·
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 90/100
dotnet/SqlClient#4823 · コメント 1 件 ·
メンテナーはふだん 2 日以内に返信
-
type/automation type/tech-debt
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
area-testing p1-recommended
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
メンテナーはふだん 1 日以内に返信