<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/Documentation/gitattributes.txt, branch v2.12.1</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://www.git.shady.money/git/atom?h=v2.12.1</id>
<link rel='self' href='https://www.git.shady.money/git/atom?h=v2.12.1'/>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/'/>
<updated>2016-12-06T19:29:52Z</updated>
<entry>
<title>docs: warn about possible '=' in clean/smudge filter process values</title>
<updated>2016-12-06T19:29:52Z</updated>
<author>
<name>Lars Schneider</name>
<email>larsxschneider@gmail.com</email>
</author>
<published>2016-12-03T19:45:16Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=c6b0831c9c1718b552872953b4949cef7d4726fe'/>
<id>urn:sha1:c6b0831c9c1718b552872953b4949cef7d4726fe</id>
<content type='text'>
A pathname value in a clean/smudge filter process "key=value" pair can
contain the '=' character (introduced in edcc858). Make the user aware
of this issue in the docs, add a corresponding test case, and fix the
issue in filter process value parser of the example implementation in
contrib.

Signed-off-by: Lars Schneider &lt;larsxschneider@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>contrib/long-running-filter: add long running filter example</title>
<updated>2016-10-17T18:45:52Z</updated>
<author>
<name>Lars Schneider</name>
<email>larsxschneider@gmail.com</email>
</author>
<published>2016-10-16T23:20:38Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=0f71fa273fc6c352a266894f1f757c5950230d9b'/>
<id>urn:sha1:0f71fa273fc6c352a266894f1f757c5950230d9b</id>
<content type='text'>
Add a simple pass-thru filter as example implementation for the Git
filter protocol version 2. See Documentation/gitattributes.txt, section
"Filter Protocol" for more info.

Signed-off-by: Lars Schneider &lt;larsxschneider@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>convert: add filter.&lt;driver&gt;.process option</title>
<updated>2016-10-17T18:45:52Z</updated>
<author>
<name>Lars Schneider</name>
<email>larsxschneider@gmail.com</email>
</author>
<published>2016-10-16T23:20:37Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=edcc85814c87ebd7f3b1b7d3979fac3dfb84d308'/>
<id>urn:sha1:edcc85814c87ebd7f3b1b7d3979fac3dfb84d308</id>
<content type='text'>
Git's clean/smudge mechanism invokes an external filter process for
every single blob that is affected by a filter. If Git filters a lot of
blobs then the startup time of the external filter processes can become
a significant part of the overall Git execution time.

In a preliminary performance test this developer used a clean/smudge
filter written in golang to filter 12,000 files. This process took 364s
with the existing filter mechanism and 5s with the new mechanism. See
details here: https://github.com/github/git-lfs/pull/1382

This patch adds the `filter.&lt;driver&gt;.process` string option which, if
used, keeps the external filter process running and processes all blobs
with the packet format (pkt-line) based protocol over standard input and
standard output. The full protocol is explained in detail in
`Documentation/gitattributes.txt`.

A few key decisions:

* The long running filter process is referred to as filter protocol
  version 2 because the existing single shot filter invocation is
  considered version 1.
* Git sends a welcome message and expects a response right after the
  external filter process has started. This ensures that Git will not
  hang if a version 1 filter is incorrectly used with the
  filter.&lt;driver&gt;.process option for version 2 filters. In addition,
  Git can detect this kind of error and warn the user.
