<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/css" href="http://wiki2.linuxformat.ru/skins/common/feed.css?97"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>LXF133:subversion - История изменений</title>
		<link>http://wiki2.linuxformat.ru/index.php?title=LXF133:subversion&amp;action=history</link>
		<description>История изменений этой страницы в вики</description>
		<language>ru</language>
		<generator>MediaWiki 1.11.1</generator>
		<lastBuildDate>Thu, 14 May 2026 01:06:29 GMT</lastBuildDate>
		<item>
			<title>Crazy Rebel: викификация, оформление, иллюстрация</title>
			<link>http://wiki2.linuxformat.ru/index.php?title=LXF133:subversion&amp;diff=12417&amp;oldid=prev</link>
			<description>&lt;p&gt;викификация, оформление, иллюстрация&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая статья&lt;/b&gt;&lt;/p&gt;&lt;div&gt;: '''Hardcore Linux''' Проверьте себя на крутом проекте для продвинутых пользователей&lt;br /&gt;
&lt;br /&gt;
==''Subversion'': Контроль из­ме­не­ний==&lt;br /&gt;
&lt;br /&gt;
: '''Боб Мосс''' по­ка­жет, по­че­му не нуж­но быть ха­ке­ром яд­ра, что­бы при­ме­нять кон­троль вер­сий до­ма и на ра­бо­те.&lt;br /&gt;
&lt;br /&gt;
Вы, на­вер­ное, слы­ша­ли о систе­мах кон­тро­ля вер­сий от гу­ру ко­ди­ро­вания, и мог­ли во­об­ра­зить, что кон­троль версий – сво­его ро­да тай­ная прак­ти­ка, при­ме­няе­мая толь­ко зака­лен­ны­ми ха­ке­ра­ми яд­ра и про­фес­сио­на­ла­ми раз­ра­бот­ки программ­но­го обес­пе­чения. В ре­аль­но­сти все не так, и дан­ный учебник при­зван по­ка­зать вам, как ис­поль­зо­вать мощь этой тех­но­логии с минималь­ны­ми за­тра­та­ми.&lt;br /&gt;
&lt;br /&gt;
Пер­вый во­прос, ко­то­рый вы впра­ве за­дать – что та­кое контроль вер­сий и что в нем хо­ро­ше­го лич­но для вас. Что­бы убить двух зай­цев одним вы­стре­лом, про­сто пред­ставь­те, что вы и ваш кол­ле­га од­но­вре­мен­но со­став­ляе­те де­ло­вое пись­мо. Это мож­но сде­лать дву­мя спо­со­ба­ми. Пер­вый – сна­ча­ла пись­мо ре­дак­ти­руе­те вы, а по­том кол­ле­га; но это зай­мет в два раза боль­ше вре­мени, чем ес­ли бы вы де­ла­ли все в оди­ноч­ку. Вто­рой – вы оба од­но­вре­менно ра­бо­тае­те ка­ж­дый над сво­ей ко­пи­ей пись­ма. Вто­рой ме­тод эффек­тивнее, но тогда непо­нят­но, ка­кие прав­ки долж­ны быть при­няты в фи­наль­ной вер­сии. И от­ку­да уз­нать, что вы ра­бо­тае­те имен­но с по­следней вер­си­ей?&lt;br /&gt;
&lt;br /&gt;
При кон­тро­ле вер­сий ка­ж­дый из вас хранит свою соб­ствен­ную ра­бо­чую ко­пию и про­сто за­пуска­ет об­нов­ление для син­хронизации с одним цен­траль­ным источником (на­зы­вае­мым ре­по­зи­то­ри­ем). Так вы бу­де­те ви­деть все из­менения и вре­мя их по­ме­щения в этот цен­траль­ный источник, и от­кло­нять их или вно­сить в ва­шу соб­ствен­ную локаль­ную вер­сию. Систе­мы кон­тро­ля вер­сий удобнее все­го для со­вме­ст­ной ра­бо­ты, хо­тя при­менимы так­же и для це­лей ре­зерв­но­го ко­пи­ро­вания.&lt;br /&gt;
&lt;br /&gt;
На этом уро­ке мы изу­чим хо­ро­шо из­вест­ную систе­му кон­троля вер­сий – ''Subversion'' (иногда со­кра­щен­но на­зы­вае­мую ''SVN''), но мно­гие из рас­смот­рен­ных прин­ци­пов бу­дут вер­ны и в дру­гих систе­мах, та­ких как ''Git, CVS'' и ''Bazaar''. Поль­зо­ва­те­ли эзо­те­ри­че­ских ди­ст­ри­бу­ти­вов бу­дут ра­ды уз­нать, что ''Subversion'' досту­пен для уста­нов­ки поч­ти во всех па­кет­ных менед­же­рах из ми­ра Linux.&lt;br /&gt;
&lt;br /&gt;
===Фик­си­ру­ем из­менения===&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF133_84_1.jpg|300px]] При нор­маль­ном хо­де про­цес­са, вид ва­ше­го тер­ми­на­ла по­сле на­бо­ра этих SVN-ко­манд бу­дет при­мер­но та­ким.|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
Начнем с соз­дания сво­его соб­ствен­но­го локаль­но­го ре­по­зи­тория ''Subversion''. Он при­го­дит­ся вам в слу­чае локаль­ной ра­бо­ты над важ­ны­ми фай­ла­ми, что­бы иметь воз­мож­ность от­ка­та к преды­ду­щим вер­си­ям, ес­ли что-то пой­дет не так, а так­же по­служит как уп­ражнение по соз­данию хранили­ща в ва­шей до­машней локаль­ной се­ти (ес­ли вы от­крое­те пра­виль­ные пор­ты в бранд­мауэре). Для соз­дания локаль­но­го ре­по­зи­то­рия ''SVN'' от­крой­те тер­минал и на­бе­ри­те вот что:&lt;br /&gt;
&lt;br /&gt;
 cd ~&lt;br /&gt;
 svnadmin create --fs-type fsfs ~/svn&lt;br /&gt;
