Go to file
Junio C Hamano fa82cf43b1 Meta/post-applypatch: don't contaminate amlog with useless "reverse mapping"
The notes/amlog database is used to annotate individual commits that
result from "git am" application.  A note is attached to the commit
object and record s the Message-ID of the incoming e-mailed patch
that resulted in the commit, so "git show --notes=amlog" would
easily show where the commit came from.  The rewrite-hook mechanism
can be used to maintain the notes across rebasing and amending (but
cherry-pick does not preserve the note by design---the maintainer
has to be careful to avoid using cherry-pick).  One message can and
does result in multiple commits, and the mapping worked naturally in
this direction.

Originally it felt like a good idea to create a blob object that has
a Message-ID in it, and annotate the blob object with a note message
that has the name of the commit object that results by running "git
am" on the message, and mix such records in the notes database.
When you have a message, from the Message-ID, you can manufacture a
blob that has the Message-ID in it and ask the notes database about
the note attached to it, effectively giving you a reverse mapping.

This was ugly, unnecessary and unworkable at the same time.

 - These blobs with message-ID in them are not anchored by any ref;
   the reverse mapping entries in the notes tree were subject to be
   gc'ed any time.

 - "git grep -e '<message-id>' notes/amlog" essentially gives a
   mechanism that is quick enough to find what commits resulted from
   a message.

 - There is no machinery that helps these reverse mapping notes to
   be maintained across rebases and amends.  Because a single "git
   am" session is often far from enough for an e-mailed patch, these
   "reverse" entries that were created upon the first application
   quickly became stale pointing at commits that have been amended
   away.  There often are more than one commit that result from the
   same message on topic branches while the right base is being
   selected, so "the last one wins" rule, if it were even possible
   to implement, wouldn't have been sufficient.

