Kiln » TortoiseHg » TortoiseHg
Clone URL:  
Pushed to one repository · View In Graph Contained in 0.9, 0.9.1, and 0.9.1.1

merge with stable

Changeset 77420c798b6a

Parents c289629060a1

Parents 56b110c292e9

by Steve Borho

Changes to 10 files · Browse files at 77420c798b6a Showing diff from parent c289629060a1 56b110c292e9 Diff from another changeset...

 
128
129
130
 
 
131
132
133
 
128
129
130
131
132
133
134
135
@@ -128,6 +128,8 @@
 .. figure:: figures/logfilter.jpg   :alt: Revision filter dialog   + Log Filtering Dialog +  File Context Menus  ------------------  
 
10
11
12
 
 
13
14
15
 
49
50
51
52
 
 
 
10
11
12
13
14
15
16
17
 
51
52
53
 
 
54
@@ -10,6 +10,8 @@
   .. figure:: figures/clone.png   :alt: Clone dialog + + Clone Dialog    :guilabel:`Source Path`   It is the path (or URL) of the repository that will be cloned. Use the :guilabel:`Browse...` to @@ -49,4 +51,4 @@
   where [SOURCE] and [DEST] are, the paths of source repository and destination folder.   -.. vim: noet ts=4 \ No newline at end of file
+.. vim: noet ts=4
 
15
16
17
18
 
19
20
21
 
15
16
17
 
18
19
20
21
@@ -15,7 +15,7 @@
 .. figure:: figures/search.png   :alt: Search dialog   - Search dialog + Search tabs    The search tab is used to search (*grep*) through your entire revision  history for keywords, variable names, functions, etc...
 
39
40
41
42
 
43
44
45
 
39
40
41
 
42
43
44
45
@@ -39,7 +39,7 @@
  Taskbar Options Dialog    Release 0.8.1 introduced the ability to selectively disable overlay -icons in specific repositories. This can be done be editing the +icons in specific repositories. This can be done by editing the  :file:`.hg\\thgstatus` file inside the repository and replacing it's  contents with a single line containing::  
 
7
8
9
 
 
10
11
12
 
7
8
9
10
11
12
13
14
@@ -7,6 +7,8 @@
 .. figure:: figures/guess.jpg   :alt: Rename guessing dialog   + Rename Guessing Dialog +  This dialog is used to find renames, moves, and/or copies that were done  without Mercurial's knowledge. The dialog can be launched from the  shell context menu, or from the status or commit tools via the context
 
13
14
15
 
 
16
17
18
 
13
14
15
16
17
18
19
20
@@ -13,6 +13,8 @@
 .. figure:: figures/ignore.jpg   :alt: Ignore filter dialog   + Ignore Filter Dialog +  From command line  -----------------  
 
12
13
14
 
 
15
16
17
 
26
27
28
29
 
30
31
32
33
 
34
35
36
 
12
13
14
15
16
17
18
19
 
28
29
30
 
31
32
33
34
 
35
36
37
38
@@ -12,6 +12,8 @@
 .. figure:: figures/init.png   :alt: Init dialog   + Repository Init Dialog +  :guilabel:`Destination`   Is the directory where the repository will be created. It is   always filled with the current directory, so if you launch the @@ -26,11 +28,11 @@
   Creating a new repository means create a subdirectory called :file:`.hg`.  In this subdirectory Mercurial keeps all versioning information. - +  .. warning::   Never touch the files in :file:`.hg` directory, otherwise a repository   corruption can happen. - +  From command line  -----------------  
 
