From: Eric Wong (Contractor, The Linux Foundation) <e@80x24.org>
Date: Mon, 19 Mar 2018 08:14:42 +0000 (+0000)
Subject: import: (v2): write deletes to a separate '_' subdirectory
X-Git-Tag: v1.1.0-pre1~160
X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=bafd4084d8e78ef48205e6ce573f1bbe52a669a8;p=public-inbox.git

import: (v2): write deletes to a separate '_' subdirectory

In the future, we may store "purged" content IDs or other
uncommon stuff under "_/" of the git tree.  This keeps the
top-level tree small and more amenable to deltafication.
This helps the the common case where "m" is most commonly
changed file at the top level.

Also, use 'D' instead of 'd' since it matches git's '--raw'
output format.
---

diff --git a/lib/PublicInbox/Import.pm b/lib/PublicInbox/Import.pm
index 94a49fe6..6a640e23 100644
--- a/lib/PublicInbox/Import.pm
+++ b/lib/PublicInbox/Import.pm
@@ -208,7 +208,7 @@ sub remove {
 	if (defined $path) {
 		print $w "D $path\n\n" or wfail;
 	} else {
-		print $w "M 100644 :$blob d\n\n" or wfail;
+		print $w "M 100644 :$blob _/D\n\n" or wfail;
 	}
 	$self->{nchg}++;
 	(($self->{tip} = ":$commit"), $cur);
diff --git a/t/v2writable.t b/t/v2writable.t
index a5c982e9..c6bcefd4 100644
--- a/t/v2writable.t
+++ b/t/v2writable.t
@@ -210,7 +210,7 @@ EOF
 	is(scalar(@found), 0, 'no longer found in Xapian skeleton');
 
 	my $after = $git0->qx(qw(log -1 --pretty=raw --raw -r --no-abbrev));
-	if ($after =~ m!( [a-f0-9]+ )A\td$!) {
+	if ($after =~ m!( [a-f0-9]+ )A\t_/D$!) {
 		my $oid = $1;
 		ok(index($before, $oid) > 0, 'no new blob introduced');
 	} else {