&lt;br /&gt;
В ва­шем до­маш­нем ка­та­ло­ге соз­да­ст­ся ди­рек­то­рия с име­нем '''svn'''. За­пус­тив сле­дую­щую ко­ман­ду, вы об­на­ру­жи­те ва­шу ди­рек­торию ''Subversion'', ко­то­рая по­ка со­вер­шен­но пус­та:&lt;br /&gt;
&lt;br /&gt;
 svn ls file:///home/поль­зо­ва­тель/svn&lt;br /&gt;
&lt;br /&gt;
Вы долж­ны от­ме­тить тут несколь­ко ин­те­рес­ных из­менений в ва­ших коман­дах. Во-пер­вых, фай­лы и пап­ки внут­ри ди­рек­тории ''SVN'' име­ют пре­фикс '''file://'''. Да­лее об­ра­ти­те внимание, что наше обыч­ное со­кра­щение до­машней ди­рек­то­рии (сим­вол тиль­ды '''~''') за­менено на '''/home/поль­зо­ва­тель''', так как доступ к ре­по­зи­то­рию осу­ще­ств­ля­ет­ся че­рез аб­со­лют­ный путь.&lt;br /&gt;
&lt;br /&gt;
''Subversion'' хо­рош тем, что по­зво­ля­ет вво­дить по­сле ''svn'' любые коман­ды тер­ми­на­ла, и ес­ли они несут из­менения фай­ло­вой систе­мы, то бу­дут за­счи­та­ны за '''commit''' [фик­са­цию из­менений]. Для соз­дания на­шей пер­вой ди­рек­то­рии ''SVN'' про­сто на­бе­ри­те такую коман­ду:&lt;br /&gt;
&lt;br /&gt;
 svn mkdir file:///home/поль­зо­ва­тель/svn/folder -m “Это моя пер­вая пап­ка”&lt;br /&gt;
&lt;br /&gt;
Внут­ри ва­ше­го ''SVN''-ре­по­зи­то­рия соз­да­ст­ся но­вая «вир­туаль­ная» ди­рек­то­рия, где мы мо­жем соз­дать ре­дак­ти­руе­мые копии. Мож­но так­же от­ме­тить со­об­щение в кон­це стро­ки – оно запи­шет­ся в жур­нал ''SVN'' и бу­дет напоминать нам, за­чем мы сде­ла­ли из­менение. Вы мо­же­те уви­деть его по коман­де&lt;br /&gt;
&lt;br /&gt;
 svn log file:///home/поль­зо­ва­тель/svn&lt;br /&gt;
