Hit me with the mercurial clue bat...
Kelly O'Hair
Kelly.Ohair at Sun.COM
Mon Oct 13 11:03:54 PDT 2008
Greg Lewis wrote:
> On Thu, Oct 09, 2008 at 09:17:41AM -0700, Kelly O'Hair wrote:
>> A few helpful bits of info...
>
> Thanks Kelly, these were indeed very helpful :). I'm still working my
> way through some of the finer details but I'm now up and running at least
> in terms of checking changes and pushing them out.
>
>> * Even though http://hg.openjdk.java.net/cvmi/cvmi/ is a Mercurial forest
>> each repository inside that forest, and in your own forest clone has it's
>> own .hg/hgrc file and it's own private repository settings.
>> The .hg/hgrc file at the top of the forest does not have any influence
>> on the .hg/hgrc file in the other repositories.
>> A forest is a very loose confederation of repositories, doing a
>> fclone-or-fpull-or-fpush is just an easy way of doing:
>> foreach i in ( `find . -name .hg` )
>> ( cd ${i}/.. && hg clone-or-pull-or-push )
>> done
>> So doing an 'fpush' is no different that doing a push in each of the
>> repositories where you made changes.
>
> So, to update the bsd-port forest I would do something like this:
>
> hg fpull http://hg.openjdk.java.net/cvmi/cvmi/
> [is that the main forest?]
> hg fupdate
> [merging, fixing any problems this causes]
> hg ci
> [in each repository]
> hg fpush
> [would go to the default tree in .hg/hgrc which is the bsd-port tree]
>
> Or thats what it seems like to me :).
I don 't know exactly how your cvmi area has been setup.
The openjdk areas I use need a different push path than the default pull
path, e.g. I pull from the http:// path but push into a ssh://ohair@... path.
>
>> If you only make changes in say the 'hotspot' repository, all you really
>> need is that one repository, and no forest commands. But pushing changes
>> into any repository without making sure the entire forest builds might
>> not be very co-worker friendly. ;^)
>
> Well, I always make sure it builds on my current platform at least :).
> Detecting breakage for the other *BSDs is currently a little difficult, but
> that doesn't happen that often for the most part.
Detecting build breakage on systems you don't have is a bit tricky. ;^)
>
>> * The .hg/hgrc file on each repository typically contains a [paths] section
>> which defines the "default" path to the parent repository, usually the
>> path to the repository used to create the initial clone.
>> This .hg/hgrc file is NOT part of the permanent repository data and
>> you can edit it. See http://www.selenic.com/mercurial/hgrc.5.html.
>> You can have a "default-push" [paths] setting too, so that pulls by default
>> come from one place and push by default goes to another.
>> Or you can provide the path or the name of a path defined in [paths] to
>> the actual 'hg pull' or 'hg push' commands. Lots of choices here.
>
> Cool, so I can define a paths entry for the main forest to avoid having to
> remember it :).
Yes, definitely setup your default-push, it's very handy.
-kto
>
>> Andrew John Hughes wrote:
>>> 2008/10/9 Greg Lewis <glewis at eyesbeyond.com>:
>>>> G'day all,
>>>>
>>>> Okay, I've made some changes to get things working on my FreeBSD 7 box
>>>> (since X isn't installed in /usr/X11R6 and it postdates the compat
>>>> symlinks that were originally being made). I've committed them locally
>>>> and now want to push them out.
>>>>
>>>> I assume I use fpush as per the pushing portion of section 7 of
>>>> http://www.selenic.com/mercurial/wiki/index.cgi/ForestExtension ?
>>>> Bonus points if you can provide exact commands and/or explain what
>>>> the 'default' parameter is in the fpush command.
>>>>
>>>> Also I want to start catching up the BSD port to the changes happening
>>>> in the mainstream port before we get too far behind, so any hints on that
>>>> would be appreciated.
>>>>
>>>> cvs, p4, svn and now hg -- too many commands to remember!
>>>>
>>>> --
>>>> Greg Lewis Email : glewis at eyesbeyond.com
>>>> Eyes Beyond Web : http://www.eyesbeyond.com
>>>> Information Technology FreeBSD : glewis at FreeBSD.org
>>>>
>>>>
>>> I assume it uses the same default as standard push which is specified
>>> by paths.default in .hg/hgrc. A clone will create a copy of this file in the
>>> root of the checkout with the path cloned as the default e.g.:
>>>
>>> $ cat .hg/hgrc
>>> [paths]
>>> default = http://hg.openjdk.java.net/cvmi/cvmi/
>>>
>
More information about the bsd-port-dev
mailing list