Съвети за преименуване на променливи и обединяване на промени в Darcs
Преименуване на променливи и обединяване на промени в Darcs
В наши дни hg (Mercurial) срещу git е добавен към традиционните холивари като vi срещу emacs. И двете са разпределени системи за контрол на версиите (DVCS). Какво е тяхното предимство пред старите централизирани системи и как да се използват новите отдавна е написано. Изборът на тези две системи обаче не е ограничен, някои маниаци успешно използват други системи. А сред алтернативните системи darcs се откроява напълно .
Прочетох ръководството за darcs тук и установих, че има една невероятна характеристика, която, доколкото знам, по-популярните му братя нямат. А именно, поддръжка за замествания в управлявани файлове. Например можете да преименувате функция или променлива в един клон, да правите други промени, засягащи същите редове в друг клон и след това, по напълно магически начин, автоматично да обедините промените на двата клона. И не се изисква ръчно обединяване. Възможност, толкова необичайна, че исках да споделя.
Основната разлика между darcs и неговите братя: той не проследява състоянието на директорията с файлове (и историята на промените), а съхранява самите промени - кръпки. А състоянието на работната директория се определя просто като резултат от прилагането на всички натрупани промени-кръпки. Всяка такава промяна е обратима и някои могат да бъдат пренаредени безболезнено (и това прави сливанията много лесни).