&lt;br /&gt;
Для уда­ле­ния пап­ки из ос­нов­но­го ре­по­зи­то­рия ''SVN'', про­сто заме­ни­те ''mkdir'' на ''rm'' и на­пи­ши­те в со­об­ще­нии жур­на­ла не­что от­ражаю­щее эту за­ме­ну.&lt;br /&gt;
&lt;br /&gt;
===Кон­троль===&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF133_85_1.jpg|300px]] От­пе­тые тер­ми­на­ло­фо­бы бу­дут ра­ды по­зна­ко­мить­ся с RapidSVN, по­зво­ляю­щим ра­бо­тать че­рез гра­фи­че­скую обо­лоч­ку.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:LXF133_85_2.jpg|300px]] Мож­но иметь боль­ше од­ной ра­бо­чей ко­пии од­но­вре­мен­но, но фик­си­ро­вать сле­ду­ет толь­ко по­след­нюю и с наи­боль­ши­ми из­ме­не­ния­ми.|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
Те­перь, при на­ли­чии ак­тив­ной ''SVN''-ди­рек­то­рии, вы мо­же­те об­нару­жить, что она не поя­ви­лась в фай­ло­вой систе­ме и не по­зво­ля­ет вам де­лать ка­кие-ли­бо из­менения. Это по­то­му, что ва­ша ''SVN''-дирек­то­рия вы­сту­па­ет как цен­траль­ный источник, ко­то­рый от­сле­жива­ет и хранит из­менения ка­ж­дой ва­шей фик­са­ции (ре­по­зи­то­рий). Для на­ча­ла до­бав­ления в нее фай­лов и внесения из­менений вам нуж­но соз­дать соб­ствен­ную ра­бо­чую ко­пию для об­нов­ления и редак­ти­ро­вания. В ми­ре кон­тро­ля вер­сий это на­зы­ва­ет­ся '''checkout''' [выписка] и мо­жет быть вы­зва­но од­ной строч­кой в тер­ми­на­ле:&lt;br /&gt;
&lt;br /&gt;
 cd checkoutDir&lt;br /&gt;
 svn checkout file:///home/поль­зо­ва­тель/svn/folder&lt;br /&gt;
&lt;br /&gt;
Здесь вид­но, что мы пе­ре­шли в ди­рек­то­рию, где хо­тим соз­дать ра­бо­чую ко­пию, и за­пусти­ли в ней '''checkout'''. Те­перь мож­но до­бавлять фай­лы и манипу­ли­ро­вать ими как угод­но. Для до­бав­ления в кон­троль вер­сий но­во­го фай­ла, за­пусти­те им­порт ''SVN'', как пока­за­но тут:&lt;br /&gt;
&lt;br /&gt;
 svn import importFile.txt file:///home/поль­зо­ва­тель/svn/folder -m “Им­пор­ти­ро­ван importFile.txt”&lt;br /&gt;
&lt;br /&gt;
При ка­ж­дом из­ме­не­нии, сде­лан­ном в этом фай­ле, про­сто запус­кай­те '''commit''' для син­хро­ни­за­ции из­ме­не­ний из ва­шей ра­бо­чей ко­пии с ва­шим ''SVN''-ре­по­зи­то­ри­ем.&lt;br /&gt;
&lt;br /&gt;
 svn commit -m “Все уже за­фик­си­ро­ва­но!”&lt;br /&gt;
&lt;br /&gt;
И, на­ко­нец, ес­ли вы за­хо­ти­те об­но­вить ва­шу ра­бо­чую ко­пию с лю­бы­ми из­ме­не­ния­ми, сде­лан­ны­ми цен­тра­ли­зо­ван­но (или просто же­лае­те вер­нуть все, что бы­ло до ва­ших из­ме­не­ний), за­пус­тите сле­дую­щую стро­ку:&lt;br /&gt;
&lt;br /&gt;
 svn update -r n&lt;br /&gt;
&lt;br /&gt;
где '''n''' – но­мер вер­сии. Мо­же­те так­же уб­рать все по­сле сло­ва '''update''', ес­ли про­сто хо­ти­те по­лу­чить все по­следние из­менения за один раз.&lt;br /&gt;
&lt;br /&gt;
Ра­бо­та с тер­ми­на­лам – шту­ка муд­ре­ная, и ес­ли вы ра­бо­таете не с про­грамм­ным про­ек­том, то мо­же­те пред­по­честь ка­кой-нибудь бо­лее дру­же­люб­ный к поль­зо­ва­те­лю ме­тод соз­дания рабо­чих ко­пий, их об­нов­ления и фик­са­ции из­менений.&lt;br /&gt;
&lt;br /&gt;
Поль­зо­ва­те­лям Gnome это сде­лать доста­точ­но про­сто, так как про­грам­ма по имени ''RapidSVN'', доступ­ная в боль­шин­стве основ­ных менед­же­рах па­ке­тов, пре­доста­вит им всю необхо­ди­мую функ­цио­наль­ность для управ­ления соб­ствен­ным ''SVN''-ре­по­зи­то­ри­ем – неваж­но, за­пу­щен ли он на сер­ве­ре, в Ин­тернете или на ва­шей до­машней ма­шине. Поль­зо­ва­те­ли KDE то­же не за­быты: бли­жай­ший эк­ви­ва­лент – ''KDESVN'', так­же доступ­ный в основных ди­ст­ри­бу­ти­вах.&lt;br /&gt;
&lt;br /&gt;
===Кое-что по­умнее===&lt;br /&gt;
&lt;br /&gt;
{{Врезка|left|Заголовок=Скорая помощь|Содержание=При на­ли­чии учетной за­пи­си Google мож­но по­лу­чить бес­плат­ный хостинг ре­по­зи­тория ''Subversion'' на http://code.google.com/hosting/createProject.|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
Пре­ж­де чем про­дви­нуть­ся впе­ред и при­менить но­вые на­вы­ки на прак­ти­ке, ис­поль­зуя при­ве­ден­ные ниже неболь­шие про­ек­ты, рассмотрим несколь­ко ве­щей, ко­то­рые вы мо­же­те за­хо­теть сделать, ра­бо­тая с систе­мой кон­тро­ля вер­сий.&lt;br /&gt;
&lt;br /&gt;
Пер­вая – вам мо­жет по­тре­бо­вать­ся сравнить две ре­ви­зии файлов друг с дру­гом, что­бы въявь уви­деть, чем они от­ли­ча­ют­ся: это по­лез­но для вы­яснения, где имен­но в ва­шу ра­бо­ту вкра­лась ошибка. Пе­рей­ди­те в ва­шу ра­бо­чую ди­рек­то­рию и скоман­дуйте:&lt;br /&gt;
&lt;br /&gt;
 svn compare -r R1:R2 fileName.txt&lt;br /&gt;
&lt;br /&gt;
за­ме­нив '''fileName.txt''' на нуж­ное вам имя.&lt;br /&gt;
&lt;br /&gt;
Что­бы от­ка­тить на­зад из­ме­не­ния для кон­крет­но­го фай­ла, запус­ти­те '''revert''':&lt;br /&gt;
&lt;br /&gt;
 svn revert -r n file&lt;br /&gt;
&lt;br /&gt;
где '''n''' – но­мер ре­ви­зии. Опус­тив '''-r n''', вы по­лу­чи­те пре­ды­ду­щую реви­зию фай­ла.&lt;br /&gt;
&lt;br /&gt;
На­ко­нец, в ди­рек­то­рии мож­но за­вес­ти бо­лее од­но­го фай­ла, и все с раз­ны­ми но­ме­ра­ми ре­ви­зий. Что­бы най­ти, ка­кой но­мер реви­зии име­ет нуж­ный файл, про­верь­те его '''status''':&lt;br /&gt;
&lt;br /&gt;
 svn status file&lt;br /&gt;
&lt;br /&gt;
===Го­ло­ва в об­ла­ках===&lt;br /&gt;
&lt;br /&gt;
''Subversion'' уме­ет не только делать откат к преды­ду­щим ре­ви­зи­ям фай­лов на ва­шем компь­ю­те­ре. Вы мо­же­те по­местить ''SVN''-ре­по­зи­то­рий на лю­бой се­те­вой диск, и ка­ж­дый в ва­шей локаль­ной се­ти по­лу­чит доступ на выписку. Это мо­гут, на­при­мер, ис­поль­зо­ва­ть в бизнес-сре­де, где обыч­на со­вме­ст­ная ра­бо­та, или да­же си­сад­ми­ны, для от­ме­ны из­менений поль­зо­вате­лей, по­вре­див­шие их учет­ные запи­си.&lt;br /&gt;
&lt;br /&gt;
Од­на­ко осо­бен­но эф­фек­ти­вен ''Subversion'' при его применении с он­лайн-ре­по­зи­то­ри­ем. Он спро­ек­ти­ро­ван так, что­бы лю­бой мог взять се­бе ра­бо­чую ко­пию ''SVN''-ре­по­зи­то­рия, за­фикси­ро­вать изменения или син­хронизи­ро­вать эту ко­пию через про­стой ме­ханиз­м об­новления. Бла­го­да­ря это­му ''SVN'' пре­крас­но под­хо­дит для управ­ления и раз­вер­ты­вания ПО, но его так­же мож­но при­менить и для чисто на­столь­ных задач, что вы уви­дели в учебнике.&lt;br /&gt;
&lt;br /&gt;
Что ка­са­ет­ся ''SVN''-хостин­га – в ки­бер­про­стран­стве мно­го плат­ных хранилищ, ко­торые мож­но по­про­бо­вать. Но ес­ли вы ре­ши­те во­пло­тить несколь­ко идей из это­го учебника, соз­дай­те про­ект на SourceForge или на Google Code. Оба этих сер­ви­са пре­достав­ля­ют неог­раничен­ное web-про­стран­ство [''Google да­ет 1ГБ, – прим. пер.''], неог­раничен­ное чис­ло про­ек­тов и доступ к ре­по­зи­то­рию че­рез брау­зер.&lt;br /&gt;
&lt;br /&gt;
Но­вич­кам мы ре­ко­мен­ду­ем второй, посколь­ку там го­раз­до лег­че обу­чение, а также име­ют­ся коман­ды ко­пи­ро­вания и встав­ки для ис­поль­зо­вания в тер­ми­на­ле или в ва­шем ''SVN''-кли­ен­те. Для ис­поль­зо­вания ''Subversion'' он­лайн вам сле­ду­ет быть зна­ко­мым с ''SSH''; SourceForge и Google так­же пре­достав­ляют ис­чер­пы­ваю­щую ин­фор­ма­цию на ви­ки, де­мон­ст­ри­рую­щую, как ис­поль­зо­вать ''SSH'' с их сер­ви­са­ми.&lt;br /&gt;
&lt;br /&gt;
===''Subversion'': Ми­ни-про­ек­ты===&lt;br /&gt;
&lt;br /&gt;
Неза­ви­си­мо от мно­гих при­чин, по ко­то­рым систе­мы управ­ления вер­сия­ми – вещь хо­ро­шая, вы мо­же­те теперь за­ду­мать­ся, где и как при­менить эту тех­но­ло­гию на прак­ти­ке. Мы рас­смот­рим несколь­ко ре­аль­ных при­ме­ров ее ис­поль­зо­вания, но на са­мом де­ле систе­ма кон­тро­ля вер­сий при­менима прак­ти­че­ски в лю­бой си­туа­ции, где есть необ­хо­димость в со­вме­ст­ной ра­бо­те или от­мене из­менений.&lt;br /&gt;
&lt;br /&gt;
====Ре­зерв­ное ко­пи­ро­вание====&lt;br /&gt;
&lt;br /&gt;
На­стоя­щее ко­пи­ро­вание это не за­ме­ня­ет, но вы ре­аль­но смо­же­те по­местить все ва­ши фай­лы под кон­троль вер­сий и хранить ра­бочую ко­пию как ре­зерв­ную. Что по­зво­лит вам вер­нуть на­зад лю­бые из­менения или уда­ления (да, фик­си­руется да­же уда­ление файлов!) внут­ри всех ва­ших до­ку­мен­тов. Это мо­жно сде­лать, им­пор­ти­ро­вав со­дер­жи­мое до­машней ди­рек­то­рии в ре­по­зи­то­рий ''SVN'':&lt;br /&gt;
&lt;br /&gt;
 svn import /home/поль­зо­ва­тель/Documents -m “Им­порт пап­ки с до­ку­мен­та­ми в кон­троль вер­сий”&lt;br /&gt;
 cd ме­сто/ко­пии&lt;br /&gt;
 svn checkout file:///home/user/Documents&lt;br /&gt;
&lt;br /&gt;
Здесь мы им­пор­ти­ро­ва­ли пап­ку '''Documents''' в кон­троль вер­сий (про­де­лав это ре­кур­сив­но), за­тем пе­ре­мес­ти­лись в ме­сто раз­меще­ния ре­зерв­ной ко­пии и вы­пол­ни­ли для нее '''checkout'''. Вы мо­жете хра­нить эту пап­ку в zip- или tar-ар­хи­ве, и для фик­са­ции этой резерв­ной ко­пии дос­та­точ­но вы­пол­нить две ве­щи. Спер­ва зай­ди­те в пап­ку '''Documents''' и на­бе­ри­те&lt;br /&gt;
&lt;br /&gt;
 svn commit&lt;br /&gt;
&lt;br /&gt;
А для вклю­че­ния всех сде­лан­ных из­ме­не­ний да­лее за­пус­ти­те в ва­шей ра­бо­чей (ре­зерв­ной) ко­пии сле­дую­щее:&lt;br /&gt;
&lt;br /&gt;
 svn update&lt;br /&gt;
&lt;br /&gt;
И все! Вы мо­же­те вы­пол­нять две по­следние коман­ды ав­то­мати­че­ски при стар­те сес­сии KDE или Gnome или на­зна­чить им оп­реде­лен­ное вре­мя вы­полнения че­рез '''crontab'''.&lt;br /&gt;
&lt;br /&gt;
====Web-раз­ра­бот­ка====&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF133_87_1.jpg|300px]]  Используя контроль версий, легко переключаться между различными схемами CSS (и это будут не только различные оттенки синего). |Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
Раз­ра­бот­чи­кам сай­тов систе­ма кон­тро­ля вер­сий то­же очень приго­дит­ся. Тра­ди­ци­он­ный спо­соб раз­ра­бот­ки сай­та за­клю­ча­ет­ся в тести­ро­вании оф­флайн-ко­пии локаль­но, по­сле че­го она за­лива­ет­ся на ре­аль­ную систе­му че­рез FTP. Но мы мо­жем со­хранить сайт внут­ри систе­мы кон­тро­ля вер­сий и за­тем про­сто ис­пользо­вать ''Subversion'' для фик­са­ции из­менений в нем. Это по­зво­ля­ет мно­же­ству web-раз­ра­бот­чи­ков дер­жать у се­бя ак­ту­аль­ную ко­пию те­ку­щей вер­сии «жи­во­го» сай­та, имея воз­мож­ность отме­ны из­менений, что де­ла­ет со­вме­ст­ную раз­ра­бот­ку бо­лее эф­фек­тив­ной.&lt;br /&gt;
&lt;br /&gt;
''Subversion'' так­же по­зво­ля­ет раз­ра­бот­чи­кам бы­ст­ро и лег­ко изме­нять ди­зайн сай­та в осо­бых слу­ча­ях, та­ких как раскрут­ка или рас­про­да­жи, или на бо­лее дол­гий пе­ри­од – к при­ме­ру, Но­вый год. Про­сто внеси­те со­от­вет­ствую­щие из­менения в ва­ши фай­лы '''CSS''' в од­ной ре­ви­зии, а по окон­чании со­бы­тия верните их на­зад на один шаг. Как по­ка­за­но на ри­сун­ке, мож­но так­же исполь­зо­вать ''Subversion'' для тести­ро­вания этих '''CSS''' оф­флайн перед фик­са­ци­ей из­менений в он­лайн-сай­те, ко­то­рый ви­дят по­се­тите­ли – в чем и про­яв­ля­ет­ся смысл ис­поль­зо­вания кон­тро­ля вер­сий web-ди­зайнера­ми.&lt;br /&gt;
&lt;br /&gt;
Раз­ра­бот­чи­кам кон­троль вер­сий то­же при­го­дит­ся. Ес­ли вы планируе­те до­ба­вить на ваш сайт но­вую ди­на­ми­че­скую функцио­наль­ность, та­кую как web-фор­мы или ''JavaScript'', или по­вы­сить безо­пас­ность учет­ных запи­сей поль­зо­ва­те­лей, восполь­зуй­тесь ''Subversion'' для оф­флайн-тести­ро­вания воз­мож­но­стей. Ка­ж­дое сде­лан­ное ва­ми из­менение, будь то от­лад­ка ва­ше­го кли­ент­ско­го или сер­вер­но­го ко­да, про­вер­ка на экс­плой­ты или про­сто тести­рование на со­от­вет­ствие стан­дар­там в раз­лич­ных брау­зе­рах и платфор­мах, вы мо­же­те при­менить по­сле­до­ва­тель­но.&lt;br /&gt;
&lt;br /&gt;
Но очень важ­но при­за­ду­мать­ся вот о чем. По умол­чанию все за­фик­си­ро­ван­ные ва­ми из­менения пе­ре­да­ют­ся на ре­аль­ный сервер неза­шиф­ро­ван­ны­ми че­рез про­то­кол ''Subversion'', что не пробле­ма при про­стом ре­дак­ти­ро­вании за­глав­ной страницы пользо­ва­те­ля, но неже­ла­тель­но при ра­бо­те с бо­лее чув­стви­тель­ны­ми к безо­пас­но­сти об­ластя­ми, та­ки­ми как систе­ма ау­тен­ти­фи­ка­ции или доступ к ба­зе дан­ных. Так­же из­на­чаль­но нет за­щи­ты от то­го, что лю­бой по­се­ти­тель сай­та сде­ла­ет се­бе свой соб­ствен­ный снимок ''Subversion'' и, по­лу­чив доступ к ко­ду всех со­став­ляю­щих сайта, по­ко­па­ет­ся в нем для по­иска уяз­ви­мо­стей.&lt;br /&gt;
&lt;br /&gt;
Про­стое сред­ство из­бе­жать дан­ной си­туа­ции – на­строй­ка прав досту­па web-сер­ве­ра, че­рез ваш ''Apache, Nginx'' или ''IIS'', разре­шаю­щих чтение оп­ре­де­лен­ных ка­та­ло­гов толь­ко оп­ре­де­лен­ным поль­зо­ва­те­лям. Тогда лю­бая по­пыт­ка '''checkout''' при­ве­дет к сбою, из-за от­сут­ствия досту­па ко все­му ре­по­зи­то­рию, или – в ма­ло­веро­ят­ном слу­чае успе­ха – '''checkout''' не су­ме­ет мно­го из­влечь из чувстви­тель­ных мест ва­ше­го сай­та. Что­бы обес­пе­чить фик­са­цию че­рез за­шиф­ро­ван­ное со­единение, ис­поль­зуй­те ''SSH'' тем же спосо­бом, как на хостин­ге про­ек­тов Google или SourceForge, при помо­щи па­ры пуб­лич­но­го и при­ват­но­го клю­чей. Это лег­ко де­ла­ет­ся с кросс-плат­фор­мен­ны­ми ин­ст­ру­мен­та­ми, ти­па ''Putty'', а для бо­лее под­роб­ной ин­фор­ма­ции про­смот­ри­те ви­ки Google и SourceForge по дан­ной те­ме.&lt;br /&gt;
&lt;br /&gt;
====Се­мей­ный фо­то­аль­бом====&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF133_86_1.jpg|300px]] За­гру­зи­те фот­ки сво­его по­след­не­го от­пус­ка или про­сто фай­лы, ко­то­ры­ми вы хо­ти­те поде­лить­ся с дру­ги­ми.|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
Од­но из от­лич­ных при­менений от­сле­жи­вания вер­сий – соз­дание ин­те­рак­тив­но­го фо­то­аль­бо­ма, ку­да все чле­ны ва­шей се­мьи могут до­бав­лять фо­то­гра­фии. Про­сто соз­дай­те ''SVN''-ре­по­зи­то­рий в Ин­тернете и предоставь­те со­от­вет­ствую­щий доступ на '''checkout''' и '''commit''' для син­хрониза­ции с ним. При этом ка­ж­дый по­лу­чит копию се­мей­ных сним­ков и об­нов­ление при по­яв­лении но­вых. Это так­же пре­крас­но с точ­ки зрения ре­зерв­но­го ко­пи­ро­вания, так как ва­ши дра­го­цен­ные фо­тографии со­хра­ня­ют­ся он­лайн и в нескольких уда­лен­ных местах.&lt;br /&gt;
&lt;br /&gt;
Вы мо­же­те счесть это бо­лее безо­пас­ным, так как вам не придет­ся по­ла­гать­ся на соб­ствен­ные усло­вия ис­поль­зо­вания и ме­ры безо­пас­но­сти ин­тернет-ком­паний для га­ран­тии непри­косно­вен­ности ча­ст­ной жизни. А раз у вас име­ют­ся соб­ствен­ные оф­флайн-ко­пии, вы мо­же­те ис­поль­зо­вать для их ор­ганиза­ции и ре­дак­тиро­вания лю­бые про­грам­мы: так, ес­ли вы близ­ко зна­ко­мы с ''GIMP'', то мо­же­те на до­су­ге улуч­шить ка­че­ство фо­то.&lt;br /&gt;
&lt;br /&gt;
====От­сле­ди­те свои фи­нан­сы====&lt;br /&gt;
&lt;br /&gt;
В ре­по­зи­то­ри­ях куч­ку­ет­ся мно­же­ст­во па­ке­тов управ­ле­ния фи­нан­са­ми, но ес­ли вы от­сле­живае­те свои де­неж­ные по­то­ки, за­но­ся их в электрон­ную таб­ли­цу, воз­мож­ность жур­на­ли­ро­вания ''Subversion'' вам очень при­го­дит­ся.&lt;br /&gt;
&lt;br /&gt;
Ес­ли у вас про­сто спи­сок до­хо­дов и рас­ходов, и вы до­бав­ляе­те к ка­ж­до­му объ­ек­ту из­ме­не­ния и под­счи­ты­вае­те ос­та­ток,что­бы не вый­ти за рам­ки бюд­же­та, при ка­ж­дом та­ком дей­ствии вы мо­же­те фик­си­ро­вать из­ме­не­ния.&lt;br /&gt;
&lt;br /&gt;
Ка­ж­дая фик­са­ция в жур­на­ле бу­дет иметь да­ту и вре­мя тран­зак­ции, и ес­ли вы до­ба­вили не­об­хо­ди­мую ин­фор­ма­цию для ка­ж­дой запи­си в жур­на­ле, то смо­же­те да­же оп­ре­де­лить, сколь­ко вы по­лу­чи­ли или по­тра­ти­ли и как это от­ра­зи­лось на бюд­же­те. При­мер фик­са­ции мо­жет быть та­кой:&lt;br /&gt;
&lt;br /&gt;
 svn commit -m “Spent ¬£5.29 Macdonalds, ¬£290.23 under budget”&lt;br /&gt;
