From: Michael Haggerty <mhagger@xxxxxxxxxxxx> > On 05/18/2014 08:29 PM, Christian Couder wrote: >> The usage string for this option is: >> >> git replace [-f] --graft <commit> [<parent>...] >> >> First we create a new commit that is the same as <commit> >> except that its parents are [<parents>...] >> >> Then we create a replace ref that replace <commit> with >> the commit we just created. >> >> With this new option, it should be straightforward to >> convert grafts to replace refs, with something like: >> >> cat .git/info/grafts | while read line >> do git replace --graft $line; done > > I love the functionality; I think it's a great step towards making > grafts obsolete. > > I haven't worked with Git's object reading/writing code much, but it > surprised me that you are editing the commit object basically as a > string, using hard-coded length constants and stuff. It seems > error-prone, and we already have a commit parser. > > Would it be possible to program this at a higher layer of abstraction > based on the commit object produced by the existing commit parser? > E.g., edit the object it produces, and write the result? Or create a > new commit object out of the parsed commit object and write that? I tried to program this at a higher layer of abstraction first, but it was not easy to properly write the new commit. > It's great that you're working on this! Thanks, Christian. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html