Keď sa pohybujete v niečom cudzom klonovanom repozitári s množstvom rôznych súborov a tu a tam niečo poupravujete, oplatí sa používať dobré nástroje na zrýchlenie práce.
Keďže ide o repozitár, pre správu verzií prirodzene siahnem po git. Na
hľadanie súborov sa mi osvedčil nástroj fd, jedna z moderných alternatív
k GNU find. Jadrom veci však zostáva prehľadávanie obsahu súborov, aby
ste pochopili ich záludnosti — zvlášť keď škriabete v kóde napísanom v
neznámom jazyku alebo frameworku.
Na rýchle hľadanie a výpis súborov obsahujúcich reťazec alebo regulárny
výraz prvý napadne GNU grep. Aj ten však dostal množstvo moderných
náhrad. Pre väčšinu vyhľadávaní v obsahu súborov používam rg.
Ignorovanie určitých súborov #
Moderné alternatívy štandardných GNU nástrojov prinášajú mnoho vylepšení. Okrem potenciálneho zrýchlenia, ktoré môže byť v každodennom použití zanedbateľné, ich funkcionalita zahŕňa aj ignorovanie určitých súborov. O vylúčení ignorovaných súborov som už písal. Tento príspevok sa však na tú tému pozerá z úplne iného uhla.
Potreboval som vylúčiť súbory zo zložky content/ z výsledkov
vyhľadávania. Najjednoduchšie by bolo vložiť tú zložku do .gitignore a
rg by to zachytil, keďže štandardne vylučuje súbory ignorované správou
verzií. Nechcel som však tú zložku z verzionovania vyradiť.
Takže som tú zložku vložil nie do .gitignore, ale do .rgignore.
Výsledky vyhľadávania sa vyčistili a chvíľu som bol spokojný. O chvíľu
neskôr, pri commitovaní, sa .rgignore zobrazoval ako nesledovaný súbor.
Nesledované súbory môžu byť náhodne zahrnuté do repozitára, ak nie je
dostatočná pozornosť. Tento súbor s repozitárom nemal nič spoločné —
pomáhal mi len pochopiť kód — takže som ho nechcel commitovať.
Len o jednu vrstvu viac #
Preto som vložil .rgignore do čerstvo vytvoreného .gitignore. Situácia
sa mi zdala vtipná, lebo .rgignore sa síce prestal zobrazovať ako
nesledovaný, ale .gitignore sa tak zobrazovať začal. V podstate som len
pridal ďalšiu vrstvu odkladajúcu problém s nechceným commitovaním
nepotrebného súboru, najmä náhodným.
Aby som uzavrel kruh, vložil som .gitignore do neho samého spolu s
.fdignore. Použiť .gitignore na ignorovanie seba samého. To sa asi
stalo aj iným ľuďom, ale pre mňa to bola prvýkrát. Vyriešilo to ale
problémy:
- Zúženie výsledkov
rglen na skutočný kód - Zabránenie náhodnému commitnutiu nastavení
- Skrytie celého tohto bordelu
Stalo sa vám niekedy, že ste museli gitignore-ovať samotný .gitignore?
Toto je 77. príspevok #100daystooffload.