29
30
31
 
 
 
 
 
 
 
 
32
33
34
35
36
37
38
39
40
 
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
 
 
44
45
46
@@ -29,12 +29,18 @@
   :doc:`quick` is a quick tutorial on how to start with TortoiseHg.   +:doc:`daily` is the main chapter, it describes the frequently used +components of TortoiseHg. + +:doc:`settings` describes how to configure TortoiseHg. + +:doc:`recovery` describes the the recovery operations to do on +a project. +  :doc:`faq` has a list of common questions and their answers.    :doc:`debugging` describes how to debug any problems that you find.   -The remaining chapters describe the components that make up TortoiseHg. -  TortoiseHg is free!  ===================  
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
 
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
 
 
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
 
 
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
 
 
240
241
242
243
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
 ******************************  A quick tour for the impatient  ******************************    .. module:: tour   :synopsis: A Gentle Introduction to Using TortoiseHg on Windows    Mercurial supports many different  `collaboration models <http://hgbook.red-bean.com/read/collaborating-with-other-people.html>`_.  This chapter describes just one of those models: a single central repository.  The central repository model does not scale as well as other models, but  it is the most familiar to those coming from other revision tools and  thus is the most common approach people start with.    To get started, suppose you volunteer to create the central repository.  There are ways to `convert <http://mercurial.selenic.com/wiki/RepositoryConversion>`_  non-Mercurial repositories into Mercurial repositories, but for this  example lets assume we're starting from scratch.    The rest of this tutorial assumes you already have TortoiseHg properly  installed, and you have your project folder open in your file browser.      Configuring TortoiseHg  ======================    First you need to make sure that you are correctly identified in  TortoiseHg. You do this by adjusting the global settings of TortoiseHg.  Right click in your source folder and select  :menuselection:`TortoiseHg --> Global Settings`    .. figure:: figures/cmenu-nofiles.jpg   :alt: Context Menu   + Context menu with no files selected +  You must then select the :guilabel:`Commit` tab and enter a name in the  :guilabel:`Username` field.    .. note::   If you forget to configure your username TortoiseHg will ask you to   enter one when you *commit*, the only time the name is actually   required.    .. note::   There are no hard rules on how to format your user name, the field   is free form, but the following convention is commonly used::     FullName <email>     for example ::     Donald Duck <donaldduck@example.net>     The email address is stripped when viewing history in the changelog   viewer, and the built-in web server obfuscates email addresses to   prevent SPAM.      Initialize the repository  =========================    Create the initial repository on your local machine by using the  :guilabel:`Create Repository Here` shell menu option, or in a command  shell within the folder, type :command:`hgtk init`. You only need to do  this in once in the root folder of your project.    .. figure:: figures/init.png   :alt: Init dialog   + Repository Init Dialog +  We suggest you keep :guilabel:`Add special files (.hgignore, ...)`  checked, and do not check  :guilabel:`Make repo compatible with Mercurial 1.0`  unless you have a strong reason to do so.    After pressing :guilabel:`Create`, Mercurial creates a subdirectory in  your project folder named :file:`.hg`. This is where Mercurial keeps all  its version data. It is called the *repository* or *store*, while the  directory containing the source files is called the *working directory*.  You never need to specify the :file:`.hg` directory when running  commands, you only need to specify the working directory root. It is  mentioned here just so you better understand how Mercurial works.    .. warning::   It is dangerous to manually edit the files in :file:`.hg` directory,   repository corruption can occur. :file:`.hg/hgrc` is perhaps the   only exception to this rule.    Add files  =========    Now it's time to tell Mercurial which files must be tracked and which  files must be ignored. There are a lot of way to do this:    1. To add files, select them in explorer and then right click and select   :menuselection:`TortoiseHg --> Add Files` in the context menu. In   this way the adding action happens immediately and no TortoiseHg   dialogs appear, but you will see the overlay icons change to indicate   added files.    2. Or open the status tool (:menuselection:`TortoiseHg --> View File Status`   or :command:`hgtk status` from the command line). Check the files you   want to add and then press the :guilabel:`Add` button. From the   status tool you can launch the ignore filter tool from the context   menu of a unknown file (the menu option is named :guilabel:`ignore`)    3. Or skip adding new files as a separate step and have the commit tool   add them implicitly. The commit tool is very similar to the status   tool and allows you to do all of the same tasks. In this tool you   can add and commit an untracked file by just checking the file and   pressing :guilabel:`Commit`.    4. To ignore files, open the ignore filter dialog:   :menuselection:`TortoiseHg --> Edit Ignore Filter`   or from command line :command:`hgtk hgignore`. Choose a file from   the list or manually type in a *Glob* or *Regular expression*   filter and then press :guilabel:`Add`. Changes to the ignore filter   take effect immediately.    .. note::   The :file:`.hgignore` file, contained in the working directory root,   is typically tracked (checked in).    .. note::   It is good practice to not have many *unknown* files in your working   directory, as it makes it too easy to forget to add vital new files.   So it is recommended that you keep your :file:`.hgignore`   file up to date.      Commit  ======    Commit your local repository by right-clicking anywhere in the folder,  or on the folder itself, and then selecting  :guilabel:`HG Commit ...`, or from command line type :command:`hgtk commit`.  Write a commit message, select the files you wish to commit, then press  :guilabel:`Commit`. If, after the commit, you realize that something was wrong  with the message or the selected files, you can cancel the last commit  using the :guilabel:`Undo` button. Your previous commit message will be  in the message history drop-down, so you do not have to type it in again  from scratch.    .. note::   You lose the ability to easily undo the last commit when you close   the commit tool.    .. figure:: figures/commit.png   :alt: Commit dialog   + Commit Tool    Share the repository  ====================    Now you are ready to share your work. You do this by making a copy of  your repository in a public place that everyone in your group can  access. Mercurial calls this *cloning your repository*. To clone your  repository to a common area, such as a shared drive or web site which  will be the merge point for the team. From the shared drive select  :menuselection:`TortoiseHg --> Clone a Repository`, or  :command:`hgtk clone` from command line.    .. figure:: figures/share.png   :alt: Clone dialog   + Clone Dialog +  When you create a clone for the purposes of generating a *central  repository* there is no reason for that clone to have a working  directory. Checking  :guilabel:`do not update the new working directory` will prevent  Mercurial from checking out a working copy of the repository in the  central repository clone. It will only have the :file:`.hg` directory,  which stores the entire revision history of the project.    Other team members can then work from this clone.      Fetching from the group repository  ==================================    You want to start collaborating with your team. They tell you something  like *fetch the repository from x*. What does that mean? It means that  you want to make a copy of the repository located at x on your local  machine. Mercurial calls this cloning and TortiseHg has a dialog  for it. Right click in the directory where you want your copy and select  :menuselection:`TortoiseHg --> Clone a Repository`, or  :command:`hgtk clone` from command line.    .. figure:: figures/clone.png   :alt: Clone dialog   + Clone Dialog +  This time you do want to update the working directory because you want  to work on the project, uncheck  :guilabel:`do not update the new working directory` so Mercurial updates  the working directory with the *tip* revision in your new clone.      Working with your repository  ============================    Suppose you've introduced some changes. It is easy to see that there are  a couple of directories with changes pending. You can traverse the  directories to find specific changes and commit them from Explorer. A  quicker way is to use the commit tool:    .. {{images/image001.png}}    The commit tool gives you a way to see differences or you can use your  visual difference tool (kdiff). Mercurial allows you to commit many  changes before you decide to synchronize (share changes) with the group  repository.      When you're ready to publish your changes, you    1. Commit your changes to your local repository, if you haven't already   (see above).  2. Pull changes from the group repository into your repository,   :menuselection:`TortoiseHg --> Synchronize` or   :command:`hgtk synch`, choose the path to the group repository   and then :guilabel:`Pull`.  3. If some changesets were pulled, merge those changes with your local   changes and then commit the merge into your local repository. From   the changelog viewer (:menuselection:`TortoiseHg --> View Changelog`   or :command:`hgtk log`) open the context menu over the changeset   which you want to merge and select :guilabel:`merge with`.   Finally, in the merge dialog, press :guilabel:`Merge` and then   :guilabel:`Commit`.  4. Ensure your merged work still builds and passes your extensive test suite.  5. Push your changes to the group repository,   :menuselection:`TortoiseHg --> Synchronize` or :command:`hgtk synch`,   choose the path to group repository and then :guilabel:`Push`.    Which may sound complicated, but most of the time it is just pushing the  buttons in the synchronize tool.    .. note::   Merges can be safely restarted if necessary.    .. figure:: figures/synchronize.png   :alt: Synchronize dialog   + Synchronize Dialog +  Mercurial makes collaboration easy, fast, and productive.  Learn more at Mercurial's `wiki <http://mercurial.selenic.com/wiki/>`_.    .. vim: noet ts=4
 
8
9
10
 
 
11
12
13
 
8
9
10
11
12
13
14
15
@@ -8,6 +8,8 @@
 .. figure:: figures/recover.png   :alt: Recovery dialog   + Recovery Dialog +  The toolbar buttons equate to a Mercurial command    :guilabel:`clean`