Closed Bug 402224 Opened 18 years ago Closed 18 years ago

add mercurial to MozillaBuild

Categories

(Firefox Build System :: MozillaBuild, task, P3)

x86
Windows XP
task

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: ted, Assigned: ted)

References

Details

Attachments

(1 file, 2 obsolete files)

We should ship mercurial with MozillaBuild, to enable Mozilla2 work.
Mass re-assign of MozillaBuild bugs into mozilla.org:MozillaBuild
Component: Build & Release → MozillaBuild
QA Contact: build → mozillabuild
This should block MozillaBuild 1.3. Johnny says he has some notes on setting up Mercurial to use a good merge program (e.g. conflict markers + emacs). We should set up the default Mercurial.ini to do this, and users can customize using ~/.hgrc if they have fancier merge programs they want to use instead.
The easiest thing to do would be to redistribute the installer from http://mercurial.berkwood.com/ and to just chain to it; or we could just install it $mozbuild\Mercurial and repackage that for distribution. AFAIK, the install has no external dependencies other than wanting to be in $PATH. For the merge tool, I think what we want is described here: http://www.selenic.com/mercurial/wiki/index.cgi/MergingManuallyInEditor . So as long as we can ship a working diff3, we should be able to generate files with conflict markers, which is a good default. We can point people to http://www.selenic.com/mercurial/wiki/index.cgi/MergeProgram if they want to use a fancier tool. ... however, http://www.selenic.com/mercurial/wiki/index.cgi/MergeToolConfiguration mentions an internal simple merge tool. This 'simplemerge' seems to do diff3-style conflict markers, and seems to be available by default, so maybe we don't have to do any extra config here?
Blocks: 433846
Blocks: 433384
Attached patch package mercurial (obsolete) — Splinter Review
Haven't tested the result yet, will upload that in a moment.
Assignee: nobody → ted.mielczarek
Status: NEW → ASSIGNED
Attachment #323921 - Flags: review?(benjamin)
Not to go too far overboard here, but maybe it'd be worth packaging and pre-configuring a merge tool like WinMerge? Perhaps followup fodder if nothing else...
That's what I was thinking, has anyone verified the behavior vlad mentions in comment 3? Also, since I didn't mention it here, here's a test build: http://people.mozilla.com/~tmielczarek/MozillaBuildSetup-hg.exe
I don't know if it's an issue with the Berkwood Mercurial package or with something in the way my environment was set up, but I couldn't get hg under mozillabuild to clone a ssh repository URL that I can clone fine with hg under Mac OS X. Does anyone else see this problem, or is it just me?
Ted, just gave this a little testrun, and there's one problem resurfacing. I hadn't had set up ~/.ssh/config to use my account on hg.mozilla.org yet, and did an hg outgoing and apparently hg didn't recognize the stdin and out from rxvt while trying to ask me for all the log-in information, so it looked like it was just hung. When running the same command in a cmd.exe bash, it asked, and then I figured, "oh, maybe I need to do the setup dance". After fixing that, it worked fine in both cmd and rxvt. Didn't try anything beyond hg diff, incoming and outgoing so far, on a repo that was previously worked with with hg 0.9.5 from cygwin.
Ah, stupid rxvt. Maybe I should in fact just take bug 418938 and get rid of it?
Well, I haven't seen anybody come up with an alternative that's not stupid or beyond :-(, or not there. It may not be that much of a problem for people that are not migrating from cygwin, as they'll need to read the docs to get ssh on hg.m.o working anyway. I got hit because the migration from cygwin -> mozillabuild changes the home directory, so my ssh settings got dropped. In the worst case, just offer both cmd and rxvt start scripts? Ugh :-/
Depends on: 418938
Attached patch Need this patch to Mercurial.ini (obsolete) — Splinter Review
Ted, we're going to at least need this patch to Mercurial.ini so that it honors EDITOR instead of picking notepad. I'm vacillating about whether we want to enable any other extensions such as MQ, but I don't think we want to by default (users can always enable them in ~/.hgrc). The merge behavior with this is: conflicts will add <<<===>>> markers, but will not launch an editor. It will print a message: warning: conflicts during merge. merging hello.txt failed! I think this is an acceptable default behavior, although it might make sense to have a hook or extension which won't allow you to commit unresolved merge markers.
Oh, can we add 'showfunc = 1' to the [diff] section too?!
Ok, this packages Mercurial and patches Mercurial.ini. Test installer available at the same URL as previously: http://people.mozilla.com/~tmielczarek/MozillaBuildSetup-hg.exe
Attachment #323921 - Attachment is obsolete: true
Attachment #324043 - Attachment is obsolete: true
Attachment #324318 - Flags: review?(benjamin)
Attachment #323921 - Flags: review?(benjamin)
Hmm, maybe also add some nice defaults and stuff? Here's some suggestions. [extensions] alias = mq = record = [defaults] log = -l10 qnew = -UD qrefresh = -D incoming = -n outgoing = -n [alias] rv = revert --no-backup qst = qseries -v
I hate to ring the me-too bell here, but please please please make the default diff arguments produce readable diffs. "diff = -U 8 -p" is what I have, "-p" is the critical part of that.
Attachment #324318 - Flags: review?(benjamin) → review+
Checked in with jst's suggested diff settings.
Status: ASSIGNED → RESOLVED
Closed: 18 years ago
Resolution: --- → FIXED
The mercurial.ini in MozillaBuild 1.3rc2 has "-p -U -8"; it should be "-p -U 8"
Thanks for catching that, I'll fix that and respin.
Product: mozilla.org → Firefox Build System
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: