<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/convert.c, branch v2.14.2</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=v2.14.2</id>
<link rel='self' href='https://git.shady.money/git/atom?h=v2.14.2'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2017-09-10T08:02:55Z</updated>
<entry>
<title>Merge branch 'tb/apply-with-crlf' into maint</title>
<updated>2017-09-10T08:02:55Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2017-09-10T08:02:55Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=648a50a08ad3d6718899a30a438ff97b4bdda342'/>
<id>urn:sha1:648a50a08ad3d6718899a30a438ff97b4bdda342</id>
<content type='text'>
"git apply" that is used as a better "patch -p1" failed to apply a
taken from a file with CRLF line endings to a file with CRLF line
endings.  The root cause was because it misused convert_to_git()
that tried to do "safe-crlf" processing by looking at the index
entry at the same path, which is a nonsense---in that mode, "apply"
is not working on the data in (or derived from) the index at all.
This has been fixed.

* tb/apply-with-crlf:
  apply: file commited with CRLF should roundtrip diff and apply
  convert: add SAFE_CRLF_KEEP_CRLF
</content>
</entry>
<entry>
<title>convert: add SAFE_CRLF_KEEP_CRLF</title>
<updated>2017-08-16T17:21:17Z</updated>
<author>
<name>Torsten Bögershausen</name>
<email>tboegi@web.de</email>
</author>
<published>2017-08-13T08:51:04Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=2fea9de61857986431982ae89c01c89a2fc10038'/>
<id>urn:sha1:2fea9de61857986431982ae89c01c89a2fc10038</id>
<content type='text'>
When convert_to_git() is called, the caller may want to keep CRLF to
be kept as CRLF (and not converted into LF).

This will be used in the next commit, when apply works with files
that have CRLF and patches are applied onto these files.

Add the new value "SAFE_CRLF_KEEP_CRLF" to safe_crlf.

Prepare convert_to_git() to be able to run the clean filter, skip
the CRLF conversion and run the ident filter.

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>sub-process: refactor handshake to common function</title>
<updated>2017-07-26T20:00:40Z</updated>
<author>
<name>Jonathan Tan</name>
<email>jonathantanmy@google.com</email>
</author>
<published>2017-07-26T18:17:29Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=fa64a2fdbeedd98c5f24d1662bcc470a8449abcf'/>
<id>urn:sha1:fa64a2fdbeedd98c5f24d1662bcc470a8449abcf</id>
<content type='text'>
Refactor, into a common function, the version and capability negotiation
done when invoking a long-running process as a clean or smudge filter.
This will be useful for other Git code that needs to interact similarly
with a long-running process.

As you can see in the change to t0021, this commit changes the error
message reported when the long-running process does not introduce itself
with the expected "server"-terminated line. Originally, the error
message reports that the filter "does not support filter protocol
version 2", differentiating between the old single-file filter protocol
and the new multi-file filter protocol - I have updated it to something
more generic and useful.

Signed-off-by: Jonathan Tan &lt;jonathantanmy@google.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'ls/filter-process-delayed' into jt/subprocess-handshake</title>
<updated>2017-07-26T19:56:19Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2017-07-26T19:56:19Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=487fe1ffcd3b3a38477b7e564f235bb7d1b89ecc'/>
<id>urn:sha1:487fe1ffcd3b3a38477b7e564f235bb7d1b89ecc</id>
<content type='text'>
* ls/filter-process-delayed:
  convert: add "status=delayed" to filter process protocol
  convert: refactor capabilities negotiation
  convert: move multiple file filter error handling to separate function
  convert: put the flags field before the flag itself for consistent style
  t0021: write "OUT &lt;size&gt;" only on success
  t0021: make debug log file name configurable
  t0021: keep filter log files on comparison
</content>
</entry>
<entry>
<title>convert: add "status=delayed" to filter process protocol</title>
<updated>2017-06-30T20:50:41Z</updated>
<author>
<name>Lars Schneider</name>
<email>larsxschneider@gmail.com</email>
</author>
<published>2017-06-30T20:41:28Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=2841e8f81cb2820024804b9341577be1d0ce1240'/>
<id>urn:sha1:2841e8f81cb2820024804b9341577be1d0ce1240</id>
<content type='text'>
Some `clean` / `smudge` filters may require a significant amount of
time to process a single blob (e.g. the Git LFS smudge filter might
perform network requests). During this process the Git checkout
operation is blocked and Git needs to wait until the filter is done to
continue with the checkout.

Teach the filter process protocol, introduced in edcc8581 ("convert: add
filter.&lt;driver&gt;.process option", 2016-10-16), to accept the status
"delayed" as response to a filter request. Upon this response Git
continues with the checkout operation. After the checkout operation Git
calls "finish_delayed_checkout" which queries the filter for remaining
blobs. If the filter is still working on the completion, then the filter
is expected to block. If the filter has completed all remaining blobs
then an empty response is expected.

Git has a multiple code paths that checkout a blob. Support delayed
checkouts only in `clone` (in unpack-trees.c) and `checkout` operations
for now. The optimization is most effective in these code paths as all
files of the tree are processed.

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: refactor capabilities negotiation</title>
<updated>2017-06-30T20:50:21Z</updated>
<author>
<name>Lars Schneider</name>
<email>larsxschneider@gmail.com</email>
</author>
<published>2017-06-30T20:41:27Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=1514c8edd62d96006cd1de31e906ed5798dd4681'/>
<id>urn:sha1:1514c8edd62d96006cd1de31e906ed5798dd4681</id>
<content type='text'>
The code to negotiate long running filter capabilities was very
repetitive for new capabilities. Replace the repetitive conditional
statements with a table-driven approach. This is useful for the
subsequent patch 'convert: add "status=delayed" to filter process
protocol'.

Suggested-by: Junio C Hamano &lt;gitster@pobox.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>hashmap.h: compare function has access to a data field</title>
<updated>2017-06-30T19:49:28Z</updated>
<author>
<name>Stefan Beller</name>
<email>sbeller@google.com</email>
</author>
<published>2017-06-30T19:14:05Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=7663cdc86c860d5b5293a1dd4b0fb6c4e006d08e'/>
<id>urn:sha1:7663cdc86c860d5b5293a1dd4b0fb6c4e006d08e</id>
<content type='text'>
When using the hashmap a common need is to have access to caller provided
data in the compare function. A couple of times we abuse the keydata field
to pass in the data needed. This happens for example in patch-ids.c.

This patch changes the function signature of the compare function
to have one more void pointer available. The pointer given for each
invocation of the compare function must be defined in the init function
of the hashmap and is just passed through.

Documentation of this new feature is deferred to a later patch.
This is a rather mechanical conversion, just adding the new pass-through
parameter.  However while at it improve the naming of the fields of all
compare functions used by hashmaps by ensuring unused parameters are
prefixed with 'unused_' and naming the parameters what they are (instead
of 'unused' make it 'unused_keydata').

Signed-off-by: Stefan Beller &lt;sbeller@google.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>convert: move multiple file filter error handling to separate function</title>
<updated>2017-06-29T18:23:47Z</updated>
<author>
<name>Lars Schneider</name>
<email>larsxschneider@gmail.com</email>
</author>
<published>2017-06-28T21:29:51Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=9364fc298a32b19fbfe545974cbf9e46d5c7e67f'/>
<id>urn:sha1:9364fc298a32b19fbfe545974cbf9e46d5c7e67f</id>
<content type='text'>
Refactoring the filter error handling is useful for the subsequent patch
'convert: add "status=delayed" to filter process protocol'.

In addition, replace the parentheses around the empty "if" block with a
single semicolon to adhere to the Git style guide.

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: put the flags field before the flag itself for consistent style</title>
<updated>2017-06-29T18:23:47Z</updated>
<author>
<name>Lars Schneider</name>
<email>larsxschneider@gmail.com</email>
</author>
<published>2017-06-28T21:29:50Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=42b0a86c0ed90d48c2df510e3b26b9bd007ec0a4'/>
<id>urn:sha1:42b0a86c0ed90d48c2df510e3b26b9bd007ec0a4</id>
<content type='text'>
Suggested-by: Jeff King &lt;peff@peff.net&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>Merge branch 'bw/config-h'</title>
<updated>2017-06-24T21:28:41Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2017-06-24T21:28:40Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=f31d23a399d557d687266b4375a0436f920cc051'/>
<id>urn:sha1:f31d23a399d557d687266b4375a0436f920cc051</id>
<content type='text'>
Fix configuration codepath to pay proper attention to commondir
that is used in multi-worktree situation, and isolate config API
into its own header file.

* bw/config-h:
  config: don't implicitly use gitdir or commondir
  config: respect commondir
  setup: teach discover_git_directory to respect the commondir
  config: don't include config.h by default
  config: remove git_config_iter
  config: create config.h
</content>
</entry>
</feed>
