aboutsummaryrefslogtreecommitdiff
path: root/files/zh-cn/mercurial_faq/index.html
blob: aac59c6c7bc211f14350fd53f532441868526d0a (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
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
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
---
title: 使用 Mercurial
slug: Mercurial_FAQ
translation_of: Mercurial/Using_Mercurial
---
<h2 id="How_do_I_install_Mercurial.3F" name="How_do_I_install_Mercurial.3F">安装和配置 Mercurial</h2>
<p>See <a href="/en-US/docs/Installing_Mercurial" title="/en-US/docs/Installing_Mercurial">Installing Mercurial</a>. Even if you already have Mercurial installed, make sure</p>
<ul>
 <li>you're running the most recent version, and</li>
 <li>it's configured appropriately (see the instructions on the installation page).</li>
</ul>
<h2 id="How_can_I..." name="How_can_I...">我应如何...</h2>
<h3 id="How_can_I_check_out_Mozilla.3F" name="How_can_I_check_out_Mozilla.3F">我怎么才能一窥 Mozilla?</h3>
<p>To clone the main development repository for Gecko and Firefox use:</p>
<pre>hg clone https://hg.mozilla.org/mozilla-central/ src
cd src</pre>
<p>For the list of other repositories see <a href="/En/Developer_Guide/Source_Code/Mercurial" title="https://developer.mozilla.org/En/Developer_Guide/Source_Code/Mercurial">Getting Mozilla Source Code Using Mercurial</a>.</p>
<h3 id="How_can_I_edit_and_update_files.3F" name="How_can_I_edit_and_update_files.3F">如何编辑和更新文件?</h3>
<p>You can randomly edit files in the working directory, just like with CVS.</p>
<p>The common command to update a tree is:</p>
<pre class="eval">hg pull -u
</pre>
<p>It is not possible to update only one directory; you have to update the entire tree.</p>
<h3 id="How_can_I_diff_and_patch_files.3F" name="How_can_I_diff_and_patch_files.3F">如何才能 diff 和 patch 文件?</h3>
<ul>
 <li><code>hg diff</code> diffs the entire tree by default. Use <code>hg diff &lt;dir&gt;</code> to diff only the given directory. Don't forget to <code>hg add</code> any new files you are adding before generating the patch.</li>
 <li>If you are changing binary files or renaming files you may want to use git style patches with <code>hg diff -g</code> to retain that sort of information in the patch.</li>
 <li>When applying a patch generated by Mercurial, use <code>patch -p1</code>, not <code>patch -p0</code>. (This is due to a quirk of Mercurial diff output—it refers to fictional "a" and "b" directories. Don't ask.).</li>
 <li>If you have a git style patch with renames and/or binary changes you can use <code>hg import --no-commit</code> to apply the patch to your tree or use <code>hg qimport</code> to import the patch to mq.</li>
 <li>There's <a class="link-https" href="https://hg.mozilla.org/users/robarnold_cmu.edu/qimportbz" title="https://hg.mozilla.org/users/robarnold_cmu.edu/qimportbz">hg qimportbz extension</a> (<a class="external" href="http://robarnold.org/2009/06/02/hg-qimport-my-bugzilla-patch-redux.html" title="http://robarnold.org/2009/06/02/hg-qimport-my-bugzilla-patch-redux.html">blog post</a>) that lets you import patches directly from bugzilla to mq.   (Since that blog post was written, the command syntax has changed.  It is now: <code>hg qimport <a class="external" rel="freelink">bz://1234567</a></code>)</li>
 <li>If you have it, <code>git-apply</code> can also be used to apply patches. It can handle most forms of Mercurial diff output, but it won't automatically tell Mercurial about added, copied, removed or renamed files, and it cannot reverse binary changes (except to remove added binary files).</li>
</ul>
<p>Preferred diff options are <code>hg diff -p -U 8</code> which includes 8 lines of context and shows the relevant function for the block. You can make these options default in the <a class="internal" href="/en/Mercurial_FAQ#Configuration" title="en/Mercurial FAQ#Configuration">Mercurial configuration file</a>.</p>
<h3 id="How_can_I_generate_a_patch_for_somebody_else_to_check-in_for_me.3F" name="How_can_I_generate_a_patch_for_somebody_else_to_check-in_for_me.3F">How can I generate a patch for somebody else to check-in for me?</h3>
<p>If you don't have commit access yourself, you need to attach your patches to a bug for somebody to check in.  In order to do that, you should make sure that your patch has the following conditions:</p>
<ol>
 <li>It has a correctly formatted author name.</li>
 <li>It has a correctly formatted commit message.</li>
 <li>It is generated in git style.</li>
</ol>
<p>Here is a very easy way to get this setup working using <a class="external" href="http://www.selenic.com/mercurial/wiki/index.cgi/MqExtension" style="">mq</a>.  First, you need to edit your <code>~/.hgrc</code> file.  You only need to do this once.  Your hgrc file should have the following contents at least:</p>
<pre>[ui]
username = John Smith &lt;john@smith.com&gt;

[defaults]
qnew = -Ue

[extensions]
mq =

[diff]
git = 1
showfunc = 1
unified = 8
</pre>
<p>Now, in order to create a patch, you should enter:</p>
<pre>hg qnew name.patch
</pre>
<p>which opens up your favorite editor so that you can enter a good commit message.  A good sample commit message looks like: "Bug 123456 - Change this thing to work better by doing something; r=reviewers".  You don't need to enter the final commit message (for example, if you haven't received reviews yet).  You can edit the commit message of the current <code>mq</code> patch at any time using <code>hg qref -e</code>.</p>
<p>The <code>~/.hgrc</code> default <code>-U</code> argument for the qnew command add the author information to the patch (using a <code>From:</code> header), and the default <code>-e</code> argument opens up the editor for you to type in a commit message.</p>
<p>Now, after editing some source code, you can use <code>hg qref</code> to update your patch file.</p>
<p>To attach the patch to the bug, you can use the file named <code>name.patch</code> located in your <code>&lt;repository&gt;/.hg/patches</code> directory directly.</p>
<h4 id="I'm_all_used_to_git.2C_but_how_can_I_provide_Mercurial-ready_patches_.3F">I'm all used to git, but how can I provide Mercurial-ready patches ?</h4>
<p>Please refer to <a href="https://github.com/jlebar/moz-git-tools" title="/en-US/docs/">https://github.com/jlebar/moz-git-tools</a> and especially the <span class="css-truncate css-truncate-target"><span class="css-truncate css-truncate-target"><a class="js-directory-link" href="https://github.com/jlebar/moz-git-tools/blob/master/git-patch-to-hg-patch" id="79e491ce20d24e9ce5c937a0ad1630ac-8cd9f53b28ddbecdd7d533a8302517df926e72d4" title="git-patch-to-hg-patch">git-patch-to-hg-patch</a> tool, that provides an easy way to convert from git-generated patch to Mercurial-ready ones.</span></span></p>
<p>Usage is pretty straight-forward:</p>
<pre>$ git-patch-to-hg-patch YourGitGeneratedPatch.patch</pre>
<h3 id="How_do_I_check_stuff_in.3F" name="How_do_I_check_stuff_in.3F">How do I check stuff in?</h3>
<h4 id="Required_configuration" name="Required_configuration">Required configuration</h4>
<p>Before committing any changes, add these lines to your <code>~/.hgrc</code> file:</p>
<pre class="eval">[ui]
username = Your Name &lt;<a class="link-mailto" href="mailto:your.email@example.com" rel="freelink">your.email@example.com</a>&gt;
</pre>
<p>To push to <a href="/en/mozilla-central" title="en/mozilla-central">mozilla-central</a> and other mozilla-hosted repositories you have to have committer access, and you must edit the file <code><em>(your-local-hg-root)</em>/.hg/hgrc</code> (note, this is <strong>NOT</strong> your <code>~/.hgrc</code>) to add this line:</p>
<pre class="eval">[paths]
default = <span class="nowiki">http://hg.mozilla.org/mozilla-central/</span>
<strong>default-push = <span class="nowiki">ssh://hg.mozilla.org/mozilla-central/</span></strong>
</pre>
<p>You also have to tell ssh what username to use when connecting to hg.mozilla.org. This should be the username associated with your Mozilla LDAP account. You can do this either by making the default-push path above more complicated (<code><span class="link-mailto">user@host.name</span>@hg.mozilla.org</code>) or by adding lines to your ~/.ssh/config :</p>
<pre class="eval">Host hg.mozilla.org
User <a class="link-mailto" href="mailto:user@host.domain" rel="freelink">user@host.domain</a>
</pre>
<h4 id="Check_what_you.27re_going_to_commit" name="Check_what_you.27re_going_to_commit">Check what you're going to commit</h4>
<p>Next, to check if you're really committing what you want to commit (especially important when doing merges or other trickier commits):</p>
<pre class="eval">hg status
hg diff
</pre>
<p><code>status</code> shows the files that have changed in your working directory compared to what's in your repository (the parent revisions, which you can see by using <code>hg parents</code>). <code>hg diff</code> shows the actual changes in those files, as unified diffs. You can add a -U8 option to see more context.</p>
<h4 id="Commit_to_the_local_repository" name="Commit_to_the_local_repository">Commit to the local repository</h4>
<p>As the next step, you will commit your changes <em>to your local repository</em>:</p>
<pre class="eval">hg commit
</pre>
<p>This commits every change reported by <code>hg status</code>. You can limit the commit to specific files or directories using <code>hg commit <em>filenames</em></code>. You can commit on behalf of someone else using <code>hg commit -u "Someone Else &lt;<a class="link-mailto" href="mailto:someone@example.com" rel="freelink">someone@example.com</a>&gt;"</code>. See <code>hg help commit</code> for more details.</p>
<p>To add new files to the repository and to remove obsolete ones use</p>
<pre class="eval">hg addremove
</pre>
<h4 id="Check_what_you.27re_going_to_push" name="Check_what_you.27re_going_to_push">Check what you're going to push</h4>
<p>Before you push, you likely want to check what changesets will be pushed. You can do this using the <code>outgoing</code> command:</p>
<pre class="eval">hg outgoing
</pre>
<p>This will give you a list of changesets that will be pushed to the default remote repository. Add a repository argument to see outgoing changesets for another repository.</p>
<h4 id="Push_to_the_central_repository" name="Push_to_the_central_repository">Push to the central repository</h4>
<p>To push those changes upstream to the central repository:</p>
<pre class="eval">hg push
</pre>
<h4 id="Preventing_accidental_pushes" name="Preventing_accidental_pushes">Preventing accidental pushes</h4>
<p>Since the <code>qpush</code> command can easily be mistyped as <code>push</code>, it can cause an accidental push when applying an MQ patch was intended instead. To prevent accidental pushes you can add the following hook in your <code>~/.hgrc</code> file:</p>
<pre class="eval">[hooks]
pre-push = printf 'Are you sure you want to push to remote? (y/n): '; read R; [ x"$R" == "xy" ]
</pre>
<p>This will cause the <code>push</code> command to request confirmation each time it is invoked and abort if the user types anything but <strong>y</strong>.</p>
<h3 id="How_do_I_deal_with_.22abort:_push_creates_new_remote_heads.21.22.3F" name="How_do_I_deal_with_.22abort:_push_creates_new_remote_heads.21.22.3F">How do I deal with "abort: push creates new remote heads!"?</h3>
<p>Whatever you do, don't do 'push -f' like the message suggests. (It'll probably fail anyway, but don't try it.)</p>
<p>Someone pushed new commits upstream since your last pull. You then committed your patch locally and are trying to push that commit upstream; that upstream has a different tip commit that you started from.</p>
<pre>  <strong>YOU</strong> ---&gt; o  9123b7791b52 - Kaitlin Jones <span class="plain">&lt;kaitlin@example.net&gt;</span> - Bug 123456 - Trebled fromps (r=gavin)
           |
<strong>TRUNK</strong> ---&gt; | o  306726089e22 - Robert Longson <span class="plain">&lt;longsonr@example.com&gt;</span> - Bug 437448. New-style nsSVGString
           | |
           | o  ba9b9a7c52a5 - Robert Longson <span class="plain">&lt;longsonr@example.com&gt;</span> - Bug 437448. New-style nsSVGString
           |/
           o  f8f4360bf155 - Robert O'Callahan <span class="plain">&lt;robert@example.org&gt;</span> - Bug 421436. Remove hack that gives</pre>
<p>There are three things you can do. In all cases, you are strongly encouraged to take steps to back up your patch (perhaps by obtaining a diff: hg log -p -r 12345 to show the patch for rev 12345).</p>
<h4 id="Using_hg_merge">Using <code>hg merge</code></h4>
<p>Run <code>hg pull</code>, then <code>hg merge</code>. If there are any merge conflicts, hg will open a merge program to try to help you resolve them manually. (If you fail to make sense of the merge tool, that's OK.  Just close it; hg will detect that the conflicts weren't all resolved and spit out some <code>hg update -C</code> commands that you can use to undo and then retry the busted merge.)</p>
<p>Even if there were no conflicts, you have to commit the merge: <code>hg commit -m "Merge bug 123456"</code>.</p>
<pre>  <strong>YOU</strong> ---&gt; <span style="background-color: rgb(255, 255, 0);">o</span> 1fe7659c29a9 - Kaitlin Jones <span class="plain">&lt;kaitlin@example.net&gt;</span> - Merge bug 123456.
           <span style="background-color: rgb(255, 255, 0);">|\</span>
           o <span style="background-color: rgb(255, 255, 0);">|</span> 9123b7791b52 - Kaitlin Jones <span class="plain">&lt;kaitlin@example.net&gt;</span> - Bug 123456 - Trebled fromps (r=gavin)
           | <span style="background-color: rgb(255, 255, 0);">|</span>
<strong>TRUNK</strong> ---&gt; | o  306726089e22 - Robert Longson <span class="plain">&lt;longsonr@example.com&gt;</span> - Bug 437448. New-style nsSVGString
           | |
           | o  ba9b9a7c52a5 - Robert Longson <span class="plain">&lt;longsonr@example.com&gt;</span> - Bug 437448. New-style nsSVGString
           |/
           o  f8f4360bf155 - Robert O'Callahan <span class="plain">&lt;robert@example.org&gt;</span> - Bug 421436. Remove hack that gives</pre>
<p>Now you can <code>hg push</code> as normal.</p>
<p>This leaves a merge commit in the log, which some people find annoying, so it's usually better to avoid this solution.</p>
<p>If you decide to use this method, it is advantageous to enable the Mercurial <code>fetch</code> extension (by means of a <span style="background-color: #CCC;"><code>fetch =</code></span> line in the <span style="background-color: #CCC;"><code>[extensions]</code></span> section of your <code>&lt;repository&gt;/.hg/hgrc</code> or your <code>$HOME/.hgrc</code> file) so you can do the <code>pull + merge + commit</code> sequence in one step (assuming no merge conflicts) by using the <span style="background-color: #CCC;"><code>hg fetch</code></span> command.</p>
<h4 id="Using_Mercurial_queues">Using Mercurial queues</h4>
<p>A way to solve your problem without leaving a merge commit is to import your commit into <a class="external" href="http://www.selenic.com/mercurial/wiki/index.cgi/MqExtension" style="">mq</a> control, pop it off the queue, update, and then commit it again before pushing:</p>
<pre class="eval">% <strong>hg log -l 5</strong>
415[tip]   d1accb6ee840   2008-04-30 09:57 -0700   vladimir
  b=430873; fast path drawImage with a canvas as source
414   3a3ecbb4873e   2008-04-30 09:55 -0700   vladimir
  cvs sync
% <strong>hg qimport -r 415</strong>
<em>Turn the new commit you made into a MQ patch</em>
% <strong>hg qtop</strong>
415.diff
% <strong>hg qpop</strong>
Patch queue now empty
<em>Pop the MQ patch off the stack. At this point, the tip of your tree is also in the remote repository</em>
% <strong>hg pull -u</strong>
<em>... various pull/update messages ...</em>
% <strong>hg qpush</strong>
applying 415.diff
Now at: 415.diff
<em>Fix up conficts as necessary; if you fixed up any, run hg qrefresh first</em>
% <strong>hg incoming</strong>
comparing with <a class="external" href="ssh://hg.mozilla.org/mozilla-central/" rel="freelink">ssh://hg.mozilla.org/mozilla-central/</a>
searching for changes
no changes found
<em>Make sure	nobody pushed while you were merging. Otherwise, qpop, pull and qpush again</em>
% <strong>hg qfinish 415.diff</strong>
<em>Turn the MQ patch into a regular revision</em>
% <strong>hg log -l 5</strong>
<em>verify that the log looks good, with your commit on top</em>
% <strong>hg push</strong>
</pre>
<p>If you already use mq to manage your patches, then just make sure you pull/update right before committing and pushing your patch. If you have problems with the above, it's ok to just do a simple merge as described previously.</p>
<p>In this case, if there are merge conflicts, MQ will produce <code>.rej</code> files. Some people prefer this over being thrown into a merge program.</p>
<h4 id="Using_hg_rebase">Using <code>hg rebase</code></h4>
<p>(Requires Mercurial 1.1 or higher)</p>
<p>This is the simplest and easiest way to deal with the problem. You can rebase your local changesets (including mq patches) on top of the tip using the <a class="external" href="http://www.selenic.com/mercurial/wiki/index.cgi/RebaseExtension" title="http://www.selenic.com/mercurial/wiki/index.cgi/RebaseExtension">rebase extension</a>. To do this, simply enable the extension by adding this to the following section of your <code>.hgrc</code>:</p>
<pre class="eval">[extensions]
hgext.rebase =
</pre>
<p>Now, type <code>hg pull --rebase <span style="font-family: sans-serif;">to pull and rebase your local changesets at the same time.</span></code> More details and options can be found at the <a class="external" href="http://www.selenic.com/mercurial/wiki/index.cgi/RebaseProject" title="http://www.selenic.com/mercurial/wiki/index.cgi/RebaseProject">Mercurial wiki</a>.</p>
<p>If you have conflicting changes, you'll be thrown into your preferred merge tool.</p>
<div class="note">
 <strong>Note:</strong> As of Mercurial 1.1, rebasing (especially with mq patches) might lose rename data; this is a <a class="external" href="http://www.selenic.com/mercurial/bts/issue1423" title="http://www.selenic.com/mercurial/bts/issue1423">known bug</a> that has been fixed in Mercurial 1.3. </div>
<div class="note">
 <strong>Note:</strong> If you had done a normal <code>hg pull</code> without <code>--rebase</code> after your <code>hg commit</code>, you will have to first undo that by doing <code>hg rollback</code>. Only the very last action can be undone, so if you did anything else after the <code>hg pull</code>, you're out of luck.</div>
<div class="note">
 <strong>Note:</strong> If you have local changes, hg pull --rebase (just like hg merge) will refuse to work, so you'll have to revert your local changes first:</div>
<pre class="note">hg diff &gt; old.diff
hg revert .
hg pull --rebase
hg push
patch -p 1 -i old.diff
rm old.diff
</pre>
<h3 id="How_do_I_see_what_these_commands_will_do_before_I_do_them.3F" name="How_do_I_see_what_these_commands_will_do_before_I_do_them.3F"><span id="1224048115147S" style="display: none;"> </span>How do I see what these commands will do before I do them?</h3>
<p>If you want to see what <code>hg commit</code> will commit, run <code>hg diff</code> first.</p>
<p>If you want to see what <code>hg push</code> will push, run <code>hg outgoing</code> first.</p>
<p>If you want to see what <code>hg pull</code> will pull, run <code>hg incoming</code> first.</p>
<p>These pairs of commands all take similar arguments, for good reason. These are a good idea to use all the time when you're learning mercurial. And even once you're an expert, always doing outgoing before push is a good idea.</p>
<h3 id="How_can_I_customize_the_format_of_the_patches_Mercurial_creates.3F" name="How_can_I_customize_the_format_of_the_patches_Mercurial_creates.3F">How can I customize the format of the patches Mercurial creates?</h3>
<p>Edit your <code>~/.hgrc</code> file and add some lines like these:</p>
<pre class="eval">[defaults]
diff=-U 8 -p
qdiff=-U 8
#for Mercurial 1.1 use:
#qdiff=-U 8 -p</pre>
<pre class="eval">[diff]
git=true
</pre>
<p>The <code>{{ mediawiki.external('defaults') }}</code> section affects the default output of the <code>hg diff</code> and <code>hg qdiff</code> commands. The options behave the same as they would on the command line. Try <code>hg help diff</code> for more info.</p>
<p>The <code>{{ mediawiki.external('diff') }}</code> section affects all patches generated by Mercurial, even <code>hg export</code> and those generated for Mercurial's internal use. You need to be a lot more careful with this, but <code>git=true</code> is recommended. Without it, Mercurial cannot diff binary files and does not track the execute mode bit.  You may want to add <code>showfunc=true</code> here to get diffs that show the function being changed in each hunk, and you may want to add <code>unified=8</code> to make all diffs (including the internal ones <a class="external" href="http://www.selenic.com/mercurial/wiki/index.cgi/MqExtension" style="">mq</a> uses) have 8 lines of context. Note that this may increase the risk of mq patches failing to apply!</p>
<h3 id="How_do_I.C2.A0get_a_diff_-w.3F">How do I get a diff -w?</h3>
<p>There is a <a class="external" href="http://www.selenic.com/mercurial/bts/issue127" title="http://www.selenic.com/mercurial/bts/issue127">known issue</a> where <code>hg diff -w</code> doesn't work.</p>
<p>To get around this add the following to your <code>~/.hgrc</code> file, editing existing sections where applicable:</p>
<pre>[extensions]
hgext.extdiff =

[extdiff]
cmd.diffw = diff
opts.diffw = -w -r -N -p -U 8
</pre>
<p>You can, of course, add your other favourite diff options to <code>opts.diffw</code>. Once you've added this, you will now have a new hg command, <code>hg diffw</code>.</p>
<p>hg diffw -r -2 is the equivalent of hq qdiff -w for the topmost patch in the queue.</p>
<h3 id="How_do_I_generate_a_bundle.3F">How do I generate a bundle?</h3>
<p>Sometimes the tree will be under sheriff control, and they will specifically ask for a bundle.  If you don't have sufficient rights to push to mozilla-central, you might also generate bundles and attach them to bugs when you add checkin-needed to a bug after it has the necessary reviews and approval.</p>
<p>Creating a bundle is quite simple.  Once you have your changes all done, commit them to your local repository.  You can also commit more than one changeset.  Once you have everything committed, instead of pushing you'll run <code>hg bundle</code>:</p>
<pre>hg bundle outputfile.hg
</pre>
<p>By default, <code>hg bundle</code> will bundle everything that <code>hg outgoing</code> would display (and what you would push with <code>hg push</code>).  You can limit how far forward you want to bundle as well by specifying a revision with <code>-r</code>.  That will take all changes up until that revision.</p>
<h2 id="Backing_out_changes" name="Backing_out_changes">Backing out changes</h2>
<h3 id="Reverting_the_whole_tree_to_a_known-good_revision" name="Reverting_the_whole_tree_to_a_known-good_revision">Reverting the whole tree to a known-good revision</h3>
<p>It's easy, like using a sledgehammer is easy. But this is usually overkill.</p>
<pre class="eval">$ hg pull -u
$ <strong>hg revert --all -r a0193d83c208</strong>       <em># use your known-good revision id here</em>
$ hg commit                             <em># be kind, include the revision id in your commit message</em>
$ hg push
</pre>
<p>There's a more precise alternative:</p>
<h3 id="Backing_out_a_single_changeset" name="Backing_out_a_single_changeset">Backing out a single changeset</h3>
<p>Suppose changeset <code>f8f4360bf155</code> broke something.</p>
<pre class="eval">$ hg pull -u
$ <strong>hg backout f8f4360bf155</strong>               <em># use the revision id of the bad change here</em>
</pre>
<p>This creates and commits a new changeset that reverts all the changes in that revision.</p>
<p>If you see this message:</p>
<pre class="eval">the backout changeset is a new head - do not forget to merge
</pre>
<p>That means you need to merge, because your history now looks like this:</p>
<pre class="eval">  <strong>YOU</strong> ---&gt; o  9123b7791b52 - Kaitlin Jones &lt;<a class="link-mailto" href="mailto:kaitlin@example.net" rel="freelink">kaitlin@example.net</a>&gt; - Backed out changeset f8f4360bf155
           |
<strong>TRUNK</strong> ---&gt; | o  4e5bfb83643f - Simon Montagu &lt;<a class="link-mailto" href="mailto:smontagu@example.org" rel="freelink">smontagu@example.org</a>&gt; - imported patch 435856
           | |
           | o  6ee23de41631 - Phil Ringnalda &lt;<a class="link-mailto" href="mailto:philringnalda@example.com" rel="freelink">philringnalda@example.com</a>&gt; - Bug 438526 - Opening links w
           | |
           | o  22baa05d0e8a - Robert O'Callahan &lt;<a class="link-mailto" href="mailto:robert@example.org" rel="freelink">robert@example.org</a>&gt; - Remove DOM testcase from exclusi
           | |
           | o  c1aec2094f7e - Robert Longson &lt;<a class="link-mailto" href="mailto:longsonr@example.com" rel="freelink">longsonr@example.com</a>&gt; - Bug 437448. New-style nsSVGString
           | |
           | o  306726089e22 - Robert Longson &lt;<a class="link-mailto" href="mailto:longsonr@example.com" rel="freelink">longsonr@example.com</a>&gt; - Bug 437448. New-style nsSVGString
           | |
           | o  ba9b9a7c52a5 - Robert Longson &lt;<a class="link-mailto" href="mailto:longsonr@example.com" rel="freelink">longsonr@example.com</a>&gt; - Bug 437448. New-style nsSVGString
           |/
           o  f8f4360bf155 - Robert O'Callahan &lt;<a class="link-mailto" href="mailto:robert@example.org" rel="freelink">robert@example.org</a>&gt; - Bug 421436. Remove hack that gives
           |
           ⋮ (the past)
</pre>
<p>Your backout changeset is based on an old revision. It doesn't contain more recent changes.</p>
<p>Handle this like any other merge. If you've never done a merge before, get help. (It could be trivial or it could be a huge headache. There's plenty about merging elsewhere in this FAQ.)</p>
<h3 id="Backing_out_multiple_changesets_that_are_not_at_tip" name="Backing_out_multiple_changesets_that_are_not_at_tip">Backing out multiple changesets that are not at tip</h3>
<p>Your push of many changesets was bad, but you didn't find out until after a lot of subsequent activity. You want to back out the bad but keep the probably-good changesets from the subsequent activity.</p>
<p><strong>NB</strong>: this is hard, error-prone, and will likely b0rk your local tree if you mess up. If in doubt, ask someone else to do it for you.</p>
<p>What one would <em>really</em> like to do is</p>
<pre class="eval">hg backout --from-rev $FIRST_BAD --to-rev $LAST_BAD
</pre>
<p>or, if local hg could access pushlog</p>
<pre class="eval">hg backout --push $LAST_BAD
</pre>
<p>but, since hg can't do either (yet), we're stuck. What we'll do instead is travel back in hg-time to the last bad cset, revert all changes between last-bad and last-good, then merge that reversion to the current tip. Your tree might look like</p>
<pre class="eval"> <strong>MERGE_TO</strong> ---&gt; @  c6abfc89215a - Chris Pearce &lt;<a class="link-mailto" href="mailto:chris@pearce.org.nz" rel="freelink">chris@pearce.org.nz</a>&gt; - Bug 485288 - Replace all usage of video  autobuffer attribute with preload=auto. a=test-fix
               |
               o  d6e8fddeb95b - Chris Pearce &lt;<a class="link-mailto" href="mailto:chris@pearce.org.nz" rel="freelink">chris@pearce.org.nz</a>&gt; - Bug 548523 - Disable test_preload_actions.html case 9 until bug 568402 is fixed. a=test-fix
               |
               o  571d2664ead0 - Chris Pearce &lt;<a class="link-mailto" href="mailto:chris@pearce.org.nz" rel="freelink">chris@pearce.org.nz</a>&gt; - Bug 548523 - Don't show throbber on video controls if we're not loading a resource. r=dolske a=blocking2.0
               |
               o  3f7dfabab5e4 - Rich Dougherty &lt;<a class="link-mailto" href="mailto:rich@rd.gen.nz" rel="freelink">rich@rd.gen.nz</a>&gt;, Chris Pearce &lt;<a class="link-mailto" href="mailto:chris@pearce.org.nz" rel="freelink">chris@pearce.org.nz</a>&gt; - Bug 548523 - Replace HTMLMediaElement.autobuffer attribute with 'preload'. r=roc a=blocking2.0
               |
               o  d7d9cf4ab76a - Chris Pearce &lt;<a class="link-mailto" href="mailto:chris@pearce.org.nz" rel="freelink">chris@pearce.org.nz</a>&gt; - Bug 519897 - Supported indexed Ogg files. r=doublec
               |
               o    2a0e5811ece9 - Chris Pearce &lt;<a class="link-mailto" href="mailto:chris@pearce.org.nz" rel="freelink">chris@pearce.org.nz</a>&gt; - Commit merge of backout of 66dcf25705f9. a=backout
               |\
               | o  958a30df30dd - Chris Pearce &lt;<a class="link-mailto" href="mailto:chris@pearce.org.nz" rel="freelink">chris@pearce.org.nz</a>&gt; - Backed out changeset 66dcf25705f9
               | |
               o |  6eead86e13dd - Michael Wu &lt;<a class="link-mailto" href="mailto:mwu@mozilla.com" rel="freelink">mwu@mozilla.com</a>&gt; - Bug 556644 - Yet another removed-files.in update, r=rs a=blocking-beta5
               | |
               o |  69c6ce104f45 - Chris Jones &lt;<a class="link-mailto" href="mailto:jones.chris.g@gmail.com" rel="freelink">jones.chris.g@gmail.com</a>&gt; - Bug 588216: Avoid race between IO-thread loop-&gt;PostTask() and main-thread loop-&gt;SetNestableTasksAllowed() that led to Tasks being ignored. r=bent
               | |
               o |  73899b33ca4b - Ben Turner &lt;<a class="link-mailto" href="mailto:bent.mozilla@gmail.com" rel="freelink">bent.mozilla@gmail.com</a>&gt; - Bug 576716 - 'Crash [@ TypedArrayTemplate&lt;int&gt;::init] or [@ TypedArrayTemplate&lt;int&gt;::create]'. Adding a test, r=vlad a=blocker
               | |
               o |  3bd62d459019 - Mark Banner &lt;<a class="link-mailto" href="mailto:bugzilla@standard8.plus.com" rel="freelink">bugzilla@standard8.plus.com</a>&gt; - Follow up to bug 587984 bustage fix for l10n repacks. r=Pike,ted,a=bustage-fix
               | |
               o |  e1ca9091e5a6 - Benjamin Stover &lt;<a class="link-mailto" href="mailto:webapps@stechz.com" rel="freelink">webapps@stechz.com</a>&gt; - Bug 575731: Make test more stable in the face of various themes. r,a=sicking
               | |
               o |  bb200e1f52b4 - Jonas Sicking &lt;<a class="link-mailto" href="mailto:jonas@sicking.cc" rel="freelink">jonas@sicking.cc</a>&gt; - Bug 550959: Require version 2.5 of python. r=ted a=sicking
               | |
               o |  992491c618de - Zack Weinberg &lt;<a class="link-mailto" href="mailto:zweinberg@mozilla.com" rel="freelink">zweinberg@mozilla.com</a>&gt; - Bug 576044 (12/12): fix assertions in nsStyleAnimation triggered by part 3.  r=dbaron  a2.0=dbaron
               | |
               o |  2f078585a0f6 - Zack Weinberg &lt;<a class="link-mailto" href="mailto:zweinberg@mozilla.com" rel="freelink">zweinberg@mozilla.com</a>&gt; - Bug 576044 (11/12): Make all assertions fatal in Declaration.h, Declaration.cpp, nsCSSDataBlock.h, nsCSSDataBlock.cpp, nsCSSValue.h, nsCSSValue.cpp, nsCSSProps.h, and nsCSSProps.cpp.  r=dbaron  a2.0=dbaron
               | |
               o |  5a9bd15fd7a8 - Zack Weinberg &lt;<a class="link-mailto" href="mailto:zweinberg@mozilla.com" rel="freelink">zweinberg@mozilla.com</a>&gt; - Bug 576044 (10/12): Don't directly manipulate the contents of mTempData in the CSS parser.  r=dbaron  a2.0=dbaron
               | |
               o |  4bb2e0074aeb - Zack Weinberg &lt;<a class="link-mailto" href="mailto:zweinberg@mozilla.com" rel="freelink">zweinberg@mozilla.com</a>&gt; - Bug 576044 (9/12): Add an AddLonghandProperty method to nsCSSExpandedDataBlock.  r=dbaron  a2.0=dbaron
               | |
               o |  659a0864e035 - Zack Weinberg &lt;<a class="link-mailto" href="mailto:zweinberg@mozilla.com" rel="freelink">zweinberg@mozilla.com</a>&gt; - Bug 576044 (8/12): remove the last MoveValue call from the CSS parser.  r=dbaron  a2.0=dbaron
               | |
               o |  980f0170d982 - Zack Weinberg &lt;<a class="link-mailto" href="mailto:zweinberg@mozilla.com" rel="freelink">zweinberg@mozilla.com</a>&gt; - Bug 576044 (7/12): cleanup pass on css/Declaration.{h,cpp} and nsCSSDataBlock.{h,cpp}.  r=dbaron  a2.0=dbaron
               | |
               o |  f09c1638d3c1 - Zack Weinberg &lt;<a class="link-mailto" href="mailto:zweinberg@mozilla.com" rel="freelink">zweinberg@mozilla.com</a>&gt; - Bug 576044 (6/12): remove vestiges of nsCSSType.  r=dbaron  a2.0=dbaron
               | |
               o |  b88472b0af90 - Zack Weinberg &lt;<a class="link-mailto" href="mailto:zweinberg@mozilla.com" rel="freelink">zweinberg@mozilla.com</a>&gt; - Bug 576044 (5/12): eliminate ValueList as a storage type.  r=dbaron  a2.0=dbaron
               | |
               o |  a3e21759b570 - Zack Weinberg &lt;<a class="link-mailto" href="mailto:zweinberg@mozilla.com" rel="freelink">zweinberg@mozilla.com</a>&gt; - Bug 576044 (4/12): eliminate ValuePairList as a storage type.  r=dbaron  a2.0=dbaron
               | |
               o |  ed89c9e297ab - Zack Weinberg &lt;<a class="link-mailto" href="mailto:zweinberg@mozilla.com" rel="freelink">zweinberg@mozilla.com</a>&gt; - Bug 576044 (3/12): eliminate Rect as a storage type.  r=dbaron  a2.0=dbaron
               | |
               o |  4fc85e572c38 - Zack Weinberg &lt;<a class="link-mailto" href="mailto:zweinberg@mozilla.com" rel="freelink">zweinberg@mozilla.com</a>&gt; - Bug 576044 (2/12): eliminate ValuePair as a storage type.  r=dbaron  a2.0=dbaron
               | |
               o |  301875d4f9b6 - Zack Weinberg &lt;<a class="link-mailto" href="mailto:zweinberg@mozilla.com" rel="freelink">zweinberg@mozilla.com</a>&gt; - Bug 576044 (1/12): Move all the CSS 'storage types' (rect, value pair, etc) to nsCSSValue.h and their code to nsCSSValue.cpp.  r=dbaron  a2.0=dbaron
               | |
 <strong>LAST_BAD</strong> ---&gt; o |  90ad165ae21b - Chris Jones &lt;<a class="link-mailto" href="mailto:jones.chris.g@gmail.com" rel="freelink">jones.chris.g@gmail.com</a>&gt; - Bug 582057, part i: Use nsIWidget::CreateChild in nsIView::CreateWidget* (where possible). r=roc a=blocking-fennecb1
               | |
               o |  037a5d6b376a - Chris Jones &lt;<a class="link-mailto" href="mailto:jones.chris.g@gmail.com" rel="freelink">jones.chris.g@gmail.com</a>&gt; - Bug 582057, part h: Add an nsIWidget::CreateChild interface to sweep (relevant to this bug) code dealing with native widgets under the widget/src/* rug. sr=roc
               | |
               o |  f1af117d4598 - Chris Jones &lt;<a class="link-mailto" href="mailto:jones.chris.g@gmail.com" rel="freelink">jones.chris.g@gmail.com</a>&gt; - Bug 582057, part g: Split nsIView::CreateWidget into CreateWidget, CreateWidgetForParent, and CreateWidgetForPopup in preparation of eliminating IIDs here. sr=roc
               | |
               o |  5bf0b315a5aa - Chris Jones &lt;<a class="link-mailto" href="mailto:jones.chris.g@gmail.com" rel="freelink">jones.chris.g@gmail.com</a>&gt; - Bug 582057, part f: Split out window initialization code in preparation for multiple CreateWidget* methods. r=roc
               | |
               o |  353da995af6f - Chris Jones &lt;<a class="link-mailto" href="mailto:jones.chris.g@gmail.com" rel="freelink">jones.chris.g@gmail.com</a>&gt; - Bug 582057, part e: Simplify the logic for creating popup widgets. r=roc
               | |
               o |  7735c00eabe9 - Chris Jones &lt;<a class="link-mailto" href="mailto:jones.chris.g@gmail.com" rel="freelink">jones.chris.g@gmail.com</a>&gt; - Bug 582057, part d: Simplify nsView::LoadWidget and return early if it fails. r=roc
               | |
               o |  7b17bcefb174 - Chris Jones &lt;<a class="link-mailto" href="mailto:jones.chris.g@gmail.com" rel="freelink">jones.chris.g@gmail.com</a>&gt; - Bug 582057, part c: Initialize default widget init data earlier so that it's always available. r=roc
               | |
               o |  c5945b6a97ed - Chris Jones &lt;<a class="link-mailto" href="mailto:jones.chris.g@gmail.com" rel="freelink">jones.chris.g@gmail.com</a>&gt; - Bug 582057, part b: Remove nsIDeviceContext::SupportsNativeWidgets because it's not used meaningfully, and will be confusing in content processes. sr=roc
               | |
               o |  5452db293694 - Chris Jones &lt;<a class="link-mailto" href="mailto:jones.chris.g@gmail.com" rel="freelink">jones.chris.g@gmail.com</a>&gt; - Bug 582057, part a: Add nsIView::Impl() and nsView::CreateWidget() to get rid of |static_cast&lt;nsview*&gt;(this)|. r=roc
               | |
               o |  9407827b5166 - Chris Jones &lt;<a class="link-mailto" href="mailto:jones.chris.g@gmail.com" rel="freelink">jones.chris.g@gmail.com</a>&gt; - Bug 582075, part 0.5: Add support for aInitData=NULL to the Windows nsWindow implementation. r=dougt
               | |
               o |  88a279b64473 - Chris Jones &lt;<a class="link-mailto" href="mailto:jones.chris.g@gmail.com" rel="freelink">jones.chris.g@gmail.com</a>&gt; - Bug 582057, part 0: Log the repaint region bounding rect in DumpPaintEvent. r=roc
               | |
               o |  cebb111fbfc4 - Robert O'Callahan &lt;<a class="link-mailto" href="mailto:roc@ocallahan.org" rel="freelink">roc@ocallahan.org</a>&gt; - Bug 585817. Part 3: Remove nsSVGUtils::GetThebesComputationalSurface and use gfxPlatform::ScreenReferenceSurface instead. r=jwatt
               | |
               o |  7b3726c3a580 - Robert O'Callahan &lt;<a class="link-mailto" href="mailto:roc@ocallahan.org" rel="freelink">roc@ocallahan.org</a>&gt; - Bug 585817. Part 2: Change nsIPresShell::CreateRenderingContext to GetReferenceRenderingContext, that uses the shared 1x1 surface, and use it all over the place. r=mats,sr=dbaron
               | |
<strong>FIRST_BAD</strong> ---&gt; o |  b3e968d831ec - Robert O'Callahan &lt;<a class="link-mailto" href="mailto:roc@ocallahan.org" rel="freelink">roc@ocallahan.org</a>&gt; - Bug 585817. Part 1: Create a single static 1x1 surface in gfxPlatform that can be used to create contexts for text measurement etc. r=vlad
               | |
<strong>LAST_GOOD</strong> ---&gt; o |  55ef0e0529bc - Mounir Lamouri &lt;<a class="link-mailto" href="mailto:mounir.lamouri@gmail.com" rel="freelink">mounir.lamouri@gmail.com</a>&gt; - Bug 506554 - Implement the CSS3 pseudo-classes :required and :optional for HTML. r=sicking sr=bz a2.0=blocking
               | |
&lt;/int&gt;&lt;/int&gt;</pre>
<p>We want to erase all changes between <code>$FIRST_BAD</code> and <code>$LAST_BAD</code>, then merge to <code>$MERGE_TO</code></p>
<pre class="eval">$ MERGE_TO="c6abfc89215a"
$ LAST_BAD="90ad165ae21b"
$ LAST_GOOD="55ef0e0529bc"
$ hg up -r $LAST_BAD
90 files updated, 0 files merged, 4 files removed, 0 files unresolved
</pre>
<p>We just traveled back in time to the last cset we want to nuke. Now we'll revert the changes between <code>$FIRST_BAD</code> and <code>$LAST_BAD</code>.</p>
<pre class="eval">$ hg revert --all --no-backup -r $LAST_GOOD
reverting accessible/src/msaa/nsTextAccessibleWrap.cpp
reverting content/svg/content/src/SVGMotionSMILPathUtils.h
reverting content/svg/content/src/nsSVGPathElement.cpp
reverting gfx/src/nsIDeviceContext.h
reverting gfx/src/thebes/nsThebesDeviceContext.cpp
reverting gfx/src/thebes/nsThebesDeviceContext.h
reverting gfx/thebes/gfxPlatform.cpp
reverting gfx/thebes/gfxPlatform.h
reverting layout/base/nsCSSFrameConstructor.cpp
reverting layout/base/nsDocumentViewer.cpp
reverting layout/base/nsIPresShell.h
reverting layout/base/nsPresShell.cpp
reverting layout/build/nsLayoutStatics.cpp
reverting layout/generic/nsFrameFrame.cpp
reverting layout/generic/nsObjectFrame.cpp
reverting layout/generic/nsSimplePageSequence.cpp
reverting layout/generic/nsTextFrameThebes.cpp
reverting layout/inspector/src/inFlasher.cpp
reverting layout/printing/nsPrintEngine.cpp
reverting layout/svg/base/src/nsSVGForeignObjectFrame.cpp
reverting layout/svg/base/src/nsSVGGlyphFrame.cpp
reverting layout/svg/base/src/nsSVGImageFrame.cpp
reverting layout/svg/base/src/nsSVGPathGeometryFrame.cpp
reverting layout/svg/base/src/nsSVGUtils.cpp
reverting layout/svg/base/src/nsSVGUtils.h
reverting layout/xul/base/src/nsMenuPopupFrame.cpp
reverting layout/xul/base/src/nsSplitterFrame.cpp
reverting layout/xul/base/src/tree/src/nsTreeBodyFrame.cpp
reverting view/public/nsIView.h
reverting view/src/nsView.cpp
reverting view/src/nsView.h
reverting widget/public/nsIWidget.h
reverting widget/src/beos/nsWindow.h
reverting widget/src/cocoa/nsChildView.h
reverting widget/src/cocoa/nsCocoaWindow.h
reverting widget/src/windows/nsWindow.cpp
reverting widget/src/xpwidgets/nsBaseWidget.cpp
reverting widget/src/xpwidgets/nsBaseWidget.h
$ hg commit -m 'Back out bug 585817 and bug 582057'
created new head
</pre>
<p>After committing the reversion, we now have a new head that doesn't include the probably-good changes after <code>$LAST_BAD</code>.</p>
<pre class="eval">@  1767c1fb9418 - Chris Jones &lt;<a class="link-mailto" href="mailto:jones.chris.g@gmail.com" rel="freelink">jones.chris.g@gmail.com</a>&gt; - Back out bug 585817 and bug 582057
|
| o  c6abfc89215a - Chris Pearce &lt;<a class="link-mailto" href="mailto:chris@pearce.org.nz" rel="freelink">chris@pearce.org.nz</a>&gt; - Bug 485288 - Replace all usage of video  autobuffer attribute with preload=auto. a=test-fix
| |
| o  d6e8fddeb95b - Chris Pearce &lt;<a class="link-mailto" href="mailto:chris@pearce.org.nz" rel="freelink">chris@pearce.org.nz</a>&gt; - Bug 548523 - Disable test_preload_actions.html case 9 until bug 568402 is fixed. a=test-fix
| |
| o  571d2664ead0 - Chris Pearce &lt;<a class="link-mailto" href="mailto:chris@pearce.org.nz" rel="freelink">chris@pearce.org.nz</a>&gt; - Bug 548523 - Don't show throbber on video controls if we're not loading a resource. r=dolske a=blocking2.0
| |
| o  3f7dfabab5e4 - Rich Dougherty &lt;<a class="link-mailto" href="mailto:rich@rd.gen.nz" rel="freelink">rich@rd.gen.nz</a>&gt;, Chris Pearce &lt;<a class="link-mailto" href="mailto:chris@pearce.org.nz" rel="freelink">chris@pearce.org.nz</a>&gt; - Bug 548523 - Replace HTMLMediaElement.autobuffer attribute with 'preload'. r=roc a=blocking2.0
| |
| o  d7d9cf4ab76a - Chris Pearce &lt;<a class="link-mailto" href="mailto:chris@pearce.org.nz" rel="freelink">chris@pearce.org.nz</a>&gt; - Bug 519897 - Supported indexed Ogg files. r=doublec
| |
| o    2a0e5811ece9 - Chris Pearce &lt;<a class="link-mailto" href="mailto:chris@pearce.org.nz" rel="freelink">chris@pearce.org.nz</a>&gt; - Commit merge of backout of 66dcf25705f9. a=backout
| |\
| | o  958a30df30dd - Chris Pearce &lt;<a class="link-mailto" href="mailto:chris@pearce.org.nz" rel="freelink">chris@pearce.org.nz</a>&gt; - Backed out changeset 66dcf25705f9
| | |
| o |  6eead86e13dd - Michael Wu &lt;<a class="link-mailto" href="mailto:mwu@mozilla.com" rel="freelink">mwu@mozilla.com</a>&gt; - Bug 556644 - Yet another removed-files.in update, r=rs a=blocking-beta5
| | |
| o |  69c6ce104f45 - Chris Jones &lt;<a class="link-mailto" href="mailto:jones.chris.g@gmail.com" rel="freelink">jones.chris.g@gmail.com</a>&gt; - Bug 588216: Avoid race between IO-thread loop-&gt;PostTask() and main-thread loop-&gt;SetNestableTasksAllowed() that led to Tasks being ignored. r=bent
| | |
| o |  73899b33ca4b - Ben Turner &lt;<a class="link-mailto" href="mailto:bent.mozilla@gmail.com" rel="freelink">bent.mozilla@gmail.com</a>&gt; - Bug 576716 - 'Crash [@ TypedArrayTemplate&lt;int&gt;::init] or [@ TypedArrayTemplate&lt;int&gt;::create]'. Adding a test, r=vlad a=blocker
| | |
| o |  3bd62d459019 - Mark Banner &lt;<a class="link-mailto" href="mailto:bugzilla@standard8.plus.com" rel="freelink">bugzilla@standard8.plus.com</a>&gt; - Follow up to bug 587984 bustage fix for l10n repacks. r=Pike,ted,a=bustage-fix
| | |
| o |  e1ca9091e5a6 - Benjamin Stover &lt;<a class="link-mailto" href="mailto:webapps@stechz.com" rel="freelink">webapps@stechz.com</a>&gt; - Bug 575731: Make test more stable in the face of various themes. r,a=sicking
| | |
| o |  bb200e1f52b4 - Jonas Sicking &lt;<a class="link-mailto" href="mailto:jonas@sicking.cc" rel="freelink">jonas@sicking.cc</a>&gt; - Bug 550959: Require version 2.5 of python. r=ted a=sicking
| | |
| o |  992491c618de - Zack Weinberg &lt;<a class="link-mailto" href="mailto:zweinberg@mozilla.com" rel="freelink">zweinberg@mozilla.com</a>&gt; - Bug 576044 (12/12): fix assertions in nsStyleAnimation triggered by part 3.  r=dbaron  a2.0=dbaron
| | |
| o |  2f078585a0f6 - Zack Weinberg &lt;<a class="link-mailto" href="mailto:zweinberg@mozilla.com" rel="freelink">zweinberg@mozilla.com</a>&gt; - Bug 576044 (11/12): Make all assertions fatal in Declaration.h, Declaration.cpp, nsCSSDataBlock.h, nsCSSDataBlock.cpp, nsCSSValue.h, nsCSSValue.cpp, nsCSSProps.h, and nsCSSProps.cpp.  r=dbaron  a2.0=dbaron
| | |
| o |  5a9bd15fd7a8 - Zack Weinberg &lt;<a class="link-mailto" href="mailto:zweinberg@mozilla.com" rel="freelink">zweinberg@mozilla.com</a>&gt; - Bug 576044 (10/12): Don't directly manipulate the contents of mTempData in the CSS parser.  r=dbaron  a2.0=dbaron
| | |
| o |  4bb2e0074aeb - Zack Weinberg &lt;<a class="link-mailto" href="mailto:zweinberg@mozilla.com" rel="freelink">zweinberg@mozilla.com</a>&gt; - Bug 576044 (9/12): Add an AddLonghandProperty method to nsCSSExpandedDataBlock.  r=dbaron  a2.0=dbaron
| | |
| o |  659a0864e035 - Zack Weinberg &lt;<a class="link-mailto" href="mailto:zweinberg@mozilla.com" rel="freelink">zweinberg@mozilla.com</a>&gt; - Bug 576044 (8/12): remove the last MoveValue call from the CSS parser.  r=dbaron  a2.0=dbaron
| | |
| o |  980f0170d982 - Zack Weinberg &lt;<a class="link-mailto" href="mailto:zweinberg@mozilla.com" rel="freelink">zweinberg@mozilla.com</a>&gt; - Bug 576044 (7/12): cleanup pass on css/Declaration.{h,cpp} and nsCSSDataBlock.{h,cpp}.  r=dbaron  a2.0=dbaron
| | |
| o |  f09c1638d3c1 - Zack Weinberg &lt;<a class="link-mailto" href="mailto:zweinberg@mozilla.com" rel="freelink">zweinberg@mozilla.com</a>&gt; - Bug 576044 (6/12): remove vestiges of nsCSSType.  r=dbaron  a2.0=dbaron
| | |
| o |  b88472b0af90 - Zack Weinberg &lt;<a class="link-mailto" href="mailto:zweinberg@mozilla.com" rel="freelink">zweinberg@mozilla.com</a>&gt; - Bug 576044 (5/12): eliminate ValueList as a storage type.  r=dbaron  a2.0=dbaron
| | |
| o |  a3e21759b570 - Zack Weinberg &lt;<a class="link-mailto" href="mailto:zweinberg@mozilla.com" rel="freelink">zweinberg@mozilla.com</a>&gt; - Bug 576044 (4/12): eliminate ValuePairList as a storage type.  r=dbaron  a2.0=dbaron
| | |
| o |  ed89c9e297ab - Zack Weinberg &lt;<a class="link-mailto" href="mailto:zweinberg@mozilla.com" rel="freelink">zweinberg@mozilla.com</a>&gt; - Bug 576044 (3/12): eliminate Rect as a storage type.  r=dbaron  a2.0=dbaron
| | |
| o |  4fc85e572c38 - Zack Weinberg &lt;<a class="link-mailto" href="mailto:zweinberg@mozilla.com" rel="freelink">zweinberg@mozilla.com</a>&gt; - Bug 576044 (2/12): eliminate ValuePair as a storage type.  r=dbaron  a2.0=dbaron
| | |
| o |  301875d4f9b6 - Zack Weinberg &lt;<a class="link-mailto" href="mailto:zweinberg@mozilla.com" rel="freelink">zweinberg@mozilla.com</a>&gt; - Bug 576044 (1/12): Move all the CSS 'storage types' (rect, value pair, etc) to nsCSSValue.h and their code to nsCSSValue.cpp.  r=dbaron  a2.0=dbaron
|/ /
o |  90ad165ae21b - Chris Jones &lt;<a class="link-mailto" href="mailto:jones.chris.g@gmail.com" rel="freelink">jones.chris.g@gmail.com</a>&gt; - Bug 582057, part i: Use nsIWidget::CreateChild in nsIView::CreateWidget* (where possible). r=roc a=blocking-fennecb1
| |
o |  037a5d6b376a - Chris Jones &lt;<a class="link-mailto" href="mailto:jones.chris.g@gmail.com" rel="freelink">jones.chris.g@gmail.com</a>&gt; - Bug 582057, part h: Add an nsIWidget::CreateChild interface to sweep (relevant to this bug) code dealing with native widgets under the widget/src/* rug. sr=roc
| |
o |  f1af117d4598 - Chris Jones &lt;<a class="link-mailto" href="mailto:jones.chris.g@gmail.com" rel="freelink">jones.chris.g@gmail.com</a>&gt; - Bug 582057, part g: Split nsIView::CreateWidget into CreateWidget, CreateWidgetForParent, and CreateWidgetForPopup in preparation of eliminating IIDs here. sr=roc
| |
o |  5bf0b315a5aa - Chris Jones &lt;<a class="link-mailto" href="mailto:jones.chris.g@gmail.com" rel="freelink">jones.chris.g@gmail.com</a>&gt; - Bug 582057, part f: Split out window initialization code in preparation for multiple CreateWidget* methods. r=roc
| |
o |  353da995af6f - Chris Jones &lt;<a class="link-mailto" href="mailto:jones.chris.g@gmail.com" rel="freelink">jones.chris.g@gmail.com</a>&gt; - Bug 582057, part e: Simplify the logic for creating popup widgets. r=roc
| |
o |  7735c00eabe9 - Chris Jones &lt;<a class="link-mailto" href="mailto:jones.chris.g@gmail.com" rel="freelink">jones.chris.g@gmail.com</a>&gt; - Bug 582057, part d: Simplify nsView::LoadWidget and return early if it fails. r=roc
| |
o |  7b17bcefb174 - Chris Jones &lt;<a class="link-mailto" href="mailto:jones.chris.g@gmail.com" rel="freelink">jones.chris.g@gmail.com</a>&gt; - Bug 582057, part c: Initialize default widget init data earlier so that it's always available. r=roc
| |
o |  c5945b6a97ed - Chris Jones &lt;<a class="link-mailto" href="mailto:jones.chris.g@gmail.com" rel="freelink">jones.chris.g@gmail.com</a>&gt; - Bug 582057, part b: Remove nsIDeviceContext::SupportsNativeWidgets because it's not used meaningfully, and will be confusing in content processes. sr=roc
| |
o |  5452db293694 - Chris Jones &lt;<a class="link-mailto" href="mailto:jones.chris.g@gmail.com" rel="freelink">jones.chris.g@gmail.com</a>&gt; - Bug 582057, part a: Add nsIView::Impl() and nsView::CreateWidget() to get rid of |static_cast&lt;nsview*&gt;(this)|. r=roc
| |
o |  9407827b5166 - Chris Jones &lt;<a class="link-mailto" href="mailto:jones.chris.g@gmail.com" rel="freelink">jones.chris.g@gmail.com</a>&gt; - Bug 582075, part 0.5: Add support for aInitData=NULL to the Windows nsWindow implementation. r=dougt
| |
o |  88a279b64473 - Chris Jones &lt;<a class="link-mailto" href="mailto:jones.chris.g@gmail.com" rel="freelink">jones.chris.g@gmail.com</a>&gt; - Bug 582057, part 0: Log the repaint region bounding rect in DumpPaintEvent. r=roc
| |
o |  cebb111fbfc4 - Robert O'Callahan &lt;<a class="link-mailto" href="mailto:roc@ocallahan.org" rel="freelink">roc@ocallahan.org</a>&gt; - Bug 585817. Part 3: Remove nsSVGUtils::GetThebesComputationalSurface and use gfxPlatform::ScreenReferenceSurface instead. r=jwatt
| |
o |  7b3726c3a580 - Robert O'Callahan &lt;<a class="link-mailto" href="mailto:roc@ocallahan.org" rel="freelink">roc@ocallahan.org</a>&gt; - Bug 585817. Part 2: Change nsIPresShell::CreateRenderingContext to GetReferenceRenderingContext, that uses the shared 1x1 surface, and use it all over the place. r=mats,sr=dbaron
| |
o |  b3e968d831ec - Robert O'Callahan &lt;<a class="link-mailto" href="mailto:roc@ocallahan.org" rel="freelink">roc@ocallahan.org</a>&gt; - Bug 585817. Part 1: Create a single static 1x1 surface in gfxPlatform that can be used to create contexts for text measurement etc. r=vlad
| |
o |  55ef0e0529bc - Mounir Lamouri &lt;<a class="link-mailto" href="mailto:mounir.lamouri@gmail.com" rel="freelink">mounir.lamouri@gmail.com</a>&gt; - Bug 506554 - Implement the CSS3 pseudo-classes :required and :optional for HTML. r=sicking sr=bz a2.0=blocking
| |
&lt;/int&gt;&lt;/int&gt;</pre>
<p>We want to merge with those probably-good changesets. Note that if any of those probably-good changesets touched code you backed out, you'll need to resolve merge conflicts.</p>
<pre class="eval">$ hg merge $MERGE_TO
92 files updated, 0 files merged, 2 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ hg commit -m 'Merge backout'
</pre>
<p>OK, good to go. Your tree should look something like</p>
<pre class="eval">@    8fccc434c295 - Chris Jones &lt;<a class="link-mailto" href="mailto:jones.chris.g@gmail.com" rel="freelink">jones.chris.g@gmail.com</a>&gt; - Merge backout
|\
| o  1767c1fb9418 - Chris Jones &lt;<a class="link-mailto" href="mailto:jones.chris.g@gmail.com" rel="freelink">jones.chris.g@gmail.com</a>&gt; - Back out bug 585817 and bug 582057
| |
o |  c6abfc89215a - Chris Pearce &lt;<a class="link-mailto" href="mailto:chris@pearce.org.nz" rel="freelink">chris@pearce.org.nz</a>&gt; - Bug 485288 - Replace all usage of video  autobuffer attribute with preload=auto. a=test-fix
| |
o |  d6e8fddeb95b - Chris Pearce &lt;<a class="link-mailto" href="mailto:chris@pearce.org.nz" rel="freelink">chris@pearce.org.nz</a>&gt; - Bug 548523 - Disable test_preload_actions.html case 9 until bug 568402 is fixed. a=test-fix
| |
o |  571d2664ead0 - Chris Pearce &lt;<a class="link-mailto" href="mailto:chris@pearce.org.nz" rel="freelink">chris@pearce.org.nz</a>&gt; - Bug 548523 - Don't show throbber on video controls if we're not loading a resource. r=dolske a=blocking2.0
| |
o |  3f7dfabab5e4 - Rich Dougherty &lt;<a class="link-mailto" href="mailto:rich@rd.gen.nz" rel="freelink">rich@rd.gen.nz</a>&gt;, Chris Pearce &lt;<a class="link-mailto" href="mailto:chris@pearce.org.nz" rel="freelink">chris@pearce.org.nz</a>&gt; - Bug 548523 - Replace HTMLMediaElement.autobuffer attribute with 'preload'. r=roc a=blocking2.0
| |
o |  d7d9cf4ab76a - Chris Pearce &lt;<a class="link-mailto" href="mailto:chris@pearce.org.nz" rel="freelink">chris@pearce.org.nz</a>&gt; - Bug 519897 - Supported indexed Ogg files. r=doublec
| |
o |    2a0e5811ece9 - Chris Pearce &lt;<a class="link-mailto" href="mailto:chris@pearce.org.nz" rel="freelink">chris@pearce.org.nz</a>&gt; - Commit merge of backout of 66dcf25705f9. a=backout
|\ \
| o |  958a30df30dd - Chris Pearce &lt;<a class="link-mailto" href="mailto:chris@pearce.org.nz" rel="freelink">chris@pearce.org.nz</a>&gt; - Backed out changeset 66dcf25705f9
| | |
o | |  6eead86e13dd - Michael Wu &lt;<a class="link-mailto" href="mailto:mwu@mozilla.com" rel="freelink">mwu@mozilla.com</a>&gt; - Bug 556644 - Yet another removed-files.in update, r=rs a=blocking-beta5
| | |
o | |  69c6ce104f45 - Chris Jones &lt;<a class="link-mailto" href="mailto:jones.chris.g@gmail.com" rel="freelink">jones.chris.g@gmail.com</a>&gt; - Bug 588216: Avoid race between IO-thread loop-&gt;PostTask() and main-thread loop-&gt;SetNestableTasksAllowed() that led to Tasks being ignored. r=bent
| | |
o | |  73899b33ca4b - Ben Turner &lt;<a class="link-mailto" href="mailto:bent.mozilla@gmail.com" rel="freelink">bent.mozilla@gmail.com</a>&gt; - Bug 576716 - 'Crash [@ TypedArrayTemplate&lt;int&gt;::init] or [@ TypedArrayTemplate&lt;int&gt;::create]'. Adding a test, r=vlad a=blocker
| | |
o | |  3bd62d459019 - Mark Banner &lt;<a class="link-mailto" href="mailto:bugzilla@standard8.plus.com" rel="freelink">bugzilla@standard8.plus.com</a>&gt; - Follow up to bug 587984 bustage fix for l10n repacks. r=Pike,ted,a=bustage-fix
| | |
o | |  e1ca9091e5a6 - Benjamin Stover &lt;<a class="link-mailto" href="mailto:webapps@stechz.com" rel="freelink">webapps@stechz.com</a>&gt; - Bug 575731: Make test more stable in the face of various themes. r,a=sicking
| | |
o | |  bb200e1f52b4 - Jonas Sicking &lt;<a class="link-mailto" href="mailto:jonas@sicking.cc" rel="freelink">jonas@sicking.cc</a>&gt; - Bug 550959: Require version 2.5 of python. r=ted a=sicking
| | |
o | |  992491c618de - Zack Weinberg &lt;<a class="link-mailto" href="mailto:zweinberg@mozilla.com" rel="freelink">zweinberg@mozilla.com</a>&gt; - Bug 576044 (12/12): fix assertions in nsStyleAnimation triggered by part 3.  r=dbaron  a2.0=dbaron
| | |
o | |  2f078585a0f6 - Zack Weinberg &lt;<a class="link-mailto" href="mailto:zweinberg@mozilla.com" rel="freelink">zweinberg@mozilla.com</a>&gt; - Bug 576044 (11/12): Make all assertions fatal in Declaration.h, Declaration.cpp, nsCSSDataBlock.h, nsCSSDataBlock.cpp, nsCSSValue.h, nsCSSValue.cpp, nsCSSProps.h, and nsCSSProps.cpp.  r=dbaron  a2.0=dbaron
| | |
o | |  5a9bd15fd7a8 - Zack Weinberg &lt;<a class="link-mailto" href="mailto:zweinberg@mozilla.com" rel="freelink">zweinberg@mozilla.com</a>&gt; - Bug 576044 (10/12): Don't directly manipulate the contents of mTempData in the CSS parser.  r=dbaron  a2.0=dbaron
| | |
o | |  4bb2e0074aeb - Zack Weinberg &lt;<a class="link-mailto" href="mailto:zweinberg@mozilla.com" rel="freelink">zweinberg@mozilla.com</a>&gt; - Bug 576044 (9/12): Add an AddLonghandProperty method to nsCSSExpandedDataBlock.  r=dbaron  a2.0=dbaron
| | |
o | |  659a0864e035 - Zack Weinberg &lt;<a class="link-mailto" href="mailto:zweinberg@mozilla.com" rel="freelink">zweinberg@mozilla.com</a>&gt; - Bug 576044 (8/12): remove the last MoveValue call from the CSS parser.  r=dbaron  a2.0=dbaron
| | |
o | |  980f0170d982 - Zack Weinberg &lt;<a class="link-mailto" href="mailto:zweinberg@mozilla.com" rel="freelink">zweinberg@mozilla.com</a>&gt; - Bug 576044 (7/12): cleanup pass on css/Declaration.{h,cpp} and nsCSSDataBlock.{h,cpp}.  r=dbaron  a2.0=dbaron
| | |
o | |  f09c1638d3c1 - Zack Weinberg &lt;<a class="link-mailto" href="mailto:zweinberg@mozilla.com" rel="freelink">zweinberg@mozilla.com</a>&gt; - Bug 576044 (6/12): remove vestiges of nsCSSType.  r=dbaron  a2.0=dbaron
| | |
o | |  b88472b0af90 - Zack Weinberg &lt;<a class="link-mailto" href="mailto:zweinberg@mozilla.com" rel="freelink">zweinberg@mozilla.com</a>&gt; - Bug 576044 (5/12): eliminate ValueList as a storage type.  r=dbaron  a2.0=dbaron
| | |
o | |  a3e21759b570 - Zack Weinberg &lt;<a class="link-mailto" href="mailto:zweinberg@mozilla.com" rel="freelink">zweinberg@mozilla.com</a>&gt; - Bug 576044 (4/12): eliminate ValuePairList as a storage type.  r=dbaron  a2.0=dbaron
| | |
o | |  ed89c9e297ab - Zack Weinberg &lt;<a class="link-mailto" href="mailto:zweinberg@mozilla.com" rel="freelink">zweinberg@mozilla.com</a>&gt; - Bug 576044 (3/12): eliminate Rect as a storage type.  r=dbaron  a2.0=dbaron
| | |
o | |  4fc85e572c38 - Zack Weinberg &lt;<a class="link-mailto" href="mailto:zweinberg@mozilla.com" rel="freelink">zweinberg@mozilla.com</a>&gt; - Bug 576044 (2/12): eliminate ValuePair as a storage type.  r=dbaron  a2.0=dbaron
| | |
o---+  301875d4f9b6 - Zack Weinberg &lt;<a class="link-mailto" href="mailto:zweinberg@mozilla.com" rel="freelink">zweinberg@mozilla.com</a>&gt; - Bug 576044 (1/12): Move all the CSS 'storage types' (rect, value pair, etc) to nsCSSValue.h and their code to nsCSSValue.cpp.  r=dbaron  a2.0=dbaron
 / /
| o  90ad165ae21b - Chris Jones &lt;<a class="link-mailto" href="mailto:jones.chris.g@gmail.com" rel="freelink">jones.chris.g@gmail.com</a>&gt; - Bug 582057, part i: Use nsIWidget::CreateChild in nsIView::CreateWidget* (where possible). r=roc a=blocking-fennecb1
| |
| o  037a5d6b376a - Chris Jones &lt;<a class="link-mailto" href="mailto:jones.chris.g@gmail.com" rel="freelink">jones.chris.g@gmail.com</a>&gt; - Bug 582057, part h: Add an nsIWidget::CreateChild interface to sweep (relevant to this bug) code dealing with native widgets under the widget/src/* rug. sr=roc
| |
| o  f1af117d4598 - Chris Jones &lt;<a class="link-mailto" href="mailto:jones.chris.g@gmail.com" rel="freelink">jones.chris.g@gmail.com</a>&gt; - Bug 582057, part g: Split nsIView::CreateWidget into CreateWidget, CreateWidgetForParent, and CreateWidgetForPopup in preparation of eliminating IIDs here. sr=roc
| |
| o  5bf0b315a5aa - Chris Jones &lt;<a class="link-mailto" href="mailto:jones.chris.g@gmail.com" rel="freelink">jones.chris.g@gmail.com</a>&gt; - Bug 582057, part f: Split out window initialization code in preparation for multiple CreateWidget* methods. r=roc
| |
| o  353da995af6f - Chris Jones &lt;<a class="link-mailto" href="mailto:jones.chris.g@gmail.com" rel="freelink">jones.chris.g@gmail.com</a>&gt; - Bug 582057, part e: Simplify the logic for creating popup widgets. r=roc
| |
| o  7735c00eabe9 - Chris Jones &lt;<a class="link-mailto" href="mailto:jones.chris.g@gmail.com" rel="freelink">jones.chris.g@gmail.com</a>&gt; - Bug 582057, part d: Simplify nsView::LoadWidget and return early if it fails. r=roc
| |
| o  7b17bcefb174 - Chris Jones &lt;<a class="link-mailto" href="mailto:jones.chris.g@gmail.com" rel="freelink">jones.chris.g@gmail.com</a>&gt; - Bug 582057, part c: Initialize default widget init data earlier so that it's always available. r=roc
| |
| o  c5945b6a97ed - Chris Jones &lt;<a class="link-mailto" href="mailto:jones.chris.g@gmail.com" rel="freelink">jones.chris.g@gmail.com</a>&gt; - Bug 582057, part b: Remove nsIDeviceContext::SupportsNativeWidgets because it's not used meaningfully, and will be confusing in content processes. sr=roc
| |
| o  5452db293694 - Chris Jones &lt;<a class="link-mailto" href="mailto:jones.chris.g@gmail.com" rel="freelink">jones.chris.g@gmail.com</a>&gt; - Bug 582057, part a: Add nsIView::Impl() and nsView::CreateWidget() to get rid of |static_cast&lt;nsview*&gt;(this)|. r=roc
| |
| o  9407827b5166 - Chris Jones &lt;<a class="link-mailto" href="mailto:jones.chris.g@gmail.com" rel="freelink">jones.chris.g@gmail.com</a>&gt; - Bug 582075, part 0.5: Add support for aInitData=NULL to the Windows nsWindow implementation. r=dougt
| |
| o  88a279b64473 - Chris Jones &lt;<a class="link-mailto" href="mailto:jones.chris.g@gmail.com" rel="freelink">jones.chris.g@gmail.com</a>&gt; - Bug 582057, part 0: Log the repaint region bounding rect in DumpPaintEvent. r=roc
| |
| o  cebb111fbfc4 - Robert O'Callahan &lt;<a class="link-mailto" href="mailto:roc@ocallahan.org" rel="freelink">roc@ocallahan.org</a>&gt; - Bug 585817. Part 3: Remove nsSVGUtils::GetThebesComputationalSurface and use gfxPlatform::ScreenReferenceSurface instead. r=jwatt
| |
| o  7b3726c3a580 - Robert O'Callahan &lt;<a class="link-mailto" href="mailto:roc@ocallahan.org" rel="freelink">roc@ocallahan.org</a>&gt; - Bug 585817. Part 2: Change nsIPresShell::CreateRenderingContext to GetReferenceRenderingContext, that uses the shared 1x1 surface, and use it all over the place. r=mats,sr=dbaron
| |
| o  b3e968d831ec - Robert O'Callahan &lt;<a class="link-mailto" href="mailto:roc@ocallahan.org" rel="freelink">roc@ocallahan.org</a>&gt; - Bug 585817. Part 1: Create a single static 1x1 surface in gfxPlatform that can be used to create contexts for text measurement etc. r=vlad
| |
| o  55ef0e0529bc - Mounir Lamouri &lt;<a class="link-mailto" href="mailto:mounir.lamouri@gmail.com" rel="freelink">mounir.lamouri@gmail.com</a>&gt; - Bug 506554 - Implement the CSS3 pseudo-classes :required and :optional for HTML. r=sicking sr=bz a2.0=blocking
| |
$ hg out
comparing with <a class="external" href="http://hg.mozilla.org/mozilla-central" rel="freelink">http://hg.mozilla.org/mozilla-central</a>
searching for changes
1767c1fb9418 - Chris Jones &lt;<a class="link-mailto" href="mailto:jones.chris.g@gmail.com" rel="freelink">jones.chris.g@gmail.com</a>&gt; - Back out bug 585817 and bug 582057
8fccc434c295 - Chris Jones &lt;<a class="link-mailto" href="mailto:jones.chris.g@gmail.com" rel="freelink">jones.chris.g@gmail.com</a>&gt; - Merge backout
&lt;/int&gt;&lt;/int&gt;
</pre>
<h2 id="Help" name="Help">Maintaining a branch of mozilla-central</h2>
<p>Let foo be the project you are working on. We assume that the project directory will be <a class="external" href="http://hg.mozilla.org/projects/foo" rel="freelink">http://hg.mozilla.org/projects/foo</a> and is a branch of mozilla-central. We also assume that you want to push some patches on foo and periodically synchronize both repositories.</p>
<h3 id="Modify_hgrc">Modify hgrc</h3>
<p>To make things simpler, you can modify the hgrc file in the repository. You can find it here: /path/to/repository/.hg/hgrc</p>
<p>Change it to:</p>
<pre>[paths]
default = http://hg.mozilla.org/projects/foo
m-c = ssh://hg.mozilla.org/mozilla-central
default-push = ssh://hg.mozilla.org/projects/foo
</pre>
<h3 id="Synchronize_mozilla-central_and_foo_project">Synchronize mozilla-central and foo project</h3>
<p>You can push to foo as you would push to any repository but you might want to keep in sync both repositories. To do that, you can run these commands:</p>
<pre>hg pull -u   # Get all the changes to foo in your repo.
hg pull m-c  # Get all the changes to mozilla-central in your repo.
hg merge     # Here, the things might be complex and would need extra carefulness.
# resolve merge conflicts, if any
hg commit -m "Merge foo with mozilla-central."
hg push      # Push the merge to foo.
hg push m-c  # Push the changes to mozilla-central.
</pre>
<h2 id="Help" name="Help">Help</h2>
<h3 id="Help.2C_I_can.27t_push.21" name="Help.2C_I_can.27t_push.21">Help, I can't push!</h3>
<p>If you're trying to push, and you can't, first try this:</p>
<pre class="eval">$ ssh hg.mozilla.org
</pre>
<p>If you see output like:</p>
<pre class="eval">Permission denied (publickey,gssapi-with-mic).
</pre>
<p>it may have the following reasons:</p>
<ul>
 <li>you need to <a href="#How_do_I_check_stuff_in.3F">configure your username correctly</a></li>
 <li>you don't have the correct private key in ~/.ssh</li>
 <li>you don't have an hg.mozilla.org account. (If you should have one, <a class="link-https" href="https://bugzilla.mozilla.org/enter_bug.cgi?product=mozilla.org">file a bug</a> in mozilla.org:Server Operations.)</li>
</ul>
<p>If you see output like:</p>
<pre class="eval">You are not allowed to use this system, go away!
</pre>
<p>then you need to <a class="link-https" href="https://bugzilla.mozilla.org/enter_bug.cgi?product=mozilla.org">file a bug</a> in mozilla.org:Server Operations.</p>
<p>You should expect the ssh command to disconnect you immediately, since you're not supposed to have shell access. It may give the output:</p>
<pre class="eval">Could not chdir to home directory : No such file or directory
</pre>
<p>which is harmless (although some people see it and some people don't).</p>
<p>If you see output like:</p>
<pre class="eval">ssl required
</pre>
<p>then you need to <a href="#How_do_I_check_stuff_in.3F">configure your default-push correctly</a>.</p>
<h2 id="Things_that_have_changed" name="Things_that_have_changed">Branch merges</h2>
<p>As part of the rapid release process, the contents of e.g. mozilla-aurora and mozilla-beta are subject to merge events that happen according to the planned branch migration dates. After a branch merge event occurred, if you attempt to use "hg update" in your local tree, you may get error messages such as "abort: crosses branches". In order to fix it, first make sure you don't have local changes, then run "hg update -C -r default".</p>
<h2 id="Other">Other</h2>
<h3 id="What's_the_difference_between_hg_pull_and_hg_update.3F">What's the difference between hg pull and hg update?</h3>
<p><img alt="hg-diagram.png" class="internal default" src="/@api/deki/files/3040/=hg-diagram.png" style="margin-left: 50px; margin-top: 20px; width: 405px; height: 222px;"></p>
<p><code>hg pull</code> copies changesets from one repository to another.  It only brings changes into your local <em>repository</em>, not your working copy.  It will touch the network if you're pulling from a remote repository.</p>
<p><code>hg update</code> updates your working copy.  It only modifies your working copy.  It will not touch the network (unless your directory is on a network filesystem).</p>
<h3 id="How_does_Mercurial_handle_line_endings.3F" name="How_does_Mercurial_handle_line_endings.3F">How does Mercurial handle line endings?</h3>
<p>The Windows version of Mercurial does not automatically convert line endings between Windows and Unix styles. All our repositories use Unix line endings. We need a story for Windows, but right now I have no ideas.</p>
<p>(How about a pre-commit hook that rejects pushes containing CR with a suitably informative error message? We possibly want to make exceptions for certain types of files (at least binary files of course), but we can tweak the hook as necessary as these crop up. Mercurial 1.0 adds a standard hook for this in the win32text extension that we could use/adapt. --jwatt)</p>
<h2 id="Things_that_have_changed" name="Things_that_have_changed">See Also</h2>
<ul>
 <li><a class="link-https" href="https://mxr.mozilla.org/mozilla-central/" title="https://mxr.mozilla.org/mozilla-central/">Search mozilla-central code using MXR</a></li>
 <li>See also <a href="/en/Mercurial//Desired_Features" title="en/Mercurial//Desired_Features">Mercurial/Desired Features</a></li>
 <li><a href="/en/Mozilla/Mercurial/How_Is_Mercurial_different_from_CVS" title="en/Mozilla/Mercurial/How_Is_Mercurial_different_from_CVS">How Is Mercurial different from CVS?</a></li>
</ul>
<p>{{ languages( { "es": "es/FAQ_de_Mercurial" } ) }}</p>