=head1 NAME public-inbox-edit - destructively edit messages in a public inbox =head1 SYNOPSIS public-inbox-edit -m MESSAGE-ID --all|INBOX_DIR public-inbox-edit -F RAW_FILE --all|INBOX_DIR [.. INBOX_DIR] =head1 DESCRIPTION public-inbox-edit allows editing messages in a given inbox to remove sensitive information. It is only intended as a last resort, as it will cause discontiguous git history and draw more attention to the sensitive data in mirrors. =head1 OPTIONS =over =item --all Edit the message in all inboxes configured in ~/.public-inbox/config. This is an alternative to specifying individual inboxes directories on the command-line. =item -m MESSAGE-ID Edits the message corresponding to the given C. If the C is ambiguous, C<--force> or using the C<--file> of the original will be required. =item -F FILE Edits the message corresponding to the Message-ID: header and content given in C. This requires the unmodified raw message, and the contents of C will not itself be modified. This is useful if a Message-ID is ambiguous due to filtering/munging rules or other edits. =item --force Forcibly perform the edit even if Message-ID is ambiguous. =item --raw Do not perform "From " line escaping. By default, this generates a mboxrd variant file to detect unpurged messages in the new mbox. This makes sense if your configured C is a regular editor and not something like C =back =head1 CONFIGURATION =over 8 =item publicinbox.mailEditor The command to perform the edit with. An example of this would be C, and the user would then use the facilities in L to edit the mail. This is useful for editing attachments or Base64-encoded emails which are more difficult to edit with a normal editor (configured via C, C or C). Default: none =back =head1 ENVIRONMENT =over 8 =item GIT_EDITOR / VISUAL / EDITOR =for comment MAIL_EDITOR is undocumented (unstable, don't want naming conflicts) public-inbox-edit will fall back to using one of these variables (in that order) if C is unset. =item PI_CONFIG The default config file, normally "~/.public-inbox/config". See L =back =head1 LIMITATIONS Only L repositories are supported. This is safe to run while normal inbox writing tools (L, L, L) are active. Running this in parallel with L or C<"public-inbox-index --reindex"> can lead to errors or edited data remaining indexed. Incremental L (without C<--reindex>) is fine. Keep in mind this is a last resort, as it will be disruptive to anyone using L to mirror the inbox being edited. =head1 CONTACT Feedback welcome via plain-text mail to L The mail archives are hosted at L and L =head1 COPYRIGHT Copyright 2019-2021 all contributors L License: AGPL-3.0+ L =head1 SEE ALSO L