<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://gwiki3.thatlinuxbox.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mwest</id>
		<title>GeeklogWiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://gwiki3.thatlinuxbox.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mwest"/>
		<link rel="alternate" type="text/html" href="http://gwiki3.thatlinuxbox.com/Special:Contributions/Mwest"/>
		<updated>2026-04-06T04:04:19Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.27.5</generator>

	<entry>
		<id>http://gwiki3.thatlinuxbox.com/index.php?title=Using_Mercurial&amp;diff=4712</id>
		<title>Using Mercurial</title>
		<link rel="alternate" type="text/html" href="http://gwiki3.thatlinuxbox.com/index.php?title=Using_Mercurial&amp;diff=4712"/>
				<updated>2008-08-14T04:32:29Z</updated>
		
		<summary type="html">&lt;p&gt;Mwest: /* Merging */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
[http://www.selenic.com/mercurial/ Mercurial] is a distributed version control system (DVCS). The differences to a &amp;quot;traditional&amp;quot; centralized VCS (like CVS or Subversion) include:&lt;br /&gt;
&lt;br /&gt;
* Users get a self-contained repository that they can commit changes to, even when being offline.&lt;br /&gt;
* Changes can be pushed back to the parent repository or even to other repositories.&lt;br /&gt;
&lt;br /&gt;
As an experiment, we are going to use Mercurial during the 2008 [[Google Summer of Code]]. The distributed model fits this scenario nicely, as each of our students will work on a separate feature. So now they have a local repository to check in to (giving them all the benefits of a version control system). Once a feature or part of a feature is done, it can be pushed back to the parent repository. And in the meantime, it's easy to let other people, e.g. their mentor or interested members of the Geeklog community, pull the changes from the student's repository to show things off or get help on a problem.&lt;br /&gt;
&lt;br /&gt;
== Installing Mercurial ==&lt;br /&gt;
&lt;br /&gt;
Installation instructions are provided for [http://www.selenic.com/mercurial/wiki/index.cgi/WindowsInstall Windows], [http://www.selenic.com/mercurial/wiki/index.cgi/UnixInstall Mac OS X], and [http://www.selenic.com/mercurial/wiki/index.cgi/UnixInstall Linux]&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
&lt;br /&gt;
Geeklog's Mercurial repository is available from this URL:&lt;br /&gt;
&lt;br /&gt;
: http://project.geeklog.net/cgi-bin/hgweb.cgi&lt;br /&gt;
&lt;br /&gt;
This repository was converted from the CVS repository right after the release of [http://www.geeklog.net/article.php/geeklog-1.5.0 Geeklog 1.5.0].&lt;br /&gt;
&lt;br /&gt;
To create a copy of that repository, simply do&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;hg clone http://project.geeklog.net/cgi-bin/hgweb.cgi geeklog&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &amp;quot;geeklog&amp;quot; is just a directory name for the local copy (and can be changed at will). This will give you a fully working local repository that you can commit changes to.&lt;br /&gt;
&lt;br /&gt;
=== SSH Setup ===&lt;br /&gt;
&lt;br /&gt;
For ssh access, you need an account on the server. So this is only of interest for the core developers and SoC students.&lt;br /&gt;
&lt;br /&gt;
The repository can also be checked out via ssh. Since Mercurial is currently only installed in a user's directory on the server, this requires the following entry in your local(!) &amp;lt;tt&amp;gt;~/.hgrc&amp;lt;/tt&amp;gt; file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;[ui]&lt;br /&gt;
remotecmd = /usr/home/geeklog2/hg/mercurial/hg&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to clone the repository like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;hg clone ssh://username@cvs.geeklog.net//cvsroot/geeklog/Geeklog-SoC geeklog&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &amp;quot;username&amp;quot; is your login name and the &amp;quot;geeklog&amp;quot; at the end of the command line is again simply a name for your local directory.&lt;br /&gt;
&lt;br /&gt;
Please note the slightly odd path syntax with the two slashes after &amp;lt;tt&amp;gt;cvs.geeklog.net&amp;lt;/tt&amp;gt; - those are required.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pushing back ==&lt;br /&gt;
&lt;br /&gt;
Being able to push changes back to the repository again requires an account on the server. You can either do&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;hg push ssh://username@cvs.geeklog.net//cvsroot/geeklog/Geeklog-SoC&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or, to make your life easier, set the &amp;lt;tt&amp;gt;default-push&amp;lt;/tt&amp;gt; repository in the &amp;lt;tt&amp;gt;.hg/hgrc&amp;lt;/tt&amp;gt; file of your local repository like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;default-push = ssh://username@cvs.geeklog.net//cvsroot/geeklog/Geeklog-SoC&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Again, in the ssh: URLs above, replace &amp;quot;username&amp;quot; with your login name)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Best practices ==&lt;br /&gt;
&lt;br /&gt;
Since we're all new to Mercurial, this is something we will have to establish as we go along. For starters, the [http://www.selenic.com/mercurial/wiki/ Mercurial Wiki] has a page on [http://www.selenic.com/mercurial/wiki/index.cgi/WorkingPractices Working Practices] that we may want to adopt.&lt;br /&gt;
&lt;br /&gt;
=== Use a clean incoming repository ===&lt;br /&gt;
&lt;br /&gt;
Pull changes to a local &amp;quot;incoming&amp;quot; repository but don't work on that repository. Cloning that repository locally is a cheap operation and allows you to easily create multiple copies if necessary, e.g. when working on different features in parallel.&lt;br /&gt;
&lt;br /&gt;
Push directly from you working repositories, then sync back by pulling the changes back down via your incoming repository.&lt;br /&gt;
&lt;br /&gt;
=== Merging ===&lt;br /&gt;
If you attempt to push changes to the main repository and receive the error:&lt;br /&gt;
 remote: Not trusting file [some remote file] from untrusted user geeklog2, group users&lt;br /&gt;
 pushing to ssh://username@cvs.geeklog.net//cvsroot/geeklog/Geeklog-SoC&lt;br /&gt;
 searching for changes&lt;br /&gt;
 abort: push creates new remote heads!&lt;br /&gt;
 (did you forget to merge? use push -f to force)&lt;br /&gt;
 remote: Not trusting file [some remote file] from untrusted user geeklog2, group users&lt;br /&gt;
Simply pull from the main repository, &amp;quot;hg heads&amp;quot; to see the revision numbers, &amp;quot;hg merge [rev number]&amp;quot; to merge your changes, then commit the changes, and push back to the main repository.&lt;br /&gt;
&lt;br /&gt;
''(More tips and tricks to be added here)''&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Mwest</name></author>	</entry>

	<entry>
		<id>http://gwiki3.thatlinuxbox.com/index.php?title=Using_Mercurial&amp;diff=4711</id>
		<title>Using Mercurial</title>
		<link rel="alternate" type="text/html" href="http://gwiki3.thatlinuxbox.com/index.php?title=Using_Mercurial&amp;diff=4711"/>
				<updated>2008-08-14T04:22:33Z</updated>
		
		<summary type="html">&lt;p&gt;Mwest: Added information on merging&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
[http://www.selenic.com/mercurial/ Mercurial] is a distributed version control system (DVCS). The differences to a &amp;quot;traditional&amp;quot; centralized VCS (like CVS or Subversion) include:&lt;br /&gt;
&lt;br /&gt;
* Users get a self-contained repository that they can commit changes to, even when being offline.&lt;br /&gt;
* Changes can be pushed back to the parent repository or even to other repositories.&lt;br /&gt;
&lt;br /&gt;
As an experiment, we are going to use Mercurial during the 2008 [[Google Summer of Code]]. The distributed model fits this scenario nicely, as each of our students will work on a separate feature. So now they have a local repository to check in to (giving them all the benefits of a version control system). Once a feature or part of a feature is done, it can be pushed back to the parent repository. And in the meantime, it's easy to let other people, e.g. their mentor or interested members of the Geeklog community, pull the changes from the student's repository to show things off or get help on a problem.&lt;br /&gt;
&lt;br /&gt;
== Installing Mercurial ==&lt;br /&gt;
&lt;br /&gt;
Installation instructions are provided for [http://www.selenic.com/mercurial/wiki/index.cgi/WindowsInstall Windows], [http://www.selenic.com/mercurial/wiki/index.cgi/UnixInstall Mac OS X], and [http://www.selenic.com/mercurial/wiki/index.cgi/UnixInstall Linux]&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
&lt;br /&gt;
Geeklog's Mercurial repository is available from this URL:&lt;br /&gt;
&lt;br /&gt;
: http://project.geeklog.net/cgi-bin/hgweb.cgi&lt;br /&gt;
&lt;br /&gt;
This repository was converted from the CVS repository right after the release of [http://www.geeklog.net/article.php/geeklog-1.5.0 Geeklog 1.5.0].&lt;br /&gt;
&lt;br /&gt;
To create a copy of that repository, simply do&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;hg clone http://project.geeklog.net/cgi-bin/hgweb.cgi geeklog&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &amp;quot;geeklog&amp;quot; is just a directory name for the local copy (and can be changed at will). This will give you a fully working local repository that you can commit changes to.&lt;br /&gt;
&lt;br /&gt;
=== SSH Setup ===&lt;br /&gt;
&lt;br /&gt;
For ssh access, you need an account on the server. So this is only of interest for the core developers and SoC students.&lt;br /&gt;
&lt;br /&gt;
The repository can also be checked out via ssh. Since Mercurial is currently only installed in a user's directory on the server, this requires the following entry in your local(!) &amp;lt;tt&amp;gt;~/.hgrc&amp;lt;/tt&amp;gt; file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;[ui]&lt;br /&gt;
remotecmd = /usr/home/geeklog2/hg/mercurial/hg&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to clone the repository like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;hg clone ssh://username@cvs.geeklog.net//cvsroot/geeklog/Geeklog-SoC geeklog&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &amp;quot;username&amp;quot; is your login name and the &amp;quot;geeklog&amp;quot; at the end of the command line is again simply a name for your local directory.&lt;br /&gt;
&lt;br /&gt;
Please note the slightly odd path syntax with the two slashes after &amp;lt;tt&amp;gt;cvs.geeklog.net&amp;lt;/tt&amp;gt; - those are required.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pushing back ==&lt;br /&gt;
&lt;br /&gt;
Being able to push changes back to the repository again requires an account on the server. You can either do&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;hg push ssh://username@cvs.geeklog.net//cvsroot/geeklog/Geeklog-SoC&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or, to make your life easier, set the &amp;lt;tt&amp;gt;default-push&amp;lt;/tt&amp;gt; repository in the &amp;lt;tt&amp;gt;.hg/hgrc&amp;lt;/tt&amp;gt; file of your local repository like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;default-push = ssh://username@cvs.geeklog.net//cvsroot/geeklog/Geeklog-SoC&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Again, in the ssh: URLs above, replace &amp;quot;username&amp;quot; with your login name)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Best practices ==&lt;br /&gt;
&lt;br /&gt;
Since we're all new to Mercurial, this is something we will have to establish as we go along. For starters, the [http://www.selenic.com/mercurial/wiki/ Mercurial Wiki] has a page on [http://www.selenic.com/mercurial/wiki/index.cgi/WorkingPractices Working Practices] that we may want to adopt.&lt;br /&gt;
&lt;br /&gt;
=== Use a clean incoming repository ===&lt;br /&gt;
&lt;br /&gt;
Pull changes to a local &amp;quot;incoming&amp;quot; repository but don't work on that repository. Cloning that repository locally is a cheap operation and allows you to easily create multiple copies if necessary, e.g. when working on different features in parallel.&lt;br /&gt;
&lt;br /&gt;
Push directly from you working repositories, then sync back by pulling the changes back down via your incoming repository.&lt;br /&gt;
&lt;br /&gt;
=== Merging ===&lt;br /&gt;
If you attempt to push changes to the main repository and receive the error:&lt;br /&gt;
 remote: Not trusting file [some remote file] from untrusted user geeklog2, group users&lt;br /&gt;
 pushing to ssh://username@cvs.geeklog.net//cvsroot/geeklog/Geeklog-SoC&lt;br /&gt;
 searching for changes&lt;br /&gt;
 abort: push creates new remote heads!&lt;br /&gt;
 (did you forget to merge? use push -f to force)&lt;br /&gt;
 remote: Not trusting file [some remote file] from untrusted user geeklog2, group users&lt;br /&gt;
Simply pull from the main repository, &amp;quot;hg heads&amp;quot; to see the revision numbers, &amp;quot;hg merge [rev number]&amp;quot; to merge your changes, then push back to the main repository.&lt;br /&gt;
&lt;br /&gt;
''(More tips and tricks to be added here)''&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Mwest</name></author>	</entry>

	<entry>
		<id>http://gwiki3.thatlinuxbox.com/index.php?title=Using_Mercurial&amp;diff=4664</id>
		<title>Using Mercurial</title>
		<link rel="alternate" type="text/html" href="http://gwiki3.thatlinuxbox.com/index.php?title=Using_Mercurial&amp;diff=4664"/>
				<updated>2008-06-26T04:07:13Z</updated>
		
		<summary type="html">&lt;p&gt;Mwest: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
[http://www.selenic.com/mercurial/ Mercurial] is a distributed version control system (DVCS). The differences to a &amp;quot;traditional&amp;quot; centralized VCS (like CVS or Subversion) include:&lt;br /&gt;
&lt;br /&gt;
* Users get a self-contained repository that they can commit changes to, even when being offline.&lt;br /&gt;
* Changes can be pushed back to the parent repository or even to other repositories.&lt;br /&gt;
&lt;br /&gt;
As an experiment, we are going to use Mercurial during the 2008 [[Google Summer of Code]]. The distributed model fits this scenario nicely, as each of our students will work on a separate feature. So now they have a local repository to check in to (giving them all the benefits of a version control system). Once a feature or part of a feature is done, it can be pushed back to the parent repository. And in the meantime, it's easy to let other people, e.g. their mentor or interested members of the Geeklog community, pull the changes from the student's repository to show things off or get help on a problem.&lt;br /&gt;
&lt;br /&gt;
== Installing Mercurial ==&lt;br /&gt;
&lt;br /&gt;
Installation instructions are provided for [http://www.selenic.com/mercurial/wiki/index.cgi/WindowsInstall Windows], [http://www.selenic.com/mercurial/wiki/index.cgi/UnixInstall Mac OS X], and [http://www.selenic.com/mercurial/wiki/index.cgi/UnixInstall Linux]&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
&lt;br /&gt;
Geeklog's Mercurial repository is available from this URL:&lt;br /&gt;
&lt;br /&gt;
: http://project.geeklog.net/cgi-bin/hgweb.cgi&lt;br /&gt;
&lt;br /&gt;
This repository was converted from the CVS repository right after the release of [http://www.geeklog.net/article.php/geeklog-1.5.0 Geeklog 1.5.0].&lt;br /&gt;
&lt;br /&gt;
To create a copy of that repository, simply do&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;hg clone http://project.geeklog.net/cgi-bin/hgweb.cgi geeklog&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &amp;quot;geeklog&amp;quot; is just a directory name for the local copy (and can be changed at will). This will give you a fully working local repository that you can commit changes to.&lt;br /&gt;
&lt;br /&gt;
=== SSH Setup ===&lt;br /&gt;
&lt;br /&gt;
For ssh access, you need an account on the server. So this is only of interest for the core developers and SoC students.&lt;br /&gt;
&lt;br /&gt;
The repository can also be checked out via ssh. Since Mercurial is currently only installed in a user's directory on the server, this requires the following entry in your local(!) &amp;lt;tt&amp;gt;~/.hgrc&amp;lt;/tt&amp;gt; file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;[ui]&lt;br /&gt;
remotecmd = /usr/home/geeklog2/hg/mercurial/hg&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to clone the repository like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;hg clone ssh://username@cvs.geeklog.net//cvsroot/geeklog/Geeklog-SoC geeklog&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &amp;quot;username&amp;quot; is your login name and the &amp;quot;geeklog&amp;quot; at the end of the command line is again simply a name for your local directory.&lt;br /&gt;
&lt;br /&gt;
Please note the slightly odd path syntax with the two slashes after &amp;lt;tt&amp;gt;cvs.geeklog.net&amp;lt;/tt&amp;gt; - those are required.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pushing back ==&lt;br /&gt;
&lt;br /&gt;
Being able to push changes back to the repository again requires an account on the server. You can either do&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;hg push ssh://username@cvs.geeklog.net//cvsroot/geeklog/Geeklog-SoC&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or, to make your life easier, set the &amp;lt;tt&amp;gt;default-push&amp;lt;/tt&amp;gt; repository in the &amp;lt;tt&amp;gt;.hg/hgrc&amp;lt;/tt&amp;gt; file of your local repository like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;default-push = ssh://username@cvs.geeklog.net//cvsroot/geeklog/Geeklog-SoC&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Again, in the ssh: URLs above, replace &amp;quot;username&amp;quot; with your login name)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Best practices ==&lt;br /&gt;
&lt;br /&gt;
Since we're all new to Mercurial, this is something we will have to establish as we go along. For starters, the [http://www.selenic.com/mercurial/wiki/ Mercurial Wiki] has a page on [http://www.selenic.com/mercurial/wiki/index.cgi/WorkingPractices Working Practices] that we may want to adopt.&lt;br /&gt;
&lt;br /&gt;
''(More tips and tricks to be added here)''&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Mwest</name></author>	</entry>

	</feed>