[Scons-dev] HG questions

anatoly techtonik techtonik at gmail.com
Wed Jul 23 15:03:13 EDT 2014


On Mon, Jul 14, 2014 at 11:40 PM, Mark A. Flacy <mflacy at verizon.net> wrote:
> On Monday, July 14, 2014 11:12:53 PM anatoly techtonik wrote:
>> On Mon, Jul 14, 2014 at 2:16 AM, Mark A. Flacy <mflacy at verizon.net> wrote:
>> > On Sunday, July 13, 2014 06:50:51 PM William Blevins wrote:
>> >> What is the convention for working on multiple discrete items?
>>
>> I use Mercurial Queues and recently even been told about 'hg qq' command
>> that allows to maintain multiple patch queues in parallel.
>
> Yeah, but the queues don't travel between clones unless you make the queue
> directory a repository.  And then you have to pull/push the queue directory in
> addition to the repo to which they belong.
>
> At least that's how it worked when I used it.

Right. Without MQ you can enable Mercurial to share your draft changesets, and
use ChangesetEvolution extension. Evolution allows you to squash, rebase and
edit stuff preserving all history of operation and marking old
revisions as obsolete.
Also, when you push final revisions upstream, obsolete revisions will not be
shared. For tracking I would use bookmarks for small changes and named
branches for big orthogonal features.

>> >> The DevelWiki says that I need permission to make branches, but without
>> >> them I don't understand how I can make disjoint pull requests.
>> >
>> > Normally, you want to use a bookmark.
>> >
>> > http://www.scons.org/wiki/SconsMercurialWorkflows#Working_on_several_.22br
>> > anches.22_at_once
>> >
>> > Mercurial branches (i.e., something created by "hg branch <name>") are
>> > really, really weird.  That command (essentially) tags a group of
>> > changesets (not even related changesets) with a global attribute.
>>
>> Nothing weird. It marks changesets as belonging to a branch. This is made to
>> preserve history of a feature development. Correct me if I wrong, but in
>> Git the branch information is lost once the commit is merged. So  if there
>> are many branches merged at the same time - it would be really hard to
>> untangle this, no?
>
> You can use the hg branch command to mark totally unrelated changesets in a
> repository as belonging to the same branch.  IMO, that makes it weird.

Does "unrelated" means with no common parent? I don't know - never practiced
such scenario. Have you tried it?

You can have multiple heads with the same branch name - that's true. It
helps multiple people work on the same branch in parallel and preserve
history.

> As much as I hate things about Git (like the totally idiotic UI), unless you
> explicitly delete the branch tag, it sticks around.  However, Git views a
> branch tag as belonging to a specific repository not as a global name.

Sounds like Mercurial bookmark.

> IIRC (and I may not), I believe that a given hg changeset can belong to only
> one branch.  If that is the case, it appears to me that you would have a
> similar untangle problem with hg as you indicate that you would with git.

If commit is made to named branch, you can't erase branch name from it.
The untangle problem will be if you use bookmarks.
-- 
anatoly t.


More information about the Scons-dev mailing list