Skip to content

gitmv_orphans: one-liner com && e aspas simples escapam do invariante #30

Description

@CRangelP

Duas limitações conhecidas do extrator da seção 6 do scripts/coherence_test.sh, achadas na quarta revisão do lote 3 e deixadas registradas em vez de corrigidas.

1. mkdir -p X && git mv ... numa linha só (falso positivo, direção perigosa)

A regra do mkdir termina em next, então a linha nunca chega à regra do git mv. Pior: todo token não-flag da linha entra no conjunto de diretórios criados, então &&, git, mv e os dois caminhos viram "diretórios cobertos" — e podem isentar um move genuinamente descoberto mais adiante no mesmo bloco.

Nenhuma doc usa essa forma hoje, por isso não morde. Mas é a direção que passa verde estando errado.

2. mkdir -p 'src/q' com aspas simples (falso negativo)

O args() remove só aspas duplas, então made["'src/q'"] não casa com o destino src/q de um git mv j src/q/j — o invariante reprova documentação correta. A fixture do autoteste só exercita a forma com aspas duplas. É autoconsistente com o comentário, que declara só aspas duplas, e falha na direção segura.

Etapas

  • Tratar && e ; como separador de comando antes de aplicar as regras, em vez de decidir por linha.
  • Normalizar aspas simples junto com as duplas no args().
  • Estender a fixture do autoteste para pagar por cada regra nova — hoje ela só cobre a forma nua de dois argumentos.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions