Bazaar Mercurial Plugin to access BitBucket
Martin Geisler
mg at lazybytes.net
Tue Oct 25 15:36:01 UTC 2011
Barry Warsaw <barry at canonical.com> writes:
> On Oct 25, 2011, at 04:26 PM, Stephen J. Turnbull wrote:
>
>> And of course as a technical matter git requires colocated branches
>> for diff'ing and merge'ing, but that's an occasional annoyance to me,
>> not a feature I explicitly use.
>
> Doesn't hg also require that. I could be totally wrong here, but I seem to
> remember that I could not hg diff between clone-per-directory.
No, you're right -- diff is a local operation. There is an rdiff
extension for remote diffs, but I've never tried it:
http://mercurial.selenic.com/wiki/RdiffExtension
> Right. It's a structure I mostly manage by having one directory-per-branch
> nailed to the major version's head. Then I have a clone of cpython, which is
> where I'll `hg pull -u` when starting new work. If I have to hack on a
> particular version, I cd to that directory, hg pull -u it in and start. Where
> things get icky is the need to go back to the cpython clone, pull in the
> changes and then merge them.
I don't think you need that complete cpython clone. If you have a clones
for 2.6 and 2.7, then you can do
$ cd 2.6
$ ... fix some bug
$ hg commit
$ hg push
pushing to hg.python.org ...
$ cd ../2.7
$ hg pull ../2.6
$ hg merge 2.6
It is not important where the merge is done -- nobody can tell which
clone you used after the fact.
> I personally believe that using a Bazaar shared repo is the only way
> to go. OTOH, that might not even help with a project the size of the
> kernel or OOo.
If I understand the terminology correctly, then a "shared repo" in
Bazaar is a container for revisions -- shared by several "branches"?
That is close to what you get by default with Mercurial, except that
$ hg clone http://hg-project.example.com/foo.stable/
$ hg clone http://hg-project.example.com/foo.dev/
will make you download things twice. To save bandwidth you can do:
$ hg clone http://hg-project.example.com/foo.stable/
$ hg clone foo.stable foo.dev
$ cd foo.dev
$ hg pull http://hg-project.example.com/foo.dev/
There is also an extension called share that makes Mercurial behave as
if there is a symlink between the .hg folders. That let's you commit in
the foo.stable clone and directly see the changeset in foo.dev (without
any push/pull between the two repositories).
--
Martin Geisler
Mercurial links: http://mercurial.ch/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: not available
URL: <https://lists.ubuntu.com/archives/bazaar/attachments/20111025/9d13fdae/attachment.pgp>
More information about the bazaar
mailing list