<?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>.wpal &#187; mercurial</title>
	<atom:link href="http://blog.web2.com.ua/tag/mercurial/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.web2.com.ua</link>
	<description>web, programming and linux</description>
	<lastBuildDate>Fri, 20 May 2011 13:29:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<item>
		<title>Subrepos/Субрепозитории в Mercurial</title>
		<link>http://blog.web2.com.ua/2010/09/04/subrepossubrepozitorii-v-mercurial/</link>
		<comments>http://blog.web2.com.ua/2010/09/04/subrepossubrepozitorii-v-mercurial/#comments</comments>
		<pubDate>Sat, 04 Sep 2010 14:24:24 +0000</pubDate>
		<dc:creator>wert2all</dc:creator>
				<category><![CDATA[настройка]]></category>
		<category><![CDATA[программирование]]></category>
		<category><![CDATA[mercurial]]></category>
		<category><![CDATA[repos]]></category>
		<category><![CDATA[settings]]></category>
		<category><![CDATA[subrepos]]></category>

		<guid isPermaLink="false">http://blog.web2.com.ua/?p=969</guid>
		<description><![CDATA[Бывает, что вы используете в ваших проектах несколько тулкитов, фреймворков и тд. И держать копии репозиториев фреймворков в репозитории некрасиво да и мониторить изменения сложно. Для решения этой проблемы в Mercurial есть механизм Subrepos. Дано У нас есть проект. Большой и жирный. Там используется фреймворк для PHP, для Javascript и для CSS.  Это всё имеется [...]]]></description>
			<content:encoded><![CDATA[<p>Бывает, что вы используете в ваших проектах несколько тулкитов, фреймворков и тд. И держать копии репозиториев фреймворков в репозитории некрасиво да и мониторить изменения сложно. Для решения этой проблемы в Mercurial есть механизм Subrepos.<span id="more-969"></span></p>
<h2>Дано</h2>
<p>У нас есть проект. Большой и жирный. Там используется фреймворк для PHP, для Javascript и для CSS.  Это всё имеется у вас и в других проектах и переодически кто-то да что-то вносит в них. То есть, у нас есть такая структура проектов:</p>
<ul>
<li>one_project
<ul>
<li>Zend_Framawork</li>
<li>My_CSS</li>
<li>JQuery</li>
</ul>
</li>
<li>second_project
<ul>
<li>JQuery</li>
<li>Zend_Framawork</li>
</ul>
</li>
<li>Zend_Framawork</li>
<li>JQuery</li>
<li>My_CSS</li>
</ul>
<p>И вот в проекте one_project изменили что-то в My_CSS. Что делать? Есть вариант вручную изменять и во втором проекте. Но это не выход, да и проблема ещё та.</p>
<h2>Что делать?</h2>
<p>А давайте создадим репозитории для наших библиотек и  подключим их к основным проектам. Будем иметь список репозиториев:</p>
<ul>
<li>one_project</li>
<li>second_project</li>
<li>Zend_Framawork</li>
<li>JQuery</li>
<li>My_CSS</li>
</ul>
<p>Теперь каждая библиотека отдельная и можно вносить изменения и получать их по отдельности. Можно это делать руками и даная структура позволяет этим заниматся, но мы же упрощаем себе жизнь, а не запутываем себя и разработчиков!</p>
<h2>Создаём субрепозитории</h2>
<p>Пускай у нас уже есть развёрнутый репозиторий.</p>
<pre><code>wert2all@linux:~/phpProjects/featerequest&gt; hg status
M classes/Ext/Controller/Auth.php
M classes/Ext/Controller/Index.php
M conf/config.php
M static/css/reset.css
! templates/default/index/index.html
! templates/default/main.html
? classes/Smarty/.DS_Store
? templates/default/index/index.tpl
? templates/default/main.tpl
wert2all@linux:~/phpProjects/featerequest&gt;</code></pre>
<p>Создадим ещё один репозиторий:</p>
<pre><code>wert2all@linux:~/phpProjects/featerequest&gt; hg init library
wert2all@linux:~/phpProjects/featerequest&gt; ls
classes  featerequest.kdev4  _index.html  info.php  library  templates
conf     files               index.php    init.php  static   tmp
wert2all@linux:~/phpProjects/featerequest&gt;</code></pre>
<p>Появился каталог library в который мы вкинем наш репозиторий с нужным фреймворком. Все репозитории у меня хранятся на другом сервере ивот их структура:</p>
<pre><code>repo@linux:~&gt; ls -l
загалом 20768
drwxr-xr-x  3 repo nobody    4096 вер  4 16:47 featuresrequest
drwxr-xr-x  8 repo nobody    4096 сер  3 12:52 W_library
repo@linux:~&gt;</code></pre>
<p>featuresrequest &#8211; это мой проект. W_library &#8211; набор библиотек, тоесть субрепозиторий. Вот его мне и надо подключить в library.</p>
<p>Приступим:</p>
<pre><code>wert2all@linux:~/phpProjects/featerequest&gt; echo library=../W_library &gt; .hgsub
wert2all@linux:~/phpProjects/featerequest&gt; cat .hgsub
library=../W_library
wert2all@linux:~/phpProjects/featerequest&gt;</code></pre>
<p>Мы сдали файл .hgsub и указали где лежит наш субрепозиторий.</p>
<p>Теперь создадим файл hgrc в нашем субрепозитории, чтобы Mercurial знал откуда его получать:</p>
<pre><code>wert2all@linux:~/phpProjects/featerequest&gt; vi library/.hg/hgrc

[paths]
default = ssh://repo@localhost//home/repo/W_library</code></pre>
<p>Я указал свой путь к репозитарию. Теперь можно получить этот субрепозитарий:</p>
<pre><code>wert2all@linux:~/phpProjects/featerequest&gt; cd library/
wert2all@linux:~/phpProjects/featerequest/library&gt; hg pull
Password:
pulling from ssh://repo@localhost//home/repo/W_library
requesting all changes
adding changesets
adding manifests
adding file changes
added 3 changesets with 2964 changes to 2876 files
(run 'hg update' to get a working copy)
wert2all@linux:~/phpProjects/featerequest/library&gt; hg update
2876 files updated, 0 files merged, 0 files removed, 0 files unresolved
wert2all@linux:~/phpProjects/featerequest/library&gt;</code></pre>
<p>Теперь можно делать комиты в разне репозитории и пушить на сервер. И никаких копирований.</p>
<pre><code>wert2all@linux:~/phpProjects/featerequest&gt; hg push
Password:
pushing to ssh://repo@localhost//home/repo/featuresrequest
pushing subrepo library to ssh://repo@localhost//home/repo/W_library
Password:
searching for changes
remote: adding changesets
remote: adding manifests
remote: adding file changes
remote: added 1 changesets with 88 changes to 88 files
searching for changes
remote: adding changesets
remote: adding manifests
remote: adding file changes
remote: added 13 changesets with 3341 changes to 3130 files
wert2all@linux:~/phpProjects/featerequest&gt;</code></pre>
<h2>Почитать</h2>
<p>Всёэто я взял с <a href="http://mercurial.selenic.com/wiki/subrepos" target="_blank">Mercurial Wiki</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.web2.com.ua/2010/09/04/subrepossubrepozitorii-v-mercurial/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Скрипт для управления примонтированых FTP-серверов</title>
		<link>http://blog.web2.com.ua/2009/05/26/skript-dlya-upravleniya-primontirovanyih-ftp-serverov/</link>
		<comments>http://blog.web2.com.ua/2009/05/26/skript-dlya-upravleniya-primontirovanyih-ftp-serverov/#comments</comments>
		<pubDate>Tue, 26 May 2009 14:34:17 +0000</pubDate>
		<dc:creator>wert2all</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[интернет]]></category>
		<category><![CDATA[программирование]]></category>
		<category><![CDATA[CurlFtpFS]]></category>
		<category><![CDATA[GPL]]></category>
		<category><![CDATA[mercurial]]></category>
		<category><![CDATA[programmint]]></category>
		<category><![CDATA[script]]></category>

		<guid isPermaLink="false">http://blog.web2.com.ua/?p=826</guid>
		<description><![CDATA[Помните, я думал написать скрипт для монтирования в папку пользователя FTP-директорий? Посидел, написал, выложил. Простой, как дверь, но, коль мне надо будет его часто, то перепишу под Qt с красивыми ГУЯми. Код скрипта на bitbucket, правьте, если надо. зы. Клёвый безплатный хаб для mercurial.]]></description>
			<content:encoded><![CDATA[<p>Помните, я <a href="http://blog.web2.com.ua/2009/05/21/montirovanie-ftp-direktorii/">думал</a> написать скрипт для монтирования в папку пользователя FTP-директорий? Посидел, написал, <a href="http://bitbucket.org/wert2all/phpcurlftpfsconnector/overview/" target="_blank">выложил</a>. Простой, как дверь, но, коль мне надо будет его часто, то перепишу под Qt с красивыми ГУЯми.</p>
<p>Код скрипта на bitbucket, правьте, если надо.</p>
<p>зы. Клёвый <a href="http://bitbucket.org/" target="_blank">безплатный хаб</a> для mercurial.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.web2.com.ua/2009/05/26/skript-dlya-upravleniya-primontirovanyih-ftp-serverov/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

