[petsc-dev] Style Guide: How to format single-line if/for/while-blocks?

Jed Brown jedbrown at mcs.anl.gov
Mon Jan 21 23:35:37 CST 2013


On Mon, Jan 21, 2013 at 11:20 PM, Sean Farley <sean.michael.farley at gmail.com
> wrote:

> > This has a nice picture of the way clean clean and smudge filters work.
> >
> > http://git-scm.com/book/ch7-2.html#Keyword-Expansion
> >
> > The idea is that you tell git to use your filter in a place that is not
> > checked into the repository:
> >
> > echo '*.c filter=petscfmt' >> .git/info/attributes
> >
> > (If you wanted it to be checked in, you'd put it in .gitattributes, but
> we
> > don't want that now.) Then set what the petscfmt filter does
> >
> > git config filter.petscfmt.clean 'uncrustify read from stdin and write
> clean
> > version to stdout'
> > git config filter.petscfmt.smudge 'uncrustify read from stdin and write
> > smudged version to stdout'
> >
> > The smudged version is whatever the user wants to interact with, the
> cleaned
> > version is whatever should go in the PETSc repository. (You can also just
> > edit these filters in .git/config.)
>
> Does this just basically run or regex / uncrustify filter before a
> commit and after a checkout?


The clean filter is run when something is added to the index and the smudge
filter is run when a file gets checked out (updated in the working tree).
Git merge algorithms run in the index so they are not aware of the smudging
or cleaning (they always work with the clean version).


> Or is there something more fancy going
> on? What does the user see when there's a merge conflict?


If there's a conflict, all versions are put into the working tree (smudged
in the process). The user resolves the conflict and adds the result to the
index (which runs the clean filter). The clean filter also gets run when
you use "git add -p" or "git gui" for interactive staging (so you're
viewing a diff of the cleaned representation).
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20130121/44ce7737/attachment.html>


More information about the petsc-dev mailing list