From: Jonathan Nieder <jrnieder@gmail.com>
To: vcs-fast-import-devs@lists.launchpad.net
Cc: Johan Herland <johan@herland.net>,
git@vger.kernel.org, gitster@pobox.com,
Johannes.Schindelin@gmx.de, trast@student.ethz.ch,
tavestbo@trolltech.com, git@drmicha.warpmail.net,
chriscool@tuxfamily.org, spearce@spearce.org, sam@vilain.net
Subject: [RFC] fast-import: notemodify (N) command
Date: Mon, 31 Jan 2011 12:33:50 -0600 [thread overview]
Message-ID: <20110131183350.GB31826@burratino> (raw)
In-Reply-To: <1255083738-23263-8-git-send-email-johan@herland.net>
Dear fast importers,
Another week, another fast-import protocol extension.
Most DVCSes do not allow one to non-disruptively change the log
message for a commit. But sometimes people want to attach information to a
commit after the fact:
- whether it was tested and worked correctly
- who liked or disliked the commit (Acked-by, Reviewed-by)
- corresponding revision number after export to another version
control system
- bug number
- corresponding compiled binary
The N command allows such notes to be attached to commits, like so:
1. first the commit is imported as usual (let's say it's ":1").
2. commit annotations are added separately, like so:
commit refs/notes/commits
committer A. U. Thor <author@example.com> Mon, 31 Jan 2011 12:15:59 -0600
data <<END
Notes after review.
END
N inline :1
data <<END
Acked-by: me
END
Details:
- there can be multiple categories of notes: "refs/notes/commits"
contains ordinary addenda to the commit message, but one might also
see refs/notes/bugzilla, refs/notes/svn-commit, and so on.
- each commit gets at most one blob of notes in each category. Later
notemodify (N) commands overwrite the effect from earlier ones.
- the syntax of a notemodify command is as follows:
'N' sp <dataref> sp <committish> lf
The <dataref> represents a blob with the annotations to be used
("inline" is allowed, too, just like with filemodify). The
<committish> can be any expression allowed in a 'from' command
(branch name, mark reference :<idnum>, other commit name) and
represents the commit that is to be annotated.
- this has been supported in git since v1.6.6. There is no
"feature" for it --- I don't think the feature declaration
facility existed yet.
Do other DVCSes support something like this? Should it get a
feature name?
Jonathan
next prev parent reply other threads:[~2011-01-31 18:34 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-10-09 10:21 [RFC/PATCHv7 00/22] git notes Johan Herland
2009-10-09 10:21 ` Johan Herland
2009-10-09 10:32 ` Johan Herland
2009-10-09 10:21 ` [RFC/PATCHv7 01/22] Introduce commit notes Johan Herland
2009-10-09 10:21 ` [RFC/PATCHv7 02/22] Add a script to edit/inspect notes Johan Herland
2009-10-09 10:21 ` [RFC/PATCHv7 03/22] Speed up git notes lookup Johan Herland
2009-10-09 10:22 ` [RFC/PATCHv7 04/22] Add an expensive test for git-notes Johan Herland
2009-10-09 10:22 ` [RFC/PATCHv7 05/22] Teach "-m <msg>" and "-F <file>" to "git notes edit" Johan Herland
2009-10-09 10:22 ` [RFC/PATCHv7 06/22] fast-import: Add support for importing commit notes Johan Herland
2011-01-31 18:33 ` Jonathan Nieder [this message]
2011-01-31 18:48 ` [Vcs-fast-import-devs] [RFC] fast-import: notemodify (N) command Sverre Rabbelier
2011-01-31 19:01 ` Jonathan Nieder
2011-01-31 21:19 ` Sverre Rabbelier
2011-01-31 22:37 ` Sam Vilain
2011-02-01 0:13 ` Sverre Rabbelier
2009-10-09 10:22 ` [RFC/PATCHv7 07/22] t3302-notes-index-expensive: Speed up create_repo() Johan Herland
2009-10-09 10:22 ` [RFC/PATCHv7 08/22] Add flags to get_commit_notes() to control the format of the note string Johan Herland
2009-10-09 10:22 ` [RFC/PATCHv7 09/22] Add '%N'-format for pretty-printing commit notes Johan Herland
2009-10-09 10:22 ` [RFC/PATCHv7 10/22] Teach notes code to free its internal data structures on request Johan Herland
2009-10-09 10:22 ` [RFC/PATCHv7 11/22] Teach the notes lookup code to parse notes trees with various fanout schemes Johan Herland
2009-10-09 10:22 ` [RFC/PATCHv7 12/22] Add selftests verifying that we can parse notes trees with various fanouts Johan Herland
2009-10-09 10:22 ` [RFC/PATCHv7 13/22] Refactor notes code to concatenate multiple notes annotating the same object Johan Herland
2009-10-09 10:22 ` [RFC/PATCHv7 14/22] Add selftests verifying concatenation of multiple notes for the same commit Johan Herland
2009-10-09 10:22 ` [RFC/PATCHv7 15/22] Notes API: get_commit_notes() -> format_note() + remove the commit restriction Johan Herland
2009-10-09 10:22 ` [RFC/PATCHv7 16/22] Notes API: init_notes(): Initialize the notes tree from the given notes ref Johan Herland
2009-10-09 10:22 ` [RFC/PATCHv7 17/22] Notes API: add_note(): Add note objects to the internal notes tree structure Johan Herland
2009-10-09 10:22 ` [RFC/PATCHv7 18/22] Notes API: get_note(): Return the note annotating the given object Johan Herland
2009-10-09 10:22 ` [RFC/PATCHv7 19/22] Notes API: for_each_note(): Traverse the entire notes tree with a callback Johan Herland
2009-10-09 10:22 ` [RFC/PATCHv7 20/22] Notes API: Allow multiple concurrent notes trees with new struct notes_tree Johan Herland
2009-10-09 10:22 ` [RFC/PATCHv7 21/22] Refactor notes concatenation into a flexible interface for combining notes Johan Herland
2009-10-09 10:22 ` [RFC/PATCHv7 22/22] fast-import: Proper notes tree manipulation using the notes API Johan Herland
2009-10-09 14:25 ` Shawn O. Pearce
2009-11-20 1:43 ` Johan Herland
Reply instructions:
You may reply publicly 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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20110131183350.GB31826@burratino \
--to=jrnieder@gmail.com \
--cc=Johannes.Schindelin@gmx.de \
--cc=chriscool@tuxfamily.org \
--cc=git@drmicha.warpmail.net \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=johan@herland.net \
--cc=sam@vilain.net \
--cc=spearce@spearce.org \
--cc=tavestbo@trolltech.com \
--cc=trast@student.ethz.ch \
--cc=vcs-fast-import-devs@lists.launchpad.net \
/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
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).