<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=381429&amp;view=findpost&amp;p=3359764</guid>
        <pubDate>Mon, 30 Sep 2013 01:42:04 +0000</pubDate>
        <title>Запуск SVN hook на Windows</title>
        <link>https://forum.sources.ru/index.php?showtopic=381429&amp;view=findpost&amp;p=3359764</link>
        <description><![CDATA[WhyNot: Ну что же. Всё оказалось как всегда просто.<br>Надо было заставить входить службу VisualSVN Server &quot;с системной учётной записью&quot;.<br>Правда у меня первое время служба так запускаться не хотела.]]></description>
        <author>WhyNot</author>
        <category>Version Control</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=381429&amp;view=findpost&amp;p=3357280</guid>
        <pubDate>Thu, 19 Sep 2013 05:04:33 +0000</pubDate>
        <title>Запуск SVN hook на Windows</title>
        <link>https://forum.sources.ru/index.php?showtopic=381429&amp;view=findpost&amp;p=3357280</link>
        <description><![CDATA[WhyNot: На компьютере под Windows 7 x64 запущен VisualSVN.<br>
На этом же компьютере развёрнут AppServ.<br>
<br>
В одном из репозиториев SVN стоит хук <strong class='tag-b'>post-commit.bat</strong> следующего содержания<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">@echo off</div><div class="code_line">echo %time% start updating &#62;&#62; C:\SVNServer\Repositories\TestRepo\hooks\post-commit-log.txt</div><div class="code_line">call C:\AppServ\UpdateDocs.bat</div><div class="code_line">echo %time% success updating &#62;&#62; C:\SVNServer\Repositories\TestRepo\hooks\post-commit-log.txt</div><div class="code_line">exit 0</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script>где C:&#092;SVNServer&#092;Repositories&#092;TestRepo&#092;hooks&#092; -каталог, из которого запускается хук.<br>
<br>
А вот содержимое запускаемого <strong class='tag-b'>C:&#092;AppServ&#092;UpdateDocs.bat</strong><br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">@echo off</div><div class="code_line">:: пишем логи</div><div class="code_line">echo %time% start updating &#62;&#62; C:\AppServ\log.txt</div><div class="code_line">:: разблокируем копию после предыдущих ошибок (если были)</div><div class="code_line">echo %time% clean up &#62;&#62; C:\AppServ\log.txt</div><div class="code_line">&quot;C:\Program Files (x86)\VisualSVN Server\bin\svn.exe&quot; cleanup C:\AppServ\TrunkCopy &#62;&#62; C:\AppServ\log.txt 2&#62;&#62; C:\AppServ\errlog.txt</div><div class="code_line">:: обновляем копию до последней версии trunk</div><div class="code_line">echo %time% update work copy &#62;&#62; C:\AppServ\log.txt</div><div class="code_line">&quot;C:\Program Files (x86)\VisualSVN Server\bin\svn.exe&quot; update C:\AppServ\TrunkCopy &#62;&#62; C:\AppServ\log.txt 2&#62;&#62; C:\AppServ\errlog.txt</div><div class="code_line">:: обновляем документацию</div><div class="code_line">echo %time% update docs &#62;&#62; C:\AppServ\log.txt</div><div class="code_line">&quot;C:\Program Files\NaturalDocs\NaturalDocs.pl&quot; -i C:\AppServ\TrunkCopy -o HTML C:\AppServ\www\Docs -p C:\AppServ\DocsProject -l ru -s USSmall &#62;&#62; C:\AppServ\log.txt 2&#62;&#62; C:\AppServ\errlog.txt</div><div class="code_line">:: записываем, что успешно</div><div class="code_line">echo %time% success &#62;&#62; C:\AppServ\log.txt</div><div class="code_line">exit 0</div></ol></div></div></div></div>В каталоге C:&#092;AppServ&#092;TrunkCopy храниться рабочая копия нужного репозитория.<br>
<br>
При запуске первого батника вручную, рабочая копия нормально обновляется до HEAD и создаётся документация через NaturalDocs.<br>
А вот при коммите происходит следующее: управление передаётся второму батнику, он нормально делает cleanup и повисает на выполнении update.<br>
<br>
В логах остаётся следующее:<br>
<strong class='tag-b'>post-commit-log.txt</strong><br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">12:05:41,33 start updating</div></ol></div></div></div></div><br>
<strong class='tag-b'>C:&#092;AppServ&#092;log.txt</strong><br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">12:05:41,33 start updating </div><div class="code_line">12:05:41,33 clean up </div><div class="code_line">12:05:44,08 update work copy </div><div class="code_line">Updating &#39;C:\AppServ\TrunkCopy&#39;:</div></ol></div></div></div></div><br>
<br>
При этом у того кто совершает коммит, повисает окошко TortoiseSVN с заполненным на 100% прогрессбаром.<br>
В процессах видно следующее:<br>
<span class="b-attach" data-size="12738" data-hits="679" data-attach-id="31731" data-attach-post-id="0">
			<span class="b-attach__title"></span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=0&amp;attach_id=31731' title='Скачать файл' target='_blank'>vshooks.png</a> (, : 679)
		</span><br>
При чём, даже когда у пользователя выйдет таймаут или он отменит коммит, процесс останется висеть.<br>
<br>
На сколько я понимаю, svn при апдейте пытается записать какую-то информацию в каталог, к которому нет доступа у <strong class='tag-b'>NETWORK_SERVICE</strong> (из под этой учётки запущен VisualSVN). Я разрешил запись в каталог C:&#092;AppServ и каталог с хуками, но этого похоже не достаточно. Мне кажется, что svn куда-то скидывает свои временные файлы при апдейтах или пишет куда-то логи и надо дать прав на эти каталоги.<br>
<br>
Что посоветуете делать?]]></description>
        <author>WhyNot</author>
        <category>Version Control</category>
      </item>
	
      </channel>
      </rss>
	