Situatie
Ai fisiere versionate care sunt updatate sub diferite modalitati (software update, git etc) sau folosesti svn pentru arhivarea fisierelor generate automat? Inseamna ca esti deja obisnuit cu comenzile svn add si svn rm. Acest mecanism se poate automatiza…
Solutie
Puterea shell-ului din Unix provine din usurinta cu care tu poti da comenzi simple, majoritatea comenzilor folosind standard input-output.
Exemplu: Output-ul comenzii svn status poate fi procestata de catre sed (stream editor) astfel inca sa rezulte numele corect al fisierului pentru comenzile svn add sau svn rm cu ajutorul xargs , care transforma input-ul standard in parametrii command-line-ului pentru comanda respectiva.
Asadar, daca vrei sa marchezi toate fisierele noi adaugate in plus catre svn si toate fisierele sterse din versiunea repository-ului, observa urmatoarele:
svn status | sed -n 's/^?.......(.*)/1@/p' | xargs -d 'n' svn add svn status | sed -n 's/^!.......(.*)/1@/p' | xargs -d 'n' svn rm
Diferente intre cele doua comenzi (! vs. ? si rom vs. add) sunt evidentiate cu scop educational.
Leave A Comment?