Subversion (софтуер): Разлика между версии

Изтрито е съдържание Добавено е съдържание
м замяна с n-тире
без препратки и източник ен У
Ред 4:
| лого =
[[Файл:Subversion-logo-cropped.png|250px|Subversion - logo]]
| разработчик = [http://en.wikipedia.org/wiki/Apache_Software_Foundation [Apache Software Foundation]]
| последна_версия = 1.8.1
| операционна_система = [http://en.wikipedia.org/wiki/Cross-platform [Cross-platform]]
| програмен език = [[C (език за програмиране)|C]]
| жанр = Управление на версии
| лиценз = [http://en.wikipedia.org/wiki/Apache_License [Apache лиценз]]
| уебсайт = http://subversion.apache.org
}}
Ред 17:
 
== История на Subversion ==
През 2000 г. новосъздадената американска компания [http://en.wikipedia.org/wiki/CollabNet [CollabNet, Inc.]]. започва да търси програмисти, които да напишат и развият заместител на [[CVS]] (“Concurrent Versions System” - първата система за контрол на версиите. Тя е [[Отворен код|open-source]] и поддържа мрежова връзка, което позволява на много програмисти от цял свят да работят заедно). Като първа такава система, [[CVS]] не е идеално изпипана и има много недостатъци, чието отстраняване става основна цел на програмистите. От CollabNet решават да започнат от нулата с нова система, като запазят основните идеи на CVS, но премахнат бъговете и грешките, които тя дава.
 
През февруари 2000 г. от CollabNet се свързват с Карл Фогел, автор на книгата ''Open Source Development with [[CVS]] (Coriolis, 1999)'' и му предлагат да се включи в работата по проекта за нова система за контрол на версиите. По стечение на обстоятелствата, точно по същото време Карл, съвместно с неговия приятел Джим Бланди, обмисля дизайн за нова такава система.<br /> През 1995 г., двамата с Джим Бланди създават фирмата ''Cyclic Software'', която предлага договори за поддръжка на [[CVS]]. Въпреки че скоро след това я продават, те продължават да използват [[CVS]] ежедневно в работата си и така се сблъскват с недостатъците ѝ, което ги навежда на мисълта, че е необходим по-добър начин за обработка и управление на информацията за версиите. Още преди да получи поканата от CollabNet за работа по проекта, Карл Фогел вече е наясно с основния дизайн и името на новата система – Subversion. Той веднага приема поканата за работа, а неговият приятел Джим Бланди успява да придума работодателя си, Red Hat Software, да го „дари” за неопределен период от време на CollabNet, за да може да участва и той в работата по проекта.
Ред 34:
Това, което прави една такава система полезна и ценна за разработчиците на софтуер е това, че предоставя възможност за подробно разглеждане на направените промени, които са довели до създаването на нова версия, за сравняване на версиите една с друга и за връщане на по-стара версия като актуална.
 
В основата на всяка една система за контрол на версиите, както е и при Subversion, стои хранилището на информация (''[http://en.wikipedia.org/wiki/Software_repository repository]''). При постъпване на нова версия на файл в хранилището, старата му версия се съхранява с дата и час или с други думи, съхраняват се всички версии на даден файл в хронологичен ред. Едно типично Subversion-хранилище съдържа файлове на повече от един проект, като всеки проект е поддиректория във файловата система на хранилището. Системата съхранява също и автора на всяка версия – по тази причина при свързване с хранилището всеки потребител се идентифицира с име и парола. Потребителите имат различни права – или да редактират файла (т.е. да запазват нови версии в хранилището) или само да четат данни. Тъй като повечето софтуерни продукти могат да работят само с по една версия на даден файл, а не с всички наведнъж, потребителят получава ''работно копие (working copy)'' на нужните му файлове, което съдържа изисканата от него версия от хранилището (в типичния случай – най-актуалната) и работи с него.
 
Системите за контрол на версиите могат да работят по един от следните модели – ''„заключи – промени – отключи”'' (“lock – modify – unlock”) и ''„копирай – промени – слей”'' (“copy – modify – merge”). Subversion работи по втория, но нека разгледаме и двата:
Ред 79:
== Инструменти ==
[[Файл:TortoiseSVN.png|мини|TortoiseSVN - подменю]]
'''TortoiseSVN''' – свободен open-source Windows-инструмент за ''Apache Subversion'' с лиценз от ''GNU General Public License (GPL)''. Управлява файлове и директории в реално време. TortoiseSVN се интегрира безпроблемно в [http://en.wikipedia.org/wiki/Windows_shell Windows-обвивката] (като например Windows Explorer). Това позволява на потребителя да продължи да работи с инструментите, с които е свикнал, без да му се налага да отваря приложението всеки път при необходимост от използване функциите за контрол на версиите, предоставени от Subversion.
 
Контекстното меню на TortoiseSVN е съвместимо с различни файлови мениджъри, което не задължава потребителя да използва Windows Explorer-a, може да го достъпва и чрез File/Open-диалоговия прозорец.
Ред 87:
Всички команди от Subversion са достъпни от контекстовото меню, където TortoiseSVN добавя и свое подменю.
 
'''SmartSVN''' – инструмент за ''Apache Subversion'' с платен лиценз. Написан е на [[Java]] и е съвместим с три различни операционни системи - [[Windows]], [[Linux]] и [[Mac OS X]]. От 2005 г. до 2012 г. SmartSVN бива разработван от немската компания ''[http://www.syntevo.com/ Syntevo Gmbh]'', която след това го продава на ''[http://en.wikipedia.org/wiki/Wandisco [WANdisco International Ltd]]''. Потребителският интерфейс на SmartSVN е подобен на този на нормалните файлови мениджъри (като например Windows Explorer) – всички директории и папки в дървовиден вид в лявата част на екрана и таблица с файловете в дясната част. Таблицата с файлове е устроена така, че последно променените файлове се намират най-отгоре, за да се улеснява потребителя при commit-ването им към сървъра на SVN. SmartSVN има и някои допълнителни функции като например режим на „ показване на разликите” (сравнява два текстови файла и подчертава различията), режим „решаване на проблеми”(сравнява три документа и помага с merge-ването им), както и вграден [[SSH]] – клиент.
 
Някои програмисти предпочитат инструментите на Subversion, които използват, да са вградени в работната им среда. Такива инструменти предлагат постоянна информация за състоянието на файловете и техните версии. Те също така добавят и командите на хранилището към основното меню на средата за разработване на софтуер. Примери за такива инструменти са '''[http://www.zeusedit.com/agent/index.html [Agent SVN]]''', '''[http://en.wikipedia.org/wiki/AnkhSVN [AnkhSVN]]''', '''Unified SCC''' и '''[http://en.wikipedia.org/wiki/VisualSVN [VisualSVN]]''' за използване съвместно с ''Microsoft Visual Studio'' и '''Subclipse''' (или Subversive) за работа с ''Eclipse''. Изброените инструменти позволяват файловете да бъдат добавяне, премахвани, ъпдейт-вани и т.н. без потребителя да напуска средата за разработване на софтуер (IDE), която използва. Различията във файловете, състоянието им и тяхната история на промените също са видими през средата.
 
'''blsvn''' е инструмент на Subversion, който осигурява механизми за съкратено изписване на извикванията на пътищата в хранилището. Пример за създаване на нов таг чрез blsvn например е <code>blsvn copy ~../trunk ~../tags/NewTag</code> . blsvn разширява сам аргументите си и така ги изпраща на Subversion. С инсталирането на този инструмент, потребителят не се задължава да използва само съкратени записи на пътищата. На тях се гледа като на опция.
Ред 95:
'''KDESVN''' – инструмент на Subversion, който поддържа режим на преглед на кода с описание на разликите между две версии във всеки ред и с бележка кой е направил промените. Този инструмент предлага и 3D графична визуализация на source-код дървото. Разработен е на С++ и използва библиотеките на KDE.
 
'''RabbitVCS''' – инструмент на Subversion, пригоден за работа през Linux. Той добавя функциите на системата за контрол на версиите към файловите мениджъри [[Nautilus]] и [http://en.wikipedia.org/wiki/Thunar [Thunar]] и предлага plugin-и за редактора [[Gedit]]. RabbitVCS може да се използва и за работа с [[Git (софтуер)|Git]].
 
'''WebSVN''' – инструмент, който предлага онлайн преглеждане на хранилището, историята на промените, коментарите при качване на нова версия на даден файл или директория, както и отваряне на кода в режим на цветно синтактично преглеждане. В последния режим кодът не може да бъде променян. WebSVN е разработен на PHP и се отваря през browser.
Ред 106:
! Име !! Език, на който е разработен !! Операционна система !! Лиценз !! Интегриране !! Език !! Мрежови протоколи !! Текуща версия !! Дата на последното обновяване
|-
| AgentSVN [http://zeusedit.com/agent/] || C, C++ || [[Microsoft Windows]] || платен, trial-версия || всякакви MS-SCCI съвместими среди (IDE), например [[Microsoft Visual Studio]], [[Microsoft SQL Server|Microsoft SQL Server Management]], [http://en.wikipedia.org/wiki/PowerBuilder [PowerBuilder]], Zeus и др. || Английски || http, https, svn, svn+ssh, file || 1.95 || {{Стартова дата и възраст|2012|02|07}}
|-
| AnkhSVN [http://ankhsvn.net/] || C# || [[Microsoft Windows]] || Apache License || Microsoft Visual Studio (всички версии, освен Express) || Английски || http, https, svn, svn+ssh, file || 2.5.12266 || {{Стартова дата и възраст|2013|11|12}}
Ред 116:
| EasySVN [http://svn-ref.assembla.com/easysvn.html] || C++ || [[Microsoft Windows]] x86 и x86-64 || GPL || Windows shell, Linux command line, [[Mac OS X]] Finder integration. Необходимо е да бъде инсталиран и TortoiseSVN. || Английски || http, https, svn || 0.4.0.456 beta || {{Стартова дата и възраст|2011|11|29}}
|-
| KDESVN [http://en.wikipedia.org/wiki/Kdesvn] || C++, Qt || [[Linux]], [[Unix]], [[Mac OS X]] || GPL || Konqueror, Dolphin, самостоятелно || Английски || file, http, https, (k)svn, (k)svn+file, (k)svn+http, (k)svn+https, (k)svn+ssh || 1.6.0 || {{Стартова дата и възраст|2012|08|05}}
|-
| MagnetSVN [http://magnetsvn.com/] || || Microsoft Windows Windows XP / Vista / 7 64-bit || платен || [[Microsoft Office]] (2007 and 2010, Word and Excel) || Английски || file, http, https, svn and svn+ssh || 0.7.2 beta (32-bit за XP/Vista/7) (64-bit за Vista/7) || {{Стартова дата и възраст|2011|11|18}}
|-
| RabbitVCS [http://rabbitvcs.org/ ] || Python, GTK+ || [[Linux]] || GPL || [[Nautilus]], [http://en.wikipedia.org/wiki/Thunar [Thunar]], [[Gedit]], CLI (command-line interface) || ca, cs, de, en, es, fa, fr, he, hr, it, ja, nb, nl, pl, pt, ro, ru, sk, sl, sv, zh_CN || http, https, svn, svn+ssh, file || 0.15.0.5 || {{Стартова дата и възраст|2011|11|09}}
|-
| sdSVN [http://sourceforge.net/projects/sd-svn/] || Java || [[Linux]], [[Unix]], [[Mac OS X]], [[Microsoft Windows]] || GPL || GUI, самостоятелно, Java Web Start || Английски || http, https || 1.0-SNAPSHOT-r63 (minimal and full) || {{Стартова дата и възраст|2011|05|29}}
Ред 150:
* [http://tortoisesvn.net/docs/release/TortoiseSVN_en/index.html 2. TortoiseSVN 1.7 Beginner's Gui - Lesley A. Harrison]
* [http://www.smartsvn.com/ 3. Official website of SmartSVN]
* [http://en.wikipedia.org/wiki/Comparison_of_Subversion_clients 4. Comparison of Subversion clients]
 
== Външни препратки ==