Since grepping for the Message-ID in the notes database, i.e.  using
the forward mapping, gives an access to the necessary piece of
information reliably and quicly enough, let's retire the failed
attempt to throw reverse mapping entries in to the "amlog" notes.
2020-12-21 15:58:44 -08:00
info Add Meta information. 2005-11-05 10:58:46 -08:00
.gitattributes What's cooking (2008/06 #01) 2010-01-04 23:50:58 -08:00
.gitignore AT: automated test loop 2008-04-08 22:21:12 -07:00
AT AT: automated test loop 2008-04-08 22:21:12 -07:00
Announce Meta: prepare to use alternate name for the primary branch 2020-07-22 21:38:21 -07:00
CB Meta/CB: help culling stale topic branches 2016-04-20 14:43:53 -07:00
CheckPush Meta: prepare to use alternate name for the primary branch 2020-07-22 21:38:21 -07:00
Checklist.txt Checklist.txt: release notes are in a subdirectory of Doc these days 2011-04-25 12:42:53 -07:00
DoKernelOrg DoKernelOrg: add --clean-stage 2011-06-22 17:14:33 -07:00
Doit Meta/Doit: not so aggressively 2020-10-19 10:08:42 -07:00
Dothem Meta/Dothem: use sparse 2020-11-02 17:59:14 -08:00
GRADUATED Meta/GRADUATED: exclude topics whose fork-points are on master 2013-02-01 14:04:52 -08:00
Gitweb Gitweb: remove blame.js -- that's long gone. 2008-04-08 22:08:01 -07:00
KO Meta: prepare to use alternate name for the primary branch 2020-07-22 21:38:21 -07:00
Linus Meta/Linus: blame not just Linus's initial version but any version 2013-03-13 13:20:17 -07:00
ML Meta: prepare to use alternate name for the primary branch 2020-07-22 21:38:21 -07:00
MaintNotes MaintNotes: use https:// instead of git:// when possible 2020-12-01 13:23:40 -08:00
Make Meta: prepare to use alternate name for the primary branch 2020-07-22 21:38:21 -07:00
ProjectContact Remove info@lwn.net from projectcontact list 2010-03-22 11:15:33 -07:00
RB Rewrite 'git-foo' => 'git foo' 2007-12-14 22:43:05 -08:00
README.cooking What's cooking (2008/06 #01) 2010-01-04 23:50:58 -08:00
RP Rewrite 'git-foo' => 'git foo' 2007-12-14 22:43:05 -08:00
Reintegrate Reintegrate: check coccicheck-pending, too 2019-03-01 07:28:15 +09:00
RelBuild Meta/RelBuild: futz with perms and owners in the tar archive 2020-10-06 13:12:58 -07:00
RelClean Meta/Rel{Build,Upload,Clean}: use kup to upload to k.org 2013-05-24 14:11:39 -07:00
RelSign Meta/RelSign: adjust to GnuPG v2 2017-12-06 12:23:17 -08:00
RelStat RelStat (draft) 2013-03-13 13:00:59 -07:00
RelUpload Meta/RelUpload: adjust to kup migration 2017-05-16 13:29:08 +09:00
Release Point MAN_BASE_URL to git-htmldocs/ for now 2012-04-06 11:32:24 -07:00
SE Meta/SE: drop hardcoded to: address 2013-02-25 07:20:26 -08:00
SR Meta/SR: check maintenance tracks 2012-04-26 13:37:12 -07:00
Summary Summary: use reflog 2009-01-23 10:50:03 -08:00
TODO Meta/TODO: remove an stale item on diff --cc 2012-03-01 15:09:15 -08:00
UWC WIP: slight updates to What's cooking script 2008-11-05 17:03:43 -08:00
V Meta: rename 'pu' to 'seen' 2020-06-22 17:20:27 -07:00
WC What's in/cooking updates 2008-12-02 22:55:44 -08:00
WCBCC Meta: prepare to use alternate name for the primary branch 2020-07-22 21:38:21 -07:00
WI What's in/cooking updates 2008-12-02 22:55:44 -08:00
add-by Meta/add-by: add them even to a message without any sign-off 2013-01-22 14:42:22 -08:00
amlook Meta/amlook: report the objects as well as integrated branches 2020-10-19 10:08:21 -07:00
candidates candidates: some topics have capital letters in their names 2010-12-08 15:35:41 -08:00
check-topic-merges A bit more commenting and cleaning up. 2006-05-09 13:01:11 -07:00
compare-cooking.perl Ignore sigpipe in external diff driver 2010-04-12 14:30:59 -07:00
cook cook: add https://gitlab.com/git-vcs/git as another mirror 2020-12-01 13:22:41 -08:00
count-contributors.sh Script to count contributors and commits per development cycle 2010-02-02 23:12:24 -08:00
docbuild-8.sh Meta/docbuild-8: make it easier to compare AsciiDoc 7 and 8 output 2007-07-24 21:33:17 -07:00
dodoc.sh Meta/Make, Meta/dodoc: enable BOLD_LITERAL 2016-05-26 14:31:46 -07:00
genMaintNotes.perl Meta/genMaintNotes.perl: drop link to image at k.org 2011-10-04 19:31:46 -07:00
git-topic.perl Meta: rename 'pu' to 'seen' 2020-06-22 17:20:27 -07:00
jc.png Snapshot 2006-05-04 2006-05-04 16:01:16 -07:00
people DoKernelOrg: Update for FC13 2010-12-08 15:33:59 -08:00
post-applypatch Meta/post-applypatch: don't contaminate amlog with useless "reverse mapping" 2020-12-21 15:58:44 -08:00
pre-applypatch Meta: rename 'pu' to 'seen' 2020-06-22 17:20:27 -07:00
pushall Meta/pushall: catch attempts to push only 'next' branch to special case, too 2017-10-18 11:57:53 +09:00
taboo.perl taboo: taboo script update 2008-07-05 22:10:40 -07:00
whats-cooking.txt What's cooking (2020/12 #03) 2020-12-18 17:24:34 -08:00
worklog Meta/Make: update test skipping logic 2011-05-30 13:43:28 -07:00

README.cooking

The compare-cooking.perl script is meant to help viewing the differences
between periodical "What's cooking" messages, and can be used as an
external diff driver by:

    $ git config diff.whatscooking.command ./compare-cooking.perl

to produce this section in your .git/config

    [diff "whatscooking"]
	command = ./compare-cooking.perl

You can use e.g.

    $ git log -p --ext-diff whats-cooking.txt
    $ git show --ext-diff whats-cooking.txt

to review the history.