Дигитална машина на времето

от IvanK

Всички вече сме чували за revision control systems – кой от някой блог, кой четейки вестник в тоалетната – и причините да не се използва това чудо намаляват по бързо от петрола в Ирак…

Subversion вече не веднъж ме е спасявал от “аа неее пак, &(@#^%” моменти, та реших и аз да кажа две-три думи за “защо, как, къде, колко…”

Имахме един проект, който в своя стадий на развитие, стигна до етап “final”, и следователно стоеше във папка “Nash_proekt_final”, идва обаче клиента, и казва “ама т’ва не е final”, следва преправяне, след което имаше нова папка “Nash_proekt_final_final”, да ама и това не им се хареса – “Nash_proekt_final_final_final”, “Nash_proekt_final_final_fnal_final” … Не знам на вас, но на мене това хич не ми харесва (може да е фън, ама като се питаш “ама кой final е final?” )

Системата със зип архивите също много често се дънеше, та си викам хайде да пробвам нещо добро – и така си инсталирах Subversion и се оказа, че е супер лесно – правя си едно “repository” (нещо като база данни за всичките промени) и казвам коя папка ще е асоциирана с това repository и хоп, готово. Сега, когато свърша нещо просто правя right click -> Svn Commit, и мога да си трия, режа, мажа, кърпя и въобще да правя каквото си искам, и когато нещо се прецака, винаги има “по стара версия” към която да се върна, независимо дали става дума за текстови файлове, картинки, видеа, директории или psd-та всичко се пази, досущ като машина на времето. Страшно отпускащо е.

Има обаче бая други бонуси освен това – повечето plugin-и на rails се пазят в такива repository-та и сега вече е супер лесно да си тегли човек последните “ръбови” версии, пък и може да се модифицира кода им, и да се създават patch -ове и тем подобни глезотийки. Няколко човека могат да работят едновременно по един и същи проект, и когато дават “commit”, то културно си казва къде има препокривания на кода и дава възможност лесно да се слеят версиите, пък и може да си бачкаш по един проект от различни машини и да не се притесняваш, че си забравил да копираш някой файл.

Най якото обаче е, че можеш да си пуснеш една джаджа, наречена Capistrano, с която забравяш за всички проблеми със слагането на сайта “live” – просто пишеш “cap deploy” и то си взима последната версия от repository-то, слага я на сървъра, update-ва базата с последните промени, променя permission-ите на нужните места, и докато прави всичко това, слага специална “maintenance” страница, а ако новата версия е нещо бъгава, само със “cap rollback” може да се върна към предишната версия, като това става практически мигновено (щото променя само един symlink), абе въобще е като мана небесна, лекарство за спин и Мила Йовович взети заедно.

Коментирай