Skip to content

Enforce case-insensitive behaviour for matching and replacement in TfsNodeStructureTool #3129

@MrHinsh

Description

@MrHinsh

TfsNodeStructureTool currently evaluates mapping rules using case-insensitive matching, but performs replacements using case-sensitive behaviour.

This inconsistency allows a rule to be considered a match while failing to apply the corresponding transformation when the source path differs only by case. The result is a silent failure where mappings appear valid but do not execute.

Decision

Mapping behaviour must be case-insensitive for both matching and replacement.

Current Behaviour

  • Mapping rules match regardless of case differences in the source path.
  • Replacement may fail when casing differs between the mapping definition and the source path.
  • This leads to inconsistent and non-deterministic mapping outcomes.

Expected Behaviour

  • Matching and replacement both operate using case-insensitive rules.
  • Any mapping rule that matches must also reliably transform the source path.
  • Case differences in input paths must not affect mapping outcomes.

Proposed Change

Align replacement behaviour with matching by enforcing case-insensitive processing across both operations.

Acceptance Criteria

  • Mapping rules apply consistently regardless of case differences in the source path.
  • No scenarios exist where a rule matches but does not transform the path.
  • Existing mappings continue to behave correctly.
  • Behaviour is deterministic across all supported path mappings.

Impact

Failure to apply mappings correctly can result in incorrect area path structures during migration, leading to misplaced work items and loss of structural integrity.

Metadata

Metadata

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions