Hi Marco,

See below.

On Fri, 7 Apr 2023, Marcos Cruz wrote:

Faheem Mitha escribió/skribis/wrote/scrit (2023-04-07T22:18:48+0530):

Yes, normally metaedit is intended to edit the existing commit message.
Hence it's natural to open an editor. What's the problem with that?

I'm converting my last Fossil repos to Mercurial.

The other day I had to fix the author of 287 commits that lacked email
because of an old unnoticed misconfiguration in the Fossil repo, which
has a GitHub mirror.

I wrote a simple shell loop in order to change all of the commits in a
single step… but I had to close the Neovim editor 287 times instead :)
(I did a pause to check the docs and do some tests, but it seemed clear
that there was no solution, so I finished the 287 manual non-editions…)

I've found a second repo with ca. 90 commits without user email, so I
prefered to ask, just in case.

What different behavior would you prefer?

I've used the `metaedit` and `evolve` commands before, to fix some old
wrong dates, and it worked great, it's impressive; but I never realized
this limitation because I had to change only a few commits.

The mandatory edition of the commit message makes it impossible to
automatize the fixing of dates or users when the commit message needs no
edition.

A possible solution would be to write a shell program to extract all of
the current messages and add them to `metaedit` with the `-m` option.

I think a flag option meaning "no message edition required", say `-M`,
would make `metaedit` more flexible without breaking the current default
behaviour.

If you just want to change the user or date of the commit, there are separate flags for that. Namely, -u, -U, -d, and -D.

Have you not looked at the help? See below.

Regards, Faheem Mitha

######################################################################

hg help metaedit.

hg metaedit [OPTION]... [[-r] REV]...

edit commit information

    Edits the commit information for the specified revisions. By default,
    edits commit information for the working directory parent.

With --fold, also folds multiple revisions into one if necessary. In this
    case, the given revisions must form a linear unbroken chain.

options ([+] can be repeated):

 -r --rev REV [+]  revision to edit
    --fold         also fold specified revisions into one
 -n --note TEXT    store a note on metaedit
 -m --message TEXT use text as commit message
 -l --logfile FILE read commit message from file
 -d --date DATE    record the specified date as commit date
 -u --user USER    record the specified user as committer
 -D --current-date record the current date as commit date
 -U --current-user record the current user as committer
    --mq           operate on patch repository

(some details hidden, use --verbose to show complete help)


--
Marcos Cruz
http://programandala.net
_______________________________________________
Evolve-testers mailing list
evolve-test...@lists.mercurial-scm.org
https://lists.mercurial-scm.org/mailman/listinfo/mercurial-evolve-testers

_______________________________________________
Evolve-testers mailing list
evolve-test...@lists.mercurial-scm.org
https://lists.mercurial-scm.org/mailman/listinfo/mercurial-evolve-testers

Reply via email to