{"thread":{"id":"13711","subject":"cherry picking changesets instead of commits","startedAt":"2008-05-28T18:06:10Z","lastAt":"2008-05-29T00:12:17Z","messageCount":13,"participants":["Geoffrey Irving","Junio C Hamano","Jeff King"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"77961","messageId":"7f9d599f0805281106w746a0469u6c483d64cf75b823@mail.gmail.com","threadId":"13711","inReplyTo":null,"subject":"cherry picking changesets instead of commits","fromName":"Geoffrey Irving","fromEmail":"irving@naml.us","sentAt":"2008-05-28T18:06:10Z","receivedAt":"2008-05-28T18:06:10Z","isPatch":false,"sender":{"key":"irving@naml.us","avatar":"https://gravatar.com/avatar/52d7452fcd134aac0fa12f57a3bb7ef5f3f7e73ca0ab36736d06c6a6132de718?d=mp&s=160"},"body":"I have a project stored in a git repository with other versions stored\nin both cvs and perforce (sadly).  I want the ability to propagate\nchanges back and forth between all three repositories without mangling\nthe git history.  I specifically want to avoid (1) having two copies\nof each commit (e.g., an initial version and a version pulled from\ncvsimport) and (2) commits full of git-p4 metadata (the [git-p4] lines\nin commit messages).\n\nOne way to do this would be to have cvs branch imported using \"git\ncvsimport\", and a perforce branch imported via \"git-p4\", and\ncommunicate between the cvs/p4 branches and the main git branches\nentirely through cherry picking.  Unfortunately, \"git cherry\" doesn't\nrecognize when commits with potentially different author names or log\nmessages polluted with \"[git-p4]\" produce the same changeset, so if I\nexport a change from the git master branch through cvsexportcommit and\nupdate the cvs branch with cvsimport, \"git cherry\" will report that\nthe change doesn't exist on the git master branch.\n\nHas anyone tackled this problem before?  Would it be straightforward\nto add an option to \"git cherry\" to ignore differences in metadata?\nThe cherry documentation doesn't give its criteria for when commits\nmatch, and I'm not familiar enough with the code yet to figure out\nthose criteria directly from cmd_cherry in builtin-log.c.\n\nThanks,\nGeoffrey\n"},{"id":"77963","messageId":"7v1w3muw8j.fsf@gitster.siamese.dyndns.org","threadId":"13711","inReplyTo":"7f9d599f0805281106w746a0469u6c483d64cf75b823@mail.gmail.com","subject":"Re: cherry picking changesets instead of commits","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2008-05-28T18:19:56Z","receivedAt":"2008-05-28T18:19:56Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"\"Geoffrey Irving\" <irving@naml.us> writes:\n\n> Would it be straightforward\n> to add an option to \"git cherry\" to ignore differences in metadata?\n> The cherry documentation doesn't give its criteria for when commits\n> match, and I'm not familiar enough with the code yet to figure out\n> those criteria directly from cmd_cherry in builtin-log.c.\n\ncherry does not look at metadata at all.  It compares patch-ids.\n"},{"id":"77965","messageId":"190C4133-35C9-4CE0-816B-603B8F661A56@gmail.com","threadId":"13711","inReplyTo":"7v1w3muw8j.fsf@gitster.siamese.dyndns.org","subject":"Re: cherry picking changesets instead of commits","fromName":"Geoffrey Irving","fromEmail":"geoffrey.irving@gmail.com","sentAt":"2008-05-28T18:28:44Z","receivedAt":"2008-05-28T18:28:44Z","isPatch":false,"sender":{"key":"geoffrey.irving@gmail.com","avatar":null},"body":"On May 28, 2008, at 11:19 AM, Junio C Hamano <gitster@pobox.com> wrote:\n\n> \"Geoffrey Irving\" <irving@naml.us> writes:\n>\n>> Would it be straightforward\n>> to add an option to \"git cherry\" to ignore differences in metadata?\n>> The cherry documentation doesn't give its criteria for when commits\n>> match, and I'm not familiar enough with the code yet to figure out\n>> those criteria directly from cmd_cherry in builtin-log.c.\n>\n> cherry does not look at metadata at all.  It compares patch-ids.\n\nCan you define what a patch-id is?\n\nGeoffrey\n"},{"id":"77968","messageId":"7vod6qtgfs.fsf@gitster.siamese.dyndns.org","threadId":"13711","inReplyTo":"190C4133-35C9-4CE0-816B-603B8F661A56@gmail.com","subject":"Re: cherry picking changesets instead of commits","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2008-05-28T18:46:31Z","receivedAt":"2008-05-28T18:46:31Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Geoffrey Irving <geoffrey.irving@gmail.com> writes:\n\n> On May 28, 2008, at 11:19 AM, Junio C Hamano <gitster@pobox.com> wrote:\n>\n>> \"Geoffrey Irving\" <irving@naml.us> writes:\n>>\n>>> Would it be straightforward\n>>> to add an option to \"git cherry\" to ignore differences in metadata?\n>>> The cherry documentation doesn't give its criteria for when commits\n>>> match, and I'm not familiar enough with the code yet to figure out\n>>> those criteria directly from cmd_cherry in builtin-log.c.\n>>\n>> cherry does not look at metadata at all.  It compares patch-ids.\n>\n> Can you define what a patch-id is?\n\n$ man git-patch-id\n"},{"id":"77973","messageId":"7f9d599f0805281242w5769a100s1153c2101992ff55@mail.gmail.com","threadId":"13711","inReplyTo":"7vod6qtgfs.fsf@gitster.siamese.dyndns.org","subject":"Re: cherry picking changesets instead of commits","fromName":"Geoffrey Irving","fromEmail":"irving@naml.us","sentAt":"2008-05-28T19:42:12Z","receivedAt":"2008-05-28T19:42:12Z","isPatch":false,"sender":{"key":"irving@naml.us","avatar":"https://gravatar.com/avatar/52d7452fcd134aac0fa12f57a3bb7ef5f3f7e73ca0ab36736d06c6a6132de718?d=mp&s=160"},"body":"On Wed, May 28, 2008 at 11:46 AM, Junio C Hamano <gitster@pobox.com> wrote:\n> Geoffrey Irving <geoffrey.irving@gmail.com> writes:\n>\n>> On May 28, 2008, at 11:19 AM, Junio C Hamano <gitster@pobox.com> wrote:\n>>\n>>> \"Geoffrey Irving\" <irving@naml.us> writes:\n>>>\n>>>> Would it be straightforward\n>>>> to add an option to \"git cherry\" to ignore differences in metadata?\n>>>> The cherry documentation doesn't give its criteria for when commits\n>>>> match, and I'm not familiar enough with the code yet to figure out\n>>>> those criteria directly from cmd_cherry in builtin-log.c.\n>>>\n>>> cherry does not look at metadata at all.  It compares patch-ids.\n>>\n>> Can you define what a patch-id is?\n>\n> $ man git-patch-id\n\nThanks!  Here's a patch to avoid duplicating this particular ignorant question.\n\nGeoffrey\n\ncommit a1bac5e1aa52f9a78733aa35a0a7e820df618301\nAuthor: Geoffrey Irving <irving@naml.us>\nDate:   Wed May 28 12:38:11 2008 -0700\n\n    doc: mention git-patch-id in git-cherry documentation\n\ndiff --git a/Documentation/git-cherry.txt b/Documentation/git-cherry.txt\nindex b0468aa..9817fb5 100644\n--- a/Documentation/git-cherry.txt\n+++ b/Documentation/git-cherry.txt\n@@ -41,6 +41,8 @@ has been applied <upstream> under a different commit\nid.  For example,\n this will happen if you're feeding patches <upstream> via email rather\n than pushing or pulling commits directly.\n\n+For details about how patches are compared, see git-patch-id.\n+\n\n OPTIONS\n -------\n"},{"id":"77976","messageId":"7v3ao2tawd.fsf@gitster.siamese.dyndns.org","threadId":"13711","inReplyTo":"7f9d599f0805281242w5769a100s1153c2101992ff55@mail.gmail.com","subject":"Re: cherry picking changesets instead of commits","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2008-05-28T20:46:10Z","receivedAt":"2008-05-28T20:46:10Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"\"Geoffrey Irving\" <irving@naml.us> writes:\n\n> commit a1bac5e1aa52f9a78733aa35a0a7e820df618301\n> Author: Geoffrey Irving <irving@naml.us>\n> Date:   Wed May 28 12:38:11 2008 -0700\n>\n>     doc: mention git-patch-id in git-cherry documentation\n>\n> diff --git a/Documentation/git-cherry.txt b/Documentation/git-cherry.txt\n> index b0468aa..9817fb5 100644\n> --- a/Documentation/git-cherry.txt\n> +++ b/Documentation/git-cherry.txt\n> @@ -41,6 +41,8 @@ has been applied <upstream> under a different commit\n> id.  For example,\n>  this will happen if you're feeding patches <upstream> via email rather\n>  than pushing or pulling commits directly.\n>\n> +For details about how patches are compared, see git-patch-id.\n> +\n\nThanks.\n\nIn manual pages, \"SEE ALSO\" section is a more appropriate place to do this\nkind of thing.\n"},{"id":"77977","messageId":"7f9d599f0805281414x6b97070ag7a1cc36f5d3c5a36@mail.gmail.com","threadId":"13711","inReplyTo":"7v3ao2tawd.fsf@gitster.siamese.dyndns.org","subject":"Re: cherry picking changesets instead of commits","fromName":"Geoffrey Irving","fromEmail":"irving@naml.us","sentAt":"2008-05-28T21:14:59Z","receivedAt":"2008-05-28T21:14:59Z","isPatch":false,"sender":{"key":"irving@naml.us","avatar":"https://gravatar.com/avatar/52d7452fcd134aac0fa12f57a3bb7ef5f3f7e73ca0ab36736d06c6a6132de718?d=mp&s=160"},"body":"On Wed, May 28, 2008 at 1:46 PM, Junio C Hamano <gitster@pobox.com> wrote:\n> \"Geoffrey Irving\" <irving@naml.us> writes:\n>\n>> commit a1bac5e1aa52f9a78733aa35a0a7e820df618301\n>> Author: Geoffrey Irving <irving@naml.us>\n>> Date:   Wed May 28 12:38:11 2008 -0700\n>>\n>>     doc: mention git-patch-id in git-cherry documentation\n>>\n>> diff --git a/Documentation/git-cherry.txt b/Documentation/git-cherry.txt\n>> index b0468aa..9817fb5 100644\n>> --- a/Documentation/git-cherry.txt\n>> +++ b/Documentation/git-cherry.txt\n>> @@ -41,6 +41,8 @@ has been applied <upstream> under a different commit\n>> id.  For example,\n>>  this will happen if you're feeding patches <upstream> via email rather\n>>  than pushing or pulling commits directly.\n>>\n>> +For details about how patches are compared, see git-patch-id.\n>> +\n>\n> Thanks.\n>\n> In manual pages, \"SEE ALSO\" section is a more appropriate place to do this\n> kind of thing.\n\nHere's an improved patch.\n\nGeoffrey\n\ncommit 2417df3ffc04e05c187a93ae58f620f2709ae950\nAuthor: Geoffrey Irving <irving@naml.us>\nDate:   Wed May 28 12:38:11 2008 -0700\n\n    doc: reference git-patch-id in git-cherry documentation\n\ndiff --git a/Documentation/git-cherry.txt b/Documentation/git-cherry.txt\nindex b0468aa..dbf8895 100644\n--- a/Documentation/git-cherry.txt\n+++ b/Documentation/git-cherry.txt\n@@ -56,6 +56,11 @@ OPTIONS\n <limit>::\n        Do not report commits up to (and including) limit.\n\n+See Also\n+--------\n+'git-patch-id(1)'::\n+       The mechanism git-cherry uses to compare changesets.\n+\n Author\n ------\n Written by Junio C Hamano <junkio@cox.net>\n"},{"id":"77983","messageId":"20080528223858.GA15107@sigill.intra.peff.net","threadId":"13711","inReplyTo":"7f9d599f0805281414x6b97070ag7a1cc36f5d3c5a36@mail.gmail.com","subject":"Re: cherry picking changesets instead of commits","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2008-05-28T22:38:58Z","receivedAt":"2008-05-28T22:38:58Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Wed, May 28, 2008 at 02:14:59PM -0700, Geoffrey Irving wrote:\n\n> > In manual pages, \"SEE ALSO\" section is a more appropriate place to do this\n> > kind of thing.\n> \n> Here's an improved patch.\n\nThe usual way to include a cover letter in a patch is either:\n\n  Subject: [PATCH] commit message subject\n\n  commit message\n\n  ---\n  your cover letter\n\n  diffstat + diff\n\nor (and I often use this in a reply where it makes sense to read the\ncover letter first):\n\n  Subject: Re: your mail\n\n  cover letter\n\n  -- >8 -- (any visual separator that is _not_ \"---\")\n  commit message subject\n\n  commit message\n\n  ---\n  diffstat + diff\n\nIn the second case, I believe Junio just manually deletes everything\nabove the separator.\n\n> +See Also\n> +--------\n> +'git-patch-id(1)'::\n> +       The mechanism git-cherry uses to compare changesets.\n> +\n\nThis should be\n\n  linkgit:git-patch-id[1]::\n\nwhich will turn it into the text you wrote for a manpage, or a link in\nthe HTML version. Looks like we already have a few of the style you used\nthat should probably be fixed, though.\n\n-Peff\n"},{"id":"77984","messageId":"20080528224819.GA15252@sigill.intra.peff.net","threadId":"13711","inReplyTo":"20080528223858.GA15107@sigill.intra.peff.net","subject":"Re: cherry picking changesets instead of commits","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2008-05-28T22:48:19Z","receivedAt":"2008-05-28T22:48:19Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Wed, May 28, 2008 at 06:38:58PM -0400, Jeff King wrote:\n\n> which will turn it into the text you wrote for a manpage, or a link in\n> the HTML version. Looks like we already have a few of the style you used\n> that should probably be fixed, though.\n\nActually, it looks like there is only one; patch is below. There are a\nfew false positives in gitk.txt, but they point to projects outside of\ncore git (like qgit, gitview, and tig), and so must be left as straight\ntext.\n\n-- >8 --\ndoc/git-gui: make gitk \"see also\" a link\n\nEven though git-gui and gitk are both maintained separately,\nthe documentation is part of core git, and thus it makes\nsense to use the linkgit macro to create an href in the HTML\ndocumentation.\n---\n Documentation/git-gui.txt |    2 +-\n 1 files changed, 1 insertions(+), 1 deletions(-)\n\ndiff --git a/Documentation/git-gui.txt b/Documentation/git-gui.txt\nindex 6d6cd5d..cf2541f 100644\n--- a/Documentation/git-gui.txt\n+++ b/Documentation/git-gui.txt\n@@ -81,7 +81,7 @@ git gui browser maint::\n \n See Also\n --------\n-'gitk(1)'::\n+linkgit:gitk[1]::\n \tThe git repository browser.  Shows branches, commit history\n \tand file differences.  gitk is the utility started by\n \tgit-gui's Repository Visualize actions.\n-- \n1.5.6.rc0.143.ge5cbe0\n"},{"id":"77993","messageId":"7vbq2qrni6.fsf@gitster.siamese.dyndns.org","threadId":"13711","inReplyTo":"20080528224819.GA15252@sigill.intra.peff.net","subject":"Re: cherry picking changesets instead of commits","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2008-05-28T23:56:49Z","receivedAt":"2008-05-28T23:56:49Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Jeff King <peff@peff.net> writes:\n\n> doc/git-gui: make gitk \"see also\" a link\n>\n> Even though git-gui and gitk are both maintained separately,\n> the documentation is part of core git, and thus it makes\n> sense to use the linkgit macro to create an href in the HTML\n> documentation.\n> ---\n>  Documentation/git-gui.txt |    2 +-\n>  1 files changed, 1 insertions(+), 1 deletions(-)\n>\n> diff --git a/Documentation/git-gui.txt b/Documentation/git-gui.txt\n> index 6d6cd5d..cf2541f 100644\n> --- a/Documentation/git-gui.txt\n> +++ b/Documentation/git-gui.txt\n> @@ -81,7 +81,7 @@ git gui browser maint::\n>  \n>  See Also\n>  --------\n> -'gitk(1)'::\n> +linkgit:gitk[1]::\n>  \tThe git repository browser.  Shows branches, commit history\n>  \tand file differences.  gitk is the utility started by\n>  \tgit-gui's Repository Visualize actions.\n\nHmm.\n\nFirst a bit offtopic to avoid duplicated work.  Please nobody waste your\ntime sending s/See Also/SEE ALSO/ clean-up patch.  I've done that already.\n\nNow, I do not think it is customary to say anything but the name of the\nmanual page if you refer to one in SEE ALSO section.  I am wondering if we\nwould want to remove the three-liner for consistency (but haven't done so,\nneither the short description of qgit and others in gitk manual page is\ngone yet).\n\n Documentation/git-gui.txt |    7 ++-----\n 1 files changed, 2 insertions(+), 5 deletions(-)\n\ndiff --git a/Documentation/git-gui.txt b/Documentation/git-gui.txt\nindex 6d6cd5d..cea8f8a 100644\n--- a/Documentation/git-gui.txt\n+++ b/Documentation/git-gui.txt\n@@ -79,12 +79,9 @@ git gui browser maint::\n \tselected in the browser can be viewed with the internal\n \tblame viewer.\n \n-See Also\n+SEE ALSO\n --------\n-'gitk(1)'::\n-\tThe git repository browser.  Shows branches, commit history\n-\tand file differences.  gitk is the utility started by\n-\tgit-gui's Repository Visualize actions.\n+linkgit:gitk[1]\n \n Other\n -----\n"},{"id":"77995","messageId":"7v7idern4q.fsf_-_@gitster.siamese.dyndns.org","threadId":"13711","inReplyTo":"7f9d599f0805281414x6b97070ag7a1cc36f5d3c5a36@mail.gmail.com","subject":"[PATCH] Documentation: git-cherry uses git-patch-id","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2008-05-29T00:04:53Z","receivedAt":"2008-05-29T00:04:53Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"\"Geoffrey Irving\" <irving@naml.us> writes:\n\n> On Wed, May 28, 2008 at 1:46 PM, Junio C Hamano <gitster@pobox.com> wrote:\n>\n>> Thanks.\n>>\n>> In manual pages, \"SEE ALSO\" section is a more appropriate place to do this\n>> kind of thing.\n>\n> Here's an improved patch.\n\nThanks, I'll do this instead...\n\n-- >8 --\nGeoffrey Irving noticed that git-cherry talks about comparing commits without\nhinting how they are compared.\n\nSigned-off-by: Junio C Hamano <gitster@pobox.com>\n---\n Documentation/git-cherry.txt |    6 ++++++\n 1 files changed, 6 insertions(+), 0 deletions(-)\n\ndiff --git a/Documentation/git-cherry.txt b/Documentation/git-cherry.txt\nindex b0468aa..d8e0a5b 100644\n--- a/Documentation/git-cherry.txt\n+++ b/Documentation/git-cherry.txt\n@@ -13,6 +13,8 @@ DESCRIPTION\n -----------\n The changeset (or \"diff\") of each commit between the fork-point and <head>\n is compared against each commit between the fork-point and <upstream>.\n+The commits are compared with their 'patch id', obtained from linkgit:git-patch-id[1]\n+program.\n \n Every commit that doesn't exist in the <upstream> branch\n has its id (sha1) reported, prefixed by a symbol.  The ones that have\n@@ -56,6 +58,10 @@ OPTIONS\n <limit>::\n \tDo not report commits up to (and including) limit.\n \n+SEE ALSO\n+--------\n+linkgit:git-patch-id[1]\n+\n Author\n ------\n Written by Junio C Hamano <junkio@cox.net>\n-- \n1.5.6.rc0.43.g823ea\n"},{"id":"77996","messageId":"7f9d599f0805281707u319f444dl89d1fcb787966790@mail.gmail.com","threadId":"13711","inReplyTo":"7v7idern4q.fsf_-_@gitster.siamese.dyndns.org","subject":"Re: [PATCH] Documentation: git-cherry uses git-patch-id","fromName":"Geoffrey Irving","fromEmail":"irving@naml.us","sentAt":"2008-05-29T00:07:46Z","receivedAt":"2008-05-29T00:07:46Z","isPatch":true,"sender":{"key":"irving@naml.us","avatar":"https://gravatar.com/avatar/52d7452fcd134aac0fa12f57a3bb7ef5f3f7e73ca0ab36736d06c6a6132de718?d=mp&s=160"},"body":"On Wed, May 28, 2008 at 5:04 PM, Junio C Hamano <gitster@pobox.com> wrote:\n> \"Geoffrey Irving\" <irving@naml.us> writes:\n>\n>> On Wed, May 28, 2008 at 1:46 PM, Junio C Hamano <gitster@pobox.com> wrote:\n>>\n>>> Thanks.\n>>>\n>>> In manual pages, \"SEE ALSO\" section is a more appropriate place to do this\n>>> kind of thing.\n>>\n>> Here's an improved patch.\n>\n> Thanks, I'll do this instead...\n\nThanks!\n\nIncidentally, my original source of confusion was not understanding\nthe order of arguments of git-cherry.  Everything works fine once I\nuse the correct order.\n\nGeoffrey\n"},{"id":"77997","messageId":"20080529001216.GA17938@sigill.intra.peff.net","threadId":"13711","inReplyTo":"7vbq2qrni6.fsf@gitster.siamese.dyndns.org","subject":"Re: cherry picking changesets instead of commits","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2008-05-29T00:12:17Z","receivedAt":"2008-05-29T00:12:17Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Wed, May 28, 2008 at 04:56:49PM -0700, Junio C Hamano wrote:\n\n> First a bit offtopic to avoid duplicated work.  Please nobody waste your\n> time sending s/See Also/SEE ALSO/ clean-up patch.  I've done that already.\n\nIt is much more widespread than that. We are very inconsistent with\nsection title capitalization. For man pages, it doesn't matter; asciidoc\nmakes them all upper case. However, they end up inconsistent in the html\nversions. So if we care about this, then probably everything should be\nfixed.\n\nYou can get a rough idea with:\n\n  $ cd Documentation && perl -ne '\n      print \"$ARGV:$last\" if\n        /^-+$/ &&\n        length == length($last) &&\n        $last =~ /[a-z]/;\n      $last = $_;\n    ' git-*.txt\n\n> Now, I do not think it is customary to say anything but the name of the\n> manual page if you refer to one in SEE ALSO section.  I am wondering if we\n> would want to remove the three-liner for consistency (but haven't done so,\n> neither the short description of qgit and others in gitk manual page is\n> gone yet).\n\nIt isn't how most of the pages are, but I think it is actually helpful.\nAnd it's not as if \"SEE ALSO\" contents are supposed to be machine\nparsable.\n\nThough if the _reason_ that one needs to \"see also\" is not obvious,\nperhaps it is better as part of the text of a different section (OTOH, I\nthink Geoffrey's patch was in response to your request to put it in the\n\"SEE ALSO\").\n\n-Peff\n"}]}