<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Чудо{вищные} заметки &#187; svn</title>
	<atom:link href="http://miracle.rpz.name/tag/svn/feed/" rel="self" type="application/rss+xml" />
	<link>http://miracle.rpz.name</link>
	<description>Sorry for my terrible english. My native language is PHP.</description>
	<lastBuildDate>Thu, 12 Jan 2012 20:42:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4-alpha-19719</generator>
		<item>
		<title>subversion как система резервного копирования</title>
		<link>http://miracle.rpz.name/2011/12/08/subversion-as-a-backup-service/</link>
		<comments>http://miracle.rpz.name/2011/12/08/subversion-as-a-backup-service/#comments</comments>
		<pubDate>Thu, 08 Dec 2011 07:00:43 +0000</pubDate>
		<dc:creator>MiRacLe</dc:creator>
				<category><![CDATA[DailyWTF]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[win32]]></category>

		<guid isPermaLink="false">http://miracle.rpz.name/?p=577</guid>
		<description><![CDATA[Понадобилось легко и непринуждённо иметь резервную копию директории с windows-сервера. *** Первой попыткой было использование wget &#8211;mirror с ftp-сервером: #!/bin/sh -e unset url="ftp://server.tld/path/to/dir/" backup="/tmp/local-copy" wget --no-cache -nH -c -t0 --mirror -P$backup -i- &#60;&#60;EOF $url/subfolder1 $url/subfolder2 $url/subfolderN EOF Первоначальный бэкап вроде как получился, но последующие попытки синхронизироваться ничем не завершались &#8211; wget уходил в себя от [...]]]></description>
			<content:encoded><![CDATA[<p>Понадобилось легко и непринуждённо иметь резервную копию директории с windows-сервера.</p>
<p align="center">***</p>
<p>Первой попыткой было использование <strong>wget &#8211;mirror</strong> с ftp-сервером:</p>
<pre class="php">
#!/bin/sh -e
unset
url="ftp://server.tld/path/to/dir/"
backup="/tmp/local-copy"

wget --no-cache -nH -c -t0 --mirror -P$backup -i- &lt;&lt;EOF
        $url/subfolder1
        $url/subfolder2
        $url/subfolderN
EOF
</pre>
<p> Первоначальный бэкап вроде как получился, но последующие попытки синхронизироваться ничем не завершались &#8211; wget уходил в себя от бесконечных потуг скачать некоторые файлы, размер которых не сходился с ожидаемым.<br />
Вина ли тут ftp-сервера или проблема во wget разбираться не захотелось. Кроме того обнаружилось, что файлы с кириллицей в названии в процессе перекачки потеряли часть былых имён. <strong>wget</strong> вычёркиваем.</p>
<p align="center">***</p>
<p>
Попытался найти аналог rsync для windows, первые несколько страниц поиска содержали какие-то gui-приложения, форумы предлагали использовать cygwin и массу других тяжеловесных комбайнов&#8230;<br />
<br />
В итоге всё решилось импортом директории в svn и добавлением в &#8220;Scheduled tasks&#8221; следующего bat-файла:</p>
<pre class="php">
cd \path\to\dir
for /f "tokens=2*" %%i in ('\path\to\bin\svn status . ^| find "?"') do \path\to\bin\svn add "%%i"
for /f "tokens=2*" %%i in ('\path\to\bin\svn status . ^| find "!"') do \path\to\bin\svn delete "%%i"
\path\to\bin\svn commit -m "Automatic backup" .
</pre>
<p align="center">***</p>
<p>Дописывая эти строки подумалось &#8211; а ведь можно было использовать dropbox (asus webstorage, ubuntu one и т.п.)&#8230; Ну да ладно &#8211; велосипед собранный своими руками милее (и прозрачнее в работе).</p>
]]></content:encoded>
			<wfw:commentRss>http://miracle.rpz.name/2011/12/08/subversion-as-a-backup-service/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Subversion и время модификации файлов</title>
		<link>http://miracle.rpz.name/2010/08/17/subversion-and-filemtim/</link>
		<comments>http://miracle.rpz.name/2010/08/17/subversion-and-filemtim/#comments</comments>
		<pubDate>Tue, 17 Aug 2010 12:08:40 +0000</pubDate>
		<dc:creator>MiRacLe</dc:creator>
				<category><![CDATA[DailyWTF]]></category>
		<category><![CDATA[dev]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://miracle.rpz.name/?p=360</guid>
		<description><![CDATA[Крайне странно что раньше я не замечал по-умолчанию директива use-commit-times ВЫКЛЮЧЕНА!. Включить, понятное дело, можно настройкой в конфиге ~/.subversion/config. Ну или в cli добавив параметр &#8211;config-option=config:miscellany:use-commit-times=yes]]></description>
			<content:encoded><![CDATA[<p>Крайне странно что <span style="text-decoration: line-through;">раньше я не замечал</span> по-умолчанию директива <em>use-commit-times</em> ВЫКЛЮЧЕНА!.</p>
<p>Включить, понятное дело, можно настройкой в конфиге <em>~/.subversion/config</em>.</p>
<p>Ну или в <em>cli </em>добавив параметр <strong>&#8211;config-option=config:miscellany:use-commit-times=yes</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://miracle.rpz.name/2010/08/17/subversion-and-filemtim/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>commit-jabber</title>
		<link>http://miracle.rpz.name/2009/02/24/commit-jabber-php/</link>
		<comments>http://miracle.rpz.name/2009/02/24/commit-jabber-php/#comments</comments>
		<pubDate>Tue, 24 Feb 2009 14:38:04 +0000</pubDate>
		<dc:creator>MiRacLe</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[jabber]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://miracle.rpz.name/?p=213</guid>
		<description><![CDATA[После прочтения статьи о том, как в last.fm используют irc для логирования всего и вся тоже захотелось как-нибудь &#8220;выпендриться&#8221;. Мониторить сервера нам ни к чему, да и irc &#8211; поди объясни сейчас что это такое и чем оно лучше _______. Но недавно выдалась свободная минутка и я нашёл куда приложить усилия. Решил сделать post-commit хук [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://miracle.rpz.name/shared/2009/svnlog-psi.png" alt="" align="right" /><br />
После прочтения статьи о том, как в <a href="http://last.fm/">last.fm</a> <a href="http://www.metabrew.com/article/how-we-use-irc-at-lastfm/">используют irc для логирования</a> всего и вся тоже захотелось как-нибудь &#8220;выпендриться&#8221;.<br />
Мониторить сервера нам ни к чему, да и irc &#8211; поди объясни сейчас что это такое и чем оно лучше _______. Но недавно выдалась свободная минутка и я нашёл куда приложить усилия.<br />
Решил сделать post-commit хук в svn-репозитарии, который будет высылать детали о коммите, но не на почту, как это делается в <a href="http://subversion.tigris.org/tools_contrib.html#hook_scripts">традиционных скриптах</a>, а в <strong>jabber</strong> (cам jabber достался нам вместе с <a href="http://google.com/a/">почтой от гугла</a>) .<br />
По-моему получилось очень удобно и за несколько дней превратилось из игрушки в удобный инструмент для своевременного обновления и обнаружения &#8220;ну и зачем ты это сделал&#8221; <img src='http://miracle.rpz.name/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Собственно все внутренности состоят из <a href="http://code.google.com/p/xmpphp/">библиотеки XMPPHP</a> и маленького скриптика, который вешается на post-commit.<br />
Сам скриптик настолько маленький и бесхитростный, что комментировать его не вижу смысла &#8211; кладу <a href="http://miracle.rpz.name/shared/php/svnjabber.php.html">как есть</a>.<br />
Для функционирования нужно иметь xmpphp в <em>include_path</em>, бинарник svn в <em>PATH</em> и добавить <strong>post-commit hook</strong> в ваш репозитарий.</p>
<p>В сложнейшем, виндовом случае это будет <strong>post-commit.cmd</strong>, который лежит в директории <strong>hooks</strong> репозитария и имеет следующее содержание:</p>
<blockquote><p>/path/to/php.exe /path/to/svnjabber.php  %1 %2</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://miracle.rpz.name/2009/02/24/commit-jabber-php/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

<!-- Served from: miracle.rpz.name @ 2012-02-06 17:58:22 by W3 Total Cache -->
