subversion vs people

De câteva zile orice încercare de “commit” în Subversion are ca rezultat următorul mesaj:

2014-08-13_123059

La vederea mesajului mă izbește diletantismul jenant al autorilor: cu ce ocazie i se comunică clientului (care poate fi un utilizator oricât de “ordinar” la urma urmelor) calea completă unde se află pe server fișierele pentru Subversion (repository). Nu e prima idio…sincrazie patronată de Fundația Apache despre care povestesc.

 

Ce probleme sunt cu mesajul de mai sus?

1. potențiale probleme de securitate: de ce i-aș da pe tavă clientului (care poate fi un hacker în blană de programator cinstit) informații despre configurație și locațiile de pe server unde poate găsi lucruri interesante?

2. potențiale probleme legate de dezvăluirea de informații private: dacă în mesaj ar apărea calea

D:\Fuck_NSA\UniculFolderFaraPorno\BasescuSecurist\ProiecteDeRahatColaboratoriTampiti\CCC\db\revs\777 ?

 

Nu e vorba de vreo setare în client pentru că la client informația asta nu ar trebui să ajungă. Eventual poate fi o setare greșită pe server (debug? diagnostic?) dar serverul e instalat cu toate setările implicite și nu găsesc nicăieri cum aș putea schimba comportamentul așa că nu cred că e vorba de configurare implicită greșită ci de pură “naivitate”.

 

Când văd cât de subțire e antrenamentul subversivilor în materie de securitate mă întreb dacă asta e cea mai bună sculă unde să-ți păstrezi sursele (și îmi și răspund imediat).

 

Era să uit: dacă era doar mesajul era bine, problema e ca istoricul proiectului în cauză e corupt dincolo de posibilitatea (mea) de recuperare. Cum revizia 717 mi-e complet indiferentă mi-ar plăcea MULT să existe o posibilitate să renunț la ea și să-mi văd de viață. Nu am găsit calea… Dacă unul din miile de fișiere e corupt, poți să-ți iei adio de la întregul istoric.

Sigur că un om cu scaun la cap își ține datele pe ceva suport redundant și are 700 și ceva de copii de siguranță pe stickuri, în nori, pe CD-uri. Am încercat și eu să par cu scaun la cap (în ciuda faptului că folosesc softicuri de la Apache) și mi-am făcut destul de multe backup-uri. M-am dus direct la ele ca să găsesc fișierul 717 (fără extensie!) de pe vremea când era sănătos. Ce glumă proastă! Eroarea apare doar dacă încerci să faci commit la un fișier care s-a schimbat ultima dată în revizia cu defect (717). Dacă de 3 ani fișierul nu s-a schimbat, poți sta liniștit 3 ani cu datele corupte, timp în care faci relaxat cele 700 de backup-uri și o dată pe an arunci CD-urile FOARTE vechi dacă tot nu ai avut vreo problemă cu datele arhivate acolo și dacă tot le ai în 700 de exemplare mai recente.

In extremis pot încerca să șterg fișierul 717 (fără extensie!) cu toate că sunt avertizat grijuliu într-un fișier README să-mi văd de treabă:

This is a Subversion repository; use the ‘svnadmin’ tool to examine it.  Do not add, delete, or modify files here unless you know how to avoid corrupting the repository.

Recunosc că nu sunt destul de competent încât să evit coruperea datelor (ca dovadă că le am corupte fără să fi făcut nimic special pentru asta) dar din momentul ăsta ce mai am de pierdut? Așa că am încercat… dar nu l-am păcălit:

2014-08-19_134334

 

Sinteză din înțelepciunea populară:

When you have a corrupt repository, your only real chance in saving the information is to do a dump and load. If you’re lucky, doing a dump and load will sometimes correct the corruption.

Ca de obicei când vine vorba de free/open source, dacă nu îmi convine pot pune mâna să fac cum îmi place (de exemplu să fac un fork pentru Subversion care corupe mai rar datele). Chestia e că nu mă deranjează CHIAR așa de mult încât să ajung până acolo, prefer să schimb VCS. Și aici intervine o problemă: cum să fac să nu schimb pe dracu’ cu tac’su?

 

PS: scuze pentru englezisme dar e greu să găsesc traduceri bune pentru unii termeni (commit, repository).

PPS: dacă e cineva interesat de alte secrete, parole sau date private pot da click pe Stack trace și postez rezultatul.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *