[PATCH 3 of 3] debugbuilddag: build a changelog dag from a concise description

Peter Arrenbrecht peter.arrenbrecht at gmail.com
Fri Feb 12 00:20:22 CST 2010

On Thu, Feb 11, 2010 at 11:35 PM, Matt Mackall <mpm at selenic.com> wrote:
> On Thu, 2010-02-11 at 23:02 +0100, Peter Arrenbrecht wrote:
>> # HG changeset patch
>> # User Peter Arrenbrecht <peter.arrenbrecht at gmail.com>
>> # Date 1265925643 -3600
>> debugbuilddag: build a changelog dag from a concise description
>> Useful in tests to quickly build a complex DAG in an empty repo.
>> Handles local tags and named branches.
>> Options to, at each rev,
>>  - create a new file,
>>  - overwrite the same file,
>>  - append to the same file,
>>  - write to a specific line in a mergeable file.
>> Can run shell commands during DAG buildup.
> Ideally, I'd like a version that runs with no args.

Hmm. I'll have to handle empty commits and merges then, somehow. I can
see the following options:

 * disallow ! commands and use pure in-memory operations,
 * status before each commit to determine if I can use in-memory ops
or not for this commit,
 * implement commit --force and merge --force for non-fastforward merges.

The latter was actually a topic at the sprint where dsop wanted them
for a particular workflow (mandatory feature branches) with bookmarks
instead of named branches.


> The -a variant broke
> for me.

What DAG description did you use?

>> +    if not (mergeable_file or appended_file or overwritten_file or new_file):
>> +        raise Exception(_('need at least one of -m, -a, -o, -n'))
> util.Abort, please.


> Also, several new check-code complaints from this code.

Ah, have to get used to that thing.


More information about the Mercurial-devel mailing list