Using Mercurial
Introduction
These instructions will help you clone a copy of any of the Instant Messaging Freedom hosted Mercurial repositories and keep them up to date.
These instructions are just for cloning/updating the Instant Messaging Freedom realated repositories. If you're looking for documentation on contributing code, please see the Code Contributions page after you have successfully cloned the repository from this page.
Cloning
In Distributed Version Control, cloning is the act
of acquiring a source repository. All of the Instant Messaging Freedom related
repositories are hosted in Mercurial at
keep.imfreedom.org. To clone them you will be
using the command hg clone <URL>
. The specific URL can be looked up in the
table below depending on what you are trying to clone.
If you are trying to build Pidgin 3, you can just clone that repository and the build system will automatically clone the other repositories for you.
Repositories
Repository | Description |
---|---|
keep.imfreedom.org/birb/birb | A GLib based library of utilities we commonly use. |
keep.imfreedom.org/gplugin/gplugin/ | The plugin library used in Pidgin 3. |
keep.imfreedom.org/hasl/hasl/ | The Hassle-free Authentication and Security Layer library. |
keep.imfreedom.org/ibis/ibis/ | An IRCv3 intergation library. |
keep.imfreedom.org/libgnt/libgnt/ | The toolkit library used in Finch. |
keep.imfreedom.org/pidgin/pidgin/ | The main Pidgin repository. Which contains Pidgin and libpurple |
keep.imfreedom.org/traveristy/traversity/ | A client library to traverse NATs (network address translation) in an abstract way. |
keep.imfreedom.org/xeme/xeme/ | A high-level XMPP integration library. |
There are additional repositories under gplugin/, libgnt/, imfreedom/, and pidgin/ which contain other miscellaneous things.
Example
You can see an example clone of Birb below but all of the repositories will output a similar result.
$ hg clone https://keep.imfreedom.org/birb/birb
requesting all changes
adding changesets
adding manifests
adding file changes
added 19 changesets with 63 changes to 37 files
new changesets d9d91dc0265d:9d56e51eac1d
updating to branch default
37 files updated, 0 files merged, 0 files removed, 0 files unresolved
Keeping Your Clone Up To Date
If you are just tracking development and are not contributing, chances are you
still on the default branch. But let's make sure, and run
hg update default
. This will change to the default branch if you're
not currently on it or do nothing.
Now that you are on the default branch, you can
simply run hg pull --update
to pull in all new changes and
update your local copy. Please note, if you accidentally run
hg pull
, that is without the update, a subsequent
hg pull --update
will not update to the latest revisions as
this invocation of hg pull
did not find any new revisions. To
properly update in this scenario, you'll need to run
hg update
.
Below is an example of updating Birb when it's already up to date.
$ hg pull --update
pulling from https://keep.imfreedom.org/birb/birb
searching for changes
no changes found
At this point you can review the code, build it, patch it, etc.