* The status of a filter operation (e.g. "success" or "error) is set
  before the actual response and (if necessary!) re-set after the
  response. The advantage of this two step status response is that if
  the filter detects an error early, then the filter can communicate
  this and Git does not even need to create structures to read the
  response.
* All status responses are pkt-line lists terminated with a flush
  packet. This allows us to send other status fields with the same
  protocol in the future.

Helped-by: Martin-Louis Bright &lt;mlbright@gmail.com&gt;
Reviewed-by: Jakub Narebski &lt;jnareb@gmail.com&gt;
Signed-off-by: Lars Schneider &lt;larsxschneider@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>gitattributes: Document the unified "auto" handling</title>
<updated>2016-08-26T20:54:16Z</updated>
<author>
<name>Torsten Bögershausen</name>
<email>tboegi@web.de</email>
</author>
<published>2016-08-26T20:18:48Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=e28eae3184b26d3cf3293e69403babb5c575342c'/>
<id>urn:sha1:e28eae3184b26d3cf3293e69403babb5c575342c</id>
<content type='text'>
Update the documentation about text=auto:
text=auto now follows the core.autocrlf handling when files are not
normalized in the repository.

For a cross platform project recommend the usage of attributes for
line-ending conversions.

Signed-off-by: Torsten Bögershausen &lt;tboegi@web.de&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Spelling fixes</title>
<updated>2016-08-11T21:35:42Z</updated>
<author>
<name>Ville Skyttä</name>
<email>ville.skytta@iki.fi</email>
</author>
<published>2016-08-09T08:53:38Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=2e3a16b279a9df2e498187871c67e623e12bc8a4'/>
<id>urn:sha1:2e3a16b279a9df2e498187871c67e623e12bc8a4</id>
<content type='text'>
    &lt;BAD&gt;                     &lt;CORRECTED&gt;
    accidently                accidentally
    commited                  committed
    dependancy                dependency
    emtpy                     empty
    existance                 existence
    explicitely               explicitly
    git-upload-achive         git-upload-archive
    hierachy                  hierarchy
    indegee                   indegree
    intial                    initial
    mulitple                  multiple
    non-existant              non-existent
    precendence.              precedence.
    priviledged               privileged
    programatically           programmatically
    psuedo-binary             pseudo-binary
    soemwhere                 somewhere
    successfull               successful
    transfering               transferring
    uncommited                uncommitted
    unkown                    unknown
    usefull                   useful
    writting                  writing

Signed-off-by: Ville Skyttä &lt;ville.skytta@iki.fi&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'jh/clean-smudge-f-doc'</title>
<updated>2016-08-08T21:48:43Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2016-08-08T21:48:43Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=104985c59eb5f318daf6732af9a2b7a9f63d0857'/>
<id>urn:sha1:104985c59eb5f318daf6732af9a2b7a9f63d0857</id>
<content type='text'>
A minor documentation update.

* jh/clean-smudge-f-doc:
  clarify %f documentation
</content>
</entry>
<entry>
<title>clarify %f documentation</title>
<updated>2016-08-03T17:10:35Z</updated>
<author>
<name>Joey Hess</name>
<email>joeyh@joeyh.name</email>
</author>
<published>2016-07-11T22:45:05Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=52db4b0467f157230d2746f10435d070ad859bae'/>
<id>urn:sha1:52db4b0467f157230d2746f10435d070ad859bae</id>
<content type='text'>
It's natural to expect %f to be an actual file on disk; help avoid that
mistake.

Signed-off-by: Joey Hess &lt;joeyh@joeyh.name&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'jc/renormalize-merge-kill-safer-crlf'</title>
<updated>2016-07-25T21:13:39Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2016-07-25T21:13:38Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=21bed620cd2d4fc4fb3d42447136c9f899ede5bb'/>
<id>urn:sha1:21bed620cd2d4fc4fb3d42447136c9f899ede5bb</id>
<content type='text'>
"git merge" with renormalization did not work well with
merge-recursive, due to "safer crlf" conversion kicking in when it
shouldn't.

* jc/renormalize-merge-kill-safer-crlf:
  merge: avoid "safer crlf" during recording of merge results
  convert: unify the "auto" handling of CRLF
</content>
</entry>
<entry>
<title>convert: unify the "auto" handling of CRLF</title>
<updated>2016-07-06T18:53:51Z</updated>
<author>
<name>Torsten Bögershausen</name>
<email>tboegi@web.de</email>
</author>
<published>2016-06-28T08:01:13Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=6523728499e77afaed0008875b19b308682c3f88'/>
<id>urn:sha1:6523728499e77afaed0008875b19b308682c3f88</id>
<content type='text'>
Before this change,
$ echo "* text=auto" &gt;.gitattributes
$ echo "* eol=crlf" &gt;&gt;.gitattributes

would have the same effect as
$ echo "* text" &gt;.gitattributes
$ git config core.eol crlf

Since the 'eol' attribute had higher priority than 'text=auto', this may
corrupt binary files and is not what most users expect to happen.

Make the 'eol' attribute to obey 'text=auto' and now
$ echo "* text=auto" &gt;.gitattributes
$ echo "* eol=crlf" &gt;&gt;.gitattributes
behaves the same as
$ echo "* text=auto" &gt;.gitattributes
$ git config core.eol crlf

In other words,
$ echo "* text=auto eol=crlf" &gt;.gitattributes
has the same effect as
$ git config core.autocrlf true

and
$ echo "* text=auto eol=lf" &gt;.gitattributes
has the same effect as
$ git config core.autocrlf input

Signed-off-by: Torsten Bögershausen &lt;tboegi@web.de&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>userdiff: add built-in pattern for CSS</title>
<updated>2016-06-03T21:45:56Z</updated>
<author>
<name>William Duclot</name>
<email>william.duclot@ensimag.grenoble-inp.fr</email>
</author>
<published>2016-06-03T12:32:26Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=0719f3eecd1234f6331cab980088239207e93335'/>
<id>urn:sha1:0719f3eecd1234f6331cab980088239207e93335</id>
<content type='text'>
CSS is widely used, motivating it being included as a built-in pattern.

It must be noted that the word_regex for CSS (i.e. the regex defining
what is a word in the language) does not consider '.' and '#' characters
(in CSS selectors) to be part of the word. This behavior is documented
by the test t/t4018/css-rule.
The logic behind this behavior is the following: identifiers in CSS
selectors are identifiers in a HTML/XML document. Therefore, the '.'/'#'
character are not part of the identifier, but an indicator of the nature
of the identifier in HTML/XML (class or id). Diffing ".class1" and
".class2" must show that the class name is changed, but we still are
selecting a class.

Logic behind the "pattern" regex is:
    1. reject lines ending with a colon/semicolon (properties)
    2. if a line begins with a name in column 1, pick the whole line

Credits to Johannes Sixt (j6t@kdbg.org) for the pattern regex and most
of the tests.

Signed-off-by: William Duclot &lt;william.duclot@ensimag.grenoble-inp.fr&gt;
Signed-off-by: Matthieu Moy &lt;matthieu.moy@grenoble-inp.fr&gt;
Reviewed-by: Johannes Sixt &lt;j6t@kdbg.org&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
</feed>
