git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v1 1/3] replace: add --graft option

From
Jeff King <peff@peff.net>
Date
May 23, 2014, 20:28 UTC
Message-ID
<20140523202853.GH19088@sigill.intra.peff.net>
In-Reply-To
<xmqqlhtsi7l7.fsf@gitster.dls.corp.google.com>
On Fri, May 23, 2014 at 01:05:40PM -0700, Junio C Hamano wrote:
> I just read read_graft_line(); it allows an empty line (both
> length-0 before the terminating LF or CRLF, and a line with
> isspace() only) and ignore them, so "grep '^[^#]'" is not
> sufficient.
Thanks, I missed the space trimming. I think:
  grep '^[^# \t]'

would be enough, though I am not sure that "\t" is portable over a raw tab.

Show 11 quoted lines
> > ...this number-based parsing safe, though it would miss removing a stray
> > parent line elsewhere in the commit. It still feels rather magical to
> > me, as we are depending on unspoken format guarantees defined inside
> > parse_commit_buffer.
> 
> Do you mean "we have a carved-in-stone rule that all 'parent ' lines
> must come immediately after a single 'tree ' line, and that is
> implemented in parse_commit_buffer().  The above code follows the
> exact same rule.  It would be nice to have some mechanism to tell
> somebody who wants to update the former that s/he must update this
> new code at the same time"?
Yes, exactly.
Show 11 quoted lines
> Perhaps a more future-proof way to write Christian's code may be:
> 
>     - find "tree ";
> 
>     - splice the new parents in immediately after that "tree " line;
> 
>     - starting from the end of these new parents, scan up to the end
>       of the header line-by-line, and splice out any line that
>       begins with "parent ".
> 
> which may not be too bad.
Sounds familiar:
  http://article.gmane.org/gmane.comp.version-control.git/249575
-Peff
Previous: Junio C HamanoNext: Junio C Hamano
Message 6 of 15 in “Add --graft option to git replace”
  1. 0/3 Add --graft option to git replaceChristian Couder, May 22, 2014
  2. 1/3 replace: add --graft optionChristian Couder, May 22, 2014
  3. Junio C HamanoMay 23, 2014
  4. Jeff KingMay 23, 2014
  5. Junio C HamanoMay 23, 2014
  6. Jeff KingMay 23, 2014
  7. Junio C HamanoMay 23, 2014
  8. Eric SunshineMay 23, 2014
  9. Christian CouderJun 1, 2014
  10. 2/3 replace: add test for --graftChristian Couder, May 22, 2014
  11. 3/3 Documentation: replace: add --graft optionChristian Couder, May 22, 2014
  12. Jakub NarębskiMay 23, 2014
  13. Junio C HamanoMay 23, 2014
  14. Junio C HamanoMay 23, 2014
  15. Christian CouderMay 27, 2014

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.