summaryrefslogtreecommitdiff
path: root/doc/reference/libpurple/mercurial.md
blob: 70a5835b3e4addc92e7fe8218fd9ec1d14080a27 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
Title: Using Pidgin Mercurial
Slug: using-pidgin-mercurial

## Using Pidgin Mercurial

### Introduction

These instructions will help you clone a copy of any of the Pidgin
related [Mercurial](https://mercurial-scm.org)
repositories and keep them up to date.

These instructions are just for cloning/updating the Pidgin repositories.
If you're looking for documentation on contributing code, please see the
[Code Contributions](code_contributions.html)
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 Pidgin repositories are
hosted in Mercurial at
[keep.imfreedom.org](https://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 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

[https://keep.imfreedom.org/gplugin/gplugin/](https://keep.imfreedom.org/gplugin/gplugin/)
: The plugin library used in Pidgin 3.

[https://keep.imfreedom.org/libgnt/libgnt/](https://keep.imfreedom.org/libgnt/libgnt/)
: The toolkit library used in Finch.

[https://keep.imfreedom.org/pidgin/pidgin/](https://keep.imfreedom.org/pidgin/pidgin/)
: The main Pidgin repository that contains LibPurple, Pidgin, and Finch.

[https://keep.imfreedom.org/talkatu/talkatu/](https://keep.imfreedom.org/talkatu/talkatu/)
: The conversation widgets used in Pidgin 3.

You can see an example clone of Talkatu below but all of the repositories will
output a similar result.

```sh
$ 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
```

### Keeping Your Clone Up To Date

If you are just tracking Pidgin development and are not contributing, chances
are you are 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 Talkatu when it's already up to date.

```sh
$ hg pull --update
pulling from https://keep.imfreedom.org/talkatu/talkatu
searching for changes
no changes found
```

At this point you can review the code, build it, patch it, etc.