<?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>Python Blog - All about python &#187; Mercurial</title>
	<atom:link href="http://www.python-blog.com/category/mercurial/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.python-blog.com</link>
	<description>and technologies around</description>
	<lastBuildDate>Tue, 27 Jul 2010 19:58:17 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>hg app v0.8 new layout, and features</title>
		<link>http://www.python-blog.com/2010/07/27/hg-app-v0-8-new-layout-and-features/</link>
		<comments>http://www.python-blog.com/2010/07/27/hg-app-v0-8-new-layout-and-features/#comments</comments>
		<pubDate>Tue, 27 Jul 2010 19:55:34 +0000</pubDate>
		<dc:creator>Marcin Kuźmiński</dc:creator>
				<category><![CDATA[Mercurial]]></category>
		<category><![CDATA[Pylons]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[hg app demo]]></category>
		<category><![CDATA[hgweb pylons]]></category>
		<category><![CDATA[hgwebdir alternative]]></category>
		<category><![CDATA[pylons demo of hg app]]></category>
		<category><![CDATA[pylons hgwebdir replacement demo]]></category>

		<guid isPermaLink="false">http://www.python-blog.com/?p=314</guid>
		<description><![CDATA[It&#8217;s been some time, hg-app is still in rapid development.
DEMO: http://hg.python-works.com
TRACKER: http://bitbucket.org/marcinkuzminski/hg-app/issues 
Since last time hg-app got:

Full permissions per repository system.
Yui float graphs
New gui
Database based settings and hooks
Huge number of bugfixes.

Below few screenshots of new hg-app gui.
]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been some time, hg-app is still in rapid development.</p>
<h2>DEMO: <a href="http://hg.python-works.com/">http://hg.python-works.com</a></h2>
<h2>TRACKER: <a href="http://bitbucket.org/marcinkuzminski/hg-app/issues">http://bitbucket.org/marcinkuzminski/hg-app/issues</a> </h2>
<p>Since last time hg-app got:</p>
<ul>
<li>Full permissions per repository system.</li>
<li>Yui float graphs</li>
<li>New gui</li>
<li>Database based settings and hooks</li>
<li>Huge number of bugfixes.</li>
</ul>
<p>Below few screenshots of new hg-app gui.
<a href='http://www.python-blog.com/2010/07/27/hg-app-v0-8-new-layout-and-features/screenshot-2/' title='Screenshot'><img width="150" height="150" src="http://www.python-blog.com/wp-content/uploads/2010/07/Screenshot1-150x150.png" class="attachment-thumbnail" alt="" title="Screenshot" /></a>
<a href='http://www.python-blog.com/2010/07/27/hg-app-v0-8-new-layout-and-features/screenshot-1/' title='Screenshot-1'><img width="150" height="150" src="http://www.python-blog.com/wp-content/uploads/2010/07/Screenshot-1-150x150.png" class="attachment-thumbnail" alt="" title="Screenshot-1" /></a>
<a href='http://www.python-blog.com/2010/07/27/hg-app-v0-8-new-layout-and-features/screenshot-2-2/' title='Screenshot-2'><img width="150" height="150" src="http://www.python-blog.com/wp-content/uploads/2010/07/Screenshot-2-150x150.png" class="attachment-thumbnail" alt="" title="Screenshot-2" /></a>
<a href='http://www.python-blog.com/2010/07/27/hg-app-v0-8-new-layout-and-features/screenshot-3/' title='Screenshot-3'><img width="150" height="150" src="http://www.python-blog.com/wp-content/uploads/2010/07/Screenshot-3-150x150.png" class="attachment-thumbnail" alt="" title="Screenshot-3" /></a>
<a href='http://www.python-blog.com/2010/07/27/hg-app-v0-8-new-layout-and-features/screenshot-4/' title='Screenshot-4'><img width="150" height="150" src="http://www.python-blog.com/wp-content/uploads/2010/07/Screenshot-4-150x150.png" class="attachment-thumbnail" alt="" title="Screenshot-4" /></a>
<a href='http://www.python-blog.com/2010/07/27/hg-app-v0-8-new-layout-and-features/screenshot-5/' title='Screenshot-5'><img width="150" height="150" src="http://www.python-blog.com/wp-content/uploads/2010/07/Screenshot-5-150x150.png" class="attachment-thumbnail" alt="" title="Screenshot-5" /></a>
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.python-blog.com/2010/07/27/hg-app-v0-8-new-layout-and-features/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>hg app &#8211; demo</title>
		<link>http://www.python-blog.com/2010/06/07/hg-app-demo/</link>
		<comments>http://www.python-blog.com/2010/06/07/hg-app-demo/#comments</comments>
		<pubDate>Mon, 07 Jun 2010 18:18:32 +0000</pubDate>
		<dc:creator>Marcin Kuźmiński</dc:creator>
				<category><![CDATA[Mercurial]]></category>
		<category><![CDATA[Pylons]]></category>
		<category><![CDATA[hg app demo]]></category>
		<category><![CDATA[pylons demo of hg app]]></category>
		<category><![CDATA[pylons hgwebdir replacement demo]]></category>

		<guid isPermaLink="false">http://www.python-blog.com/?p=310</guid>
		<description><![CDATA[After some code fixups, and corrections i manage to set up a working demo of hg app.
This demo, has all functionality of hg app and will be updated during application life to current version.
Demo is available at http://hg.python-works.com
Any feedback is welcomed and can be posted to http://bitbucket.org/marcinkuzminski/hg-app/issues
Thank you !
]]></description>
			<content:encoded><![CDATA[<p>After some code fixups, and corrections i manage to set up a working demo of hg app.<br />
This demo, has all functionality of hg app and will be updated during application life to current version.</p>
<h2>Demo is available at <a href="http://hg.python-works.com">http://hg.python-works.com</a></h2>
<p>Any feedback is welcomed and can be posted to <a href="http://bitbucket.org/marcinkuzminski/hg-app/issues">http://bitbucket.org/marcinkuzminski/hg-app/issues</a></p>
<p>Thank you !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.python-blog.com/2010/06/07/hg-app-demo/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>hg app &#8211; mercurial hgwebdir replacement.</title>
		<link>http://www.python-blog.com/2010/06/01/hg-app-mercurial-hgwebdir-replacement/</link>
		<comments>http://www.python-blog.com/2010/06/01/hg-app-mercurial-hgwebdir-replacement/#comments</comments>
		<pubDate>Tue, 01 Jun 2010 18:41:44 +0000</pubDate>
		<dc:creator>Marcin Kuźmiński</dc:creator>
				<category><![CDATA[Mercurial]]></category>
		<category><![CDATA[Pylons]]></category>
		<category><![CDATA[SqlAlchemy]]></category>
		<category><![CDATA[Threads]]></category>
		<category><![CDATA[hgweb alternative]]></category>
		<category><![CDATA[hgweb templates]]></category>
		<category><![CDATA[hgwebdir replacement]]></category>
		<category><![CDATA[mercurial web]]></category>
		<category><![CDATA[pylons mercurial]]></category>
		<category><![CDATA[vcs]]></category>

		<guid isPermaLink="false">http://www.python-blog.com/?p=297</guid>
		<description><![CDATA[Since, me and Lukasz fine tuned the vcs library i manage to setup a beta version of hg app. I was tired of the boring looks, and poor source code browsing capabilities of the hgwebdir.
So i started to write my own app, at the beginning it was just a simple hgwebdir wrapper, to pylons, now [...]]]></description>
			<content:encoded><![CDATA[<p>Since, me and Lukasz fine tuned the <a href="http://bitbucket.org/marcinkuzminski/vcs">vcs</a> library i manage to setup a beta version of <a href="http://bitbucket.org/marcinkuzminski/hg-app/">hg app</a>. I was tired of the boring looks, and poor source code browsing capabilities of the hgwebdir.<br />
So i started to write my own app, at the beginning it was just a simple hgwebdir wrapper, to pylons, now it&#8217;s fully standalone replacement. Including abilities to push/pull thrum the application.</p>
<p>Pylons based replacement for hgwebdir. Fully customizable,<br />
with authentication, permissions. Based on vcs library.</p>
<ul>
<li> has it&#8217;s own middleware to handle mercurial protocol request each request can<br />
be logged and authenticated +threaded performance unlikely to hgweb. Middleware recognises a mercurial protocol<br />
and skips any functionality for pure web request</li>
<li>mimics full functionality of hgwebdir including feeds,archives,diffs,raw-diffs,annotations,file history etc.</li>
<li> mako templates let&#8217;s you customize look and feel of the application.<br />
Possibly visual merge with your company systems</li>
<li>diffs annotations and source code all colored by pygments (see screenshots).</li>
<li> admin interface for performing user/permission managements as well as repository<br />
managements. Out of beta version should have fully customizable permission system, with<br />
private repos, and repo permissions</li>
<li> added cache with invalidation on push/repo managment for high performance and<br />
always upto date data.</li>
<li> rss / atom feeds</li>
<li> future support for git (thanks to vcs mercurial/git api should be 1:1</li>
<li> based on pylons 1.0 / sqlalchemy 0.6 /sqlite(possibly mysql/postgres thanks to sqlalchemy models)</li>
</ul>
<p>Below are the beta version screenshots. Now I&#8217;m not good at designing webapps, so excuse me if you feel the look&amp;feel to be to simple or bad looking.<br />
It&#8217;s all i could come up with. Most of my expiration was taken from hgwebdir/bitbucket and github. I tried to take all best parts from all of them and combine into this app.<br />
It&#8217;s still in beta but i think it&#8217;s production ready in this stage I&#8217;m using it for few weeks, and had no troubles or crashes with it. The code can be grabbed at bitbucket repo <a href="http://bitbucket.org/marcinkuzminski/hg-app/">http://bitbucket.org/marcinkuzminski/hg-app/</a></p>

<a href='http://www.python-blog.com/2010/06/01/hg-app-mercurial-hgwebdir-replacement/screenshot-administration-namoroka/' title='Screenshot-Administration - Namoroka'><img width="150" height="150" src="http://www.python-blog.com/wp-content/uploads/2010/06/Screenshot-Administration-Namoroka-150x150.png" class="attachment-thumbnail" alt="" title="Screenshot-Administration - Namoroka" /></a>
<a href='http://www.python-blog.com/2010/06/01/hg-app-mercurial-hgwebdir-replacement/screenshot-file-annotate-namoroka/' title='Screenshot-File annotate - Namoroka'><img width="150" height="150" src="http://www.python-blog.com/wp-content/uploads/2010/06/Screenshot-File-annotate-Namoroka-150x150.png" class="attachment-thumbnail" alt="" title="Screenshot-File annotate - Namoroka" /></a>
<a href='http://www.python-blog.com/2010/06/01/hg-app-mercurial-hgwebdir-replacement/screenshot-python-works-mercurial-repositories-namoroka/' title='Screenshot-Python-works Mercurial Repositories - Namoroka'><img width="150" height="150" src="http://www.python-blog.com/wp-content/uploads/2010/06/Screenshot-Python-works-Mercurial-Repositories-Namoroka-150x150.png" class="attachment-thumbnail" alt="" title="Screenshot-Python-works Mercurial Repositories - Namoroka" /></a>
<a href='http://www.python-blog.com/2010/06/01/hg-app-mercurial-hgwebdir-replacement/screenshot-python-works-mercurial-repositories-namoroka-1/' title='Screenshot-Python-works Mercurial Repositories - Namoroka-1'><img width="150" height="150" src="http://www.python-blog.com/wp-content/uploads/2010/06/Screenshot-Python-works-Mercurial-Repositories-Namoroka-1-150x150.png" class="attachment-thumbnail" alt="" title="Screenshot-Python-works Mercurial Repositories - Namoroka-1" /></a>
<a href='http://www.python-blog.com/2010/06/01/hg-app-mercurial-hgwebdir-replacement/screenshot-repository-managment-namoroka/' title='Screenshot-Repository managment - Namoroka'><img width="150" height="150" src="http://www.python-blog.com/wp-content/uploads/2010/06/Screenshot-Repository-managment-Namoroka-150x150.png" class="attachment-thumbnail" alt="" title="Screenshot-Repository managment - Namoroka" /></a>
<a href='http://www.python-blog.com/2010/06/01/hg-app-mercurial-hgwebdir-replacement/screenshot-repository-managment-namoroka-1/' title='Screenshot-Repository managment - Namoroka-1'><img width="150" height="150" src="http://www.python-blog.com/wp-content/uploads/2010/06/Screenshot-Repository-managment-Namoroka-1-150x150.png" class="attachment-thumbnail" alt="" title="Screenshot-Repository managment - Namoroka-1" /></a>
<a href='http://www.python-blog.com/2010/06/01/hg-app-mercurial-hgwebdir-replacement/screenshot-repository-managment-namoroka-2/' title='Screenshot-Repository managment - Namoroka-2'><img width="150" height="150" src="http://www.python-blog.com/wp-content/uploads/2010/06/Screenshot-Repository-managment-Namoroka-2-150x150.png" class="attachment-thumbnail" alt="" title="Screenshot-Repository managment - Namoroka-2" /></a>

]]></content:encoded>
			<wfw:commentRss>http://www.python-blog.com/2010/06/01/hg-app-mercurial-hgwebdir-replacement/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VersionControlSystem &#8211; a great Mercurial API.</title>
		<link>http://www.python-blog.com/2010/05/02/versioncontrolsystem-a-great-mercurial-api/</link>
		<comments>http://www.python-blog.com/2010/05/02/versioncontrolsystem-a-great-mercurial-api/#comments</comments>
		<pubDate>Sat, 01 May 2010 23:25:33 +0000</pubDate>
		<dc:creator>Marcin Kuźmiński</dc:creator>
				<category><![CDATA[Django]]></category>
		<category><![CDATA[Mercurial]]></category>
		<category><![CDATA[Pylons]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[django hgserve]]></category>
		<category><![CDATA[git api]]></category>
		<category><![CDATA[hgwebdir replace]]></category>
		<category><![CDATA[mercurial api]]></category>
		<category><![CDATA[pylons hgserve]]></category>
		<category><![CDATA[simple api]]></category>
		<category><![CDATA[vcs]]></category>

		<guid isPermaLink="false">http://www.python-blog.com/?p=293</guid>
		<description><![CDATA[Since Me and Lukasz started this project a while ago, it&#8217;s time to announce that we shipped out first public Beta release.
It&#8217;s available on PyPi as &#8220;vcs&#8221;, so you can install it using PIP or EASY_INSTALL.
Simply run to download and install it.
easy_install vcs
pip install vcs

Lukasz made a nice documentation, and quick starts available here http://packages.python.org/vcs/
The [...]]]></description>
			<content:encoded><![CDATA[<p>Since Me and Lukasz started this project a while ago, it&#8217;s time to announce that we shipped out first public Beta release.</p>
<p>It&#8217;s available on PyPi as &#8220;vcs&#8221;, so you can install it using PIP or EASY_INSTALL.</p>
<p>Simply run to download and install it.</p>
<pre>easy_install vcs
pip install vcs
</pre>
<p>Lukasz made a nice documentation, and quick starts available here <a href="http://packages.python.org/vcs/" target="_blank">http://packages.python.org/vcs/</a></p>
<p><strong>The vcs API:</strong></p>
<p><strong>Features</strong></p>
<ul>
<li>Common <em>API</em> for SCM backends (mercurial is the first and only one available right now)</li>
<li>Fetching repositories data lazily (performance and easy of use)</li>
<li>Simple caching mechanism so we don&#8217;t hit repo too often (so a refresh on a 2000 commit repo wont kill  the cpu)</li>
</ul>
<p><strong>Incoming</strong></p>
<ul>
<li><a href="http://www.djangoproject.com/">Django</a> app for <a href="http://mercurial.selenic.com/">mercurial</a> hgserve replacement &#8211; this is probably going to be a part of the vcs library</li>
<li><a href="http://pylonshq.com/">Pylons</a> app for <a href="http://mercurial.selenic.com/">mercurial</a> replacement &#8211; this is my little project which i finished roughly in 70% of functionality that hgwebdir does.</li>
<li>Command line client</li>
</ul>
<p>Few things are worth mentioning.<br />
The key point of vcs to have the same api for various SCM-s so mercurial,git,subversion(maybe others) will have<br />
a same way for data access,objects structures and so on. Imagine how fast and simple you could extend an web app which uses<br />
mercurial as a SCM to GIT, simply replace the repo path to git and all should work. Of Course there are some differences between git and mercurial<br />
that could be handled in the same maner, and this is also simply handled by a private methods, specific for a SCM.</p>
<p>This is of course an open source project and any contributors are always welcomed.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.python-blog.com/2010/05/02/versioncontrolsystem-a-great-mercurial-api/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Mercurial on nginx with authentication and SSL</title>
		<link>http://www.python-blog.com/2009/11/15/mercurial-on-nginx-with-authentication-and-ssl/</link>
		<comments>http://www.python-blog.com/2009/11/15/mercurial-on-nginx-with-authentication-and-ssl/#comments</comments>
		<pubDate>Sun, 15 Nov 2009 19:59:08 +0000</pubDate>
		<dc:creator>Marcin Kuźmiński</dc:creator>
				<category><![CDATA[Mercurial]]></category>
		<category><![CDATA[Nginx]]></category>
		<category><![CDATA[certificate generation]]></category>
		<category><![CDATA[crypt]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[generator]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[mercurial ssl]]></category>
		<category><![CDATA[orm]]></category>
		<category><![CDATA[passwd]]></category>
		<category><![CDATA[push pull]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[python blog]]></category>
		<category><![CDATA[ssl]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.python-blog.com/?p=205</guid>
		<description><![CDATA[Today is a great day ;) i switched my repos from svn to mercurial.
I was still thinking about GIT but there where three key points that made me choose mercurial

 hg serve ( out of the box http server)
 it&#8217;s written in python
 has a very good eclipse plug-in (http://www.vectrace.com/mercurialeclipse/)

Cons: it&#8217;s slower than GIT ( [...]]]></description>
			<content:encoded><![CDATA[<p>Today is a great day ;) i switched my repos from svn to mercurial.<br />
I was still thinking about GIT but there where three key points that made me choose mercurial</p>
<ul>
<li> hg serve ( out of the box http server)</li>
<li> it&#8217;s written in python</li>
<li> has a very good eclipse plug-in (<a href="http://www.vectrace.com/mercurialeclipse/">http://www.vectrace.com/mercurialeclipse/</a>)</li>
</ul>
<p>Cons: it&#8217;s slower than GIT ( but who cares :D )</p>
<p>So after installing mercurial and moving my svn repos with history with <a title="HGSVN home page" href="http://pypi.python.org/pypi/hgsvn" target="_blank">hgsvn</a> ( which can also do push to svn )<br />
I started to setup easy access to the repository using nginx. I&#8217;ll show you how to setup an SSL http based repository to do PUSH/PULL/CLONE what ever.</p>
<p>Firstly we have to make self signed ssl certificates.<br />
I found on of the easiest tutorials available you can find it here: <a href="http://www.akadia.com/services/ssh_test_certificate.html" target="_blank">http://www.akadia.com/services/ssh_test_certificate.html</a></p>
<p>OK when we have the ssl certificates for our server. Put it somewhere on the server so nginx can access it.<br />
We have to setup a new virtual host for nginx that will only do ssl connections<br />
and have basic auth additionally.</p>
<p>Here&#8217;s the example config:</p>
<pre class="brush:plain">server {
    listen          443;
    server_name     hg.yourserver.com;
    ssl    on;
    ssl_certificate    /home/ssl_certs/hg_cert.crt;
    ssl_certificate_key     /home/ssl_certs/hg_cert.key;
    access_log      /var/log/nginx/hg.log;
    auth_basic      "mercurial server";
    auth_basic_user_file    /etc/nginx/.htpasswd;

    location / {
        proxy_pass      http://127.0.0.1:8001;
        #here's where the hg server runs
        include         /etc/nginx/proxy.conf;
    }
}</pre>
<p>Few thing to notice.<br />
.htpasswd file has to be in a format &lt;username&gt;:&lt;cryptPassword&gt; if you don&#8217;t have apache<br />
installed you can use <a href="http://www.python-blog.com/2009/06/23/python-random-password-generator/" target="_blank">my password generator</a> for generating crypt password. This username<br />
and password will be used to do pull/push from console and eclipse.<br />
Another important thing is that when you run hg serve you must specify the -a 127.0.0.1 option which is<br />
for the address the mercurial server runs. Hg serve default is to start at all interfaces<br />
so you have this port open outside and your ssl/passwd protection is for nothing&#8230;</p>
<p>I run my using hg serve &#8211;webdir-conf=/etc/hg/hgweb.conf -d -p 8001 -a 127.0.0.1</p>
<p>The hgweb.conf should be with</p>
<pre class="brush:plain">push_ssl = false
#since nginx is doing the SSL
allow_push = * #NGINX  is doing the auth
style = gitweb</pre>
<p>O and one more thing remember that your repo should be accessible to hg serv.<br />
I made a mistake and run hg serve as www-data and my repo was to my home user,<br />
and i had internal server error when trying to do push to server.</p>
<p>So now you can have your repo via http with SSL and nginx authentication.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.python-blog.com/2009/11/15/mercurial-on-nginx-with-authentication-and-ssl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
