user/dev discussion of public-inbox itself
 help / color / Atom feed
From: "Eric Wong (Contractor, The Linux Foundation)" <e@80x24.org>
To: meta@public-inbox.org
Subject: [PATCH 02/11] import: extract_author_info becomes extract_commit_info
Date: Sun,  9 Jun 2019 02:51:38 +0000
Message-ID: <20190609025147.24966-3-e@80x24.org> (raw)
In-Reply-To: <20190609025147.24966-1-e@80x24.org>

We will be reusing the same logic for extracting all
the authorship and commit title logic for edits; so
put it all into one sub.
---
 lib/PublicInbox/Import.pm | 32 +++++++++++++++-----------------
 1 file changed, 15 insertions(+), 17 deletions(-)

diff --git a/lib/PublicInbox/Import.pm b/lib/PublicInbox/Import.pm
index 2c4bad9..6ee1935 100644
--- a/lib/PublicInbox/Import.pm
+++ b/lib/PublicInbox/Import.pm
@@ -277,7 +277,7 @@ sub git_timestamp {
 	"$ts $zone";
 }
 
-sub extract_author_info ($) {
+sub extract_cmt_info ($) {
 	my ($mime) = @_;
 
 	my $sender = '';
@@ -314,7 +314,17 @@ sub extract_author_info ($) {
 		$name = '';
 		warn "no name in From: $from or Sender: $sender\n";
 	}
-	($name, $email);
+
+	my $hdr = $mime->header_obj;
+
+	my $subject = $hdr->header('Subject');
+	$subject = '(no subject)' unless defined $subject;
+	# Mime decoding can create nulls replace them with spaces to protect git
+	$subject =~ tr/\0/ /;
+	utf8::encode($subject);
+	my $at = git_timestamp(my @at = msg_datestamp($hdr));
+	my $ct = git_timestamp(my @ct = msg_timestamp($hdr));
+	($name, $email, $at, $ct, $subject);
 }
 
 # kill potentially confusing/misleading headers
@@ -361,19 +371,7 @@ sub clean_tree_v2 ($$$) {
 sub add {
 	my ($self, $mime, $check_cb) = @_; # mime = Email::MIME
 
-	my ($name, $email) = extract_author_info($mime);
-	my $hdr = $mime->header_obj;
-	my @at = msg_datestamp($hdr);
-	my @ct = msg_timestamp($hdr);
-	my $author_time_raw = git_timestamp(@at);
-	my $commit_time_raw = git_timestamp(@ct);
-
-	my $subject = $mime->header('Subject');
-	$subject = '(no subject)' unless defined $subject;
-	# Mime decoding can create nulls replace them with spaces to protect git
-	$subject =~ tr/\0/ /;
-	utf8::encode($subject);
-
+	my ($name, $email, $at, $ct, $subject) = extract_cmt_info($mime);
 	my $path_type = $self->{path_type};
 	my $path;
 	if ($path_type eq '2/38') {
@@ -416,8 +414,8 @@ sub add {
 	}
 
 	print $w "commit $ref\nmark :$commit\n",
-		"author $name <$email> $author_time_raw\n",
-		"committer $self->{ident} $commit_time_raw\n" or wfail;
+		"author $name <$email> $at\n",
+		"committer $self->{ident} $ct\n" or wfail;
 	print $w "data ", (length($subject) + 1), "\n",
 		$subject, "\n\n" or wfail;
 	if ($tip ne '') {
-- 
EW


  parent reply index

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-06-09  2:51 [PATCH 00/11] v2: implement message editing Eric Wong (Contractor, The Linux Foundation)
2019-06-09  2:51 ` [PATCH 01/11] v2writable: consolidate overview and indexing call Eric Wong (Contractor, The Linux Foundation)
2019-06-09  2:51 ` Eric Wong (Contractor, The Linux Foundation) [this message]
2019-06-09  2:51 ` [PATCH 03/11] import: switch to "replace_oids" interface for purge Eric Wong (Contractor, The Linux Foundation)
2019-06-09  2:51 ` [PATCH 04/11] v2writable: implement ->replace call Eric Wong (Contractor, The Linux Foundation)
2019-06-09  2:51 ` [PATCH 05/11] admin: remove warning arg for unconfigured inboxes Eric Wong (Contractor, The Linux Foundation)
2019-06-09  2:51 ` [PATCH 06/11] purge: start moving common options to AdminEdit module Eric Wong (Contractor, The Linux Foundation)
2019-06-09  2:51 ` [PATCH 07/11] admin: beef up resolve_inboxes to handle purge options Eric Wong (Contractor, The Linux Foundation)
2019-06-09  2:51 ` [PATCH 08/11] AdminEdit: move editability checks from -purge Eric Wong (Contractor, The Linux Foundation)
2019-06-09  2:51 ` [PATCH 09/11] admin: expose ->config Eric Wong (Contractor, The Linux Foundation)
2019-06-09  2:51 ` [PATCH 10/11] doc: document the --prune option for -index Eric Wong (Contractor, The Linux Foundation)
2019-06-09  2:51 ` [PATCH 11/11] edit: new tool to perform edits Eric Wong (Contractor, The Linux Foundation)
2019-06-10 16:06   ` Konstantin Ryabitsev
2019-06-10 18:02     ` Eric Wong
2019-06-13  8:07     ` Eric Wong
2019-06-10 15:06 ` [PATCH 00/11] v2: implement message editing Konstantin Ryabitsev
2019-06-10 15:40   ` Eric Wong
2019-06-10 17:56     ` [PATCH 12/11] edit|purge: improve output on rewrites Eric Wong
2019-06-10 18:57     ` [PATCH 00/11] v2: implement message editing Konstantin Ryabitsev
2019-06-10 19:29       ` Eric Wong
2019-06-10 19:40         ` Konstantin Ryabitsev
2019-06-10 22:03           ` [WIP] v2writable: support INBOX_DEBUG=replace Eric Wong
2019-06-10 22:13             ` Konstantin Ryabitsev
2019-06-10 23:12               ` [WIP] add more debug tracing around idx_init Eric Wong
2019-06-11 15:33                 ` Konstantin Ryabitsev
2019-06-11 18:43             ` [WIP] v2writable: support INBOX_DEBUG=replace Eric Wong
2019-06-11 21:06       ` [PATCH 00/11] v2: implement message editing Konstantin Ryabitsev
2019-06-12  0:18         ` [PATCH] searchidx: improve error message when Xapian fails Eric Wong
2019-06-10 18:17 ` [PATCH 13/11] edit: drop unwanted headers before noop check Eric Wong (Contractor, The Linux Foundation)
2019-06-10 21:58 ` [PATCH 14/11] v2writable: replace: kill git processes before reindexing Eric Wong (Contractor, The Linux Foundation)
2019-06-12  0:25 ` [PATCH 15/11] edit: unlink temporary file when done Eric Wong (Contractor, The Linux Foundation)

Reply instructions:

You may reply publically to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://public-inbox.org/README

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190609025147.24966-3-e@80x24.org \
    --to=e@80x24.org \
    --cc=meta@public-inbox.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

user/dev discussion of public-inbox itself

Archives are clonable:
	git clone --mirror http://public-inbox.org/meta
	git clone --mirror http://czquwvybam4bgbro.onion/meta
	git clone --mirror http://hjrcffqmbrq6wope.onion/meta
	git clone --mirror http://ou63pmih66umazou.onion/meta

Example config snippet for mirrors

Newsgroups are available over NNTP:
	nntp://news.public-inbox.org/inbox.comp.mail.public-inbox.meta
	nntp://ou63pmih66umazou.onion/inbox.comp.mail.public-inbox.meta
	nntp://czquwvybam4bgbro.onion/inbox.comp.mail.public-inbox.meta
	nntp://hjrcffqmbrq6wope.onion/inbox.comp.mail.public-inbox.meta
	nntp://news.gmane.org/gmane.mail.public-inbox.general

 note: .onion URLs require Tor: https://www.torproject.org/

AGPL code for this site: git clone https://public-inbox.org/ public-inbox