doc/reference/libpurple/mercurial.xml

changeset 40716
7a4e48594a24
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/reference/libpurple/mercurial.xml	Mon Jan 18 23:07:50 2021 -0600
@@ -0,0 +1,144 @@
+<?xml version='1.0' encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+]>
+<chapter id="chapter-using-mercurial">
+  <title>Using Pidgin Mercurial</title>
+
+  <sect2 id="introduction">
+    <title>Introduction</title>
+
+    <para>
+      These instructions will help you clone a copy of any of the Pidgin
+      related <ulink url="https://mercurial-scm.org">Mercurial</ulink>
+      repositories and keep them up to date.
+    </para>
+
+    <note>
+      These instructions are just for cloning/updating the Pidgin repositories.
+      If you're looking for documentation on contributing code, please see the
+      <link linkend="chapter-code-contributions">Code Contributions</link>
+      page after you have successfully cloned the repository from this page.
+    </note>
+  </sect2>
+
+  <sect2 id="cloning">
+    <title>Cloning</title>
+
+    <para>
+      In Distributed Version Control, <emphasis>cloning</emphasis> is the act
+      of acquiring a source repository. All of the Pidgin repositories are
+      hosted in Mercurial at
+      <ulink url="https://keep.imfreedom.org/">keep.imfreedom.org</ulink>. To
+      clone them you will be using the command
+      <code>hg clone &lt;URL&gt;</code>. The specific URL can be looked up in
+      the table below depending what you are trying to clone.
+    </para>
+
+    <note>
+      If you are trying build Pidgin 3, you can just clone that repository and
+      the build system will automatically clone the other repositories for you.
+    </note>
+
+    <table label="Repository URLs">
+      <tgroup cols="3">
+        <thead>
+          <row>
+            <entry>Name</entry>
+            <entry>URL</entry>
+            <entry>Description</entry>
+          </row>
+        </thead>
+        <tbody>
+          <row>
+            <entry>GPlugin</entry>
+            <entry>
+              <ulink url="https://keep.imfreedom.org/gplugin/gplugin"></ulink>
+            </entry>
+            <entry>The plugin library used in Pidgin 3.</entry>
+          </row>
+          <row>
+            <entry>LibGNT</entry>
+            <entry>
+              <ulink url="https://keep.imfreedom.org/libgnt/libgnt"></ulink>
+            </entry>
+            <entry>The toolkit library used in Finch.</entry>
+          </row>
+          <row>
+            <entry>Pidgin</entry>
+            <entry>
+              <ulink url="https://keep.imfreedom.org/pidgin/pidgin"></ulink>
+            </entry>
+            <entry>
+              The main pidgin repository that contains LibPurple, Pidgin, and
+              Finch.
+            </entry>
+          </row>
+          <row>
+            <entry>Talkatu</entry>
+            <entry>
+              <ulink url="https://keep.imfreedom.org/talkatu/talkatu"></ulink>
+            </entry>
+            <entry>The conversation widgets used in Pidgin 3.</entry>
+          </row>
+        </tbody>
+      </tgroup>
+    </table>
+
+    <para>
+      You can see an example clone of Talkatu below but all of the repositories
+      will output a similar result.
+    </para>
+
+    <programlisting language="screen">
+$ hg clone https://keep.imfreedom.org/talkatu/talkatu
+destination directory: talkatu
+requesting all changes
+adding changesets
+adding manifests
+adding file changes
+added 348 changesets with 1074 changes to 268 files
+new changesets 0feed1461a4a:f0fda4aace2d
+updating to branch default
+109 files updated, 0 files merged, 0 files removed, 0 files unresolved
+</programlisting>
+  </sect2>
+
+  <sect2 id="updating">
+    <title>Keeping Your Clone Up to Date</title>
+
+    <para>
+      If you are just tracking Pidgin development and are not contributing,
+      chances are you are still on the <emphasis>default</emphasis> branch. But
+      let's make sure, and run <code>hg update default</code>.  This will change
+      to the <emphasis>default</emphasis> branch if you're not currently on it
+      or do nothing.
+    </para>
+
+    <para>
+      Now that you are on the <emphasis>default</emphasis> branch, you can
+      simply run <code>hg pull --update</code> to pull in all new changes and
+      update your local copy. Please note, if you accidentally run
+      <code>hg pull</code>, that is without the update, a subsequent
+      <code>hg pull --update</code> will not update to the latest revisions as
+      this invocation of <code>hg pull</code> did not find any new revisions. To
+      properly update in this scenario, you'll need to run
+      <code>hg update</code>.
+    </para>
+
+    <para>
+      Below is an example of updating Talkatu when it's already up to date.
+    </para>
+
+    <programlisting>
+$ hg pull --update
+pulling from https://keep.imfreedom.org/talkatu/talkatu
+searching for changes
+no changes found
+</programlisting>
+
+    <para>
+      At this point you can review the code, build it, patch it, etc.
+    </para>
+  </sect2>
+</chapter>

mercurial