&lt;br /&gt;
При ка­ж­дом про­смот­ре жур­на­ла ''Subversion'' для дан­но­го фай­ла или ка­та­ло­га вы уви­ди­те длин­ный спи­сок тран­зак­ций, при­год­ный для це­лей об­зо­ра. Вы мо­же­те по­мес­тить эту инфор­ма­цию в тек­сто­вый файл с по­мо­щью&lt;br /&gt;
&lt;br /&gt;
 svn log &amp;gt;&amp;gt; financeOutput.txt&lt;br /&gt;
&lt;br /&gt;
и за­тем им­пор­ти­ро­вать эти дан­ные в дру­гие про­грамм­ные па­ке­ты или хра­нить их для се­бя.&lt;br /&gt;
&lt;br /&gt;
====Без­гранич­ные воз­мож­но­сти====&lt;br /&gt;
&lt;br /&gt;
Ес­ли эти мини-про­ек­ты не су­ме­ли под­стрек­нуть вас по­про­бовать ''Subversion'', найдется и мно­же­ство дру­гих. На­при­мер, мож­но сде­лать спи­сок дел, ко­то­рый чле­ны ва­шей се­мьи смо­гут об­новлять – ти­па школь­ной сек­ции, по­езд­ки за по­куп­ка­ми или турнира по голь­фу, разнесен­но­го по ме­ся­цу (с да­та­ми). Лю­бой смо­жет по­лу­чить ко­пию это­го распи­сания для сво­их соб­ствен­ных нужд, а при ав­то­ма­ти­че­ском об­нов­лении локаль­ной ко­пии – быть посто­ян­но в кур­се дел и со­бы­тий. Вы так­же мо­же­те хранить записи о сво­ем до­машнем ин­вен­та­ре: при­бли­зи­тель­ная да­та по­куп­ки и стои­мость при­го­дят­ся в стра­хо­вом слу­чае, ес­ли с ним при­ключит­ся что-то пло­хое.&lt;br /&gt;
&lt;br /&gt;
Цель дан­но­го уро­ка – дать основ­ное пред­став­ление, для чего из­на­чаль­но соз­да­на систе­ма кон­тро­ля вер­сий. Ее пер­вая и основ­ная за­да­ча – пре­доста­вить поль­зо­ва­те­лям воз­мож­ность уда­лен­но фик­си­ро­вать из­менения ко­да и по­прав­ки к нему. Это так­же по­зво­ля­ет глав­но­му ку­ра­то­ру ре­шать, ка­кие из­менения при­менить, а ка­кие – от­клонить, и да­вать по­яснение, по­че­му это бы­ло сде­ла­но. При­ло­жение мо­жет ра­бо­тать как локаль­ная вер­сия «мастер-ко­пии» из цен­траль­но­го ре­по­зи­то­рия, и доста­точ­но триви­аль­но про­ве­рить, ка­кие вер­сии фай­лов бы­ли об­нов­ле­ны или какие из­менения бы­ли со­вер­ше­ны пе­ред за­пуском об­нов­ления версии, при под­держ­ки ак­ту­аль­но­сти локаль­ной ко­пии.&lt;br /&gt;
&lt;br /&gt;
Раз­драз­ни­ла ли идея ис­поль­зо­ва­ния сис­те­мы кон­тро­ля вер­сий ваш ап­пе­тит к экс­пе­ри­мен­там? ''Subversion, Git, Bazaar'' и ''CVS'' все мо­гут быть ис­поль­зо­ва­ны в лю­бом про­ек­те. Ес­ли наш урок натолк­нул вас на не­что ин­те­рес­ное, черк­ни­те па­ру строк об этом нам на поч­ту или ос­тавь­те со­об­ще­ние на фо­ру­ме Linux Format. Мы под­роб­но рас­смат­ри­ва­ли ''Bazaar, SVN'' и ''Git'' в [[LXF120:Контроль версий|LXF120]].&lt;/div&gt;</description>
			<pubDate>Tue, 19 Jul 2011 11:50:42 GMT</pubDate>			<dc:creator>Crazy Rebel</dc:creator>			<comments>http://wiki2.linuxformat.ru/index.php/%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:LXF133:subversion</comments>		</item>
	</channel>
</rss>