hashfile: use write_in_full()
authorDerrick Stolee <dstolee@microsoft.com>
Mon, 17 May 2021 12:24:49 +0000 (12:24 +0000)
committerJunio C Hamano <gitster@pobox.com>
Mon, 17 May 2021 21:32:35 +0000 (06:32 +0900)
commit68142e117c080b7a563d681dc34c7df2ab945df5
treeb11798c268e0a540e553acabb1219b99cb0773cc
parentbf949ade81106fbda068c1fdb2c6fd1cb1babe7e
hashfile: use write_in_full()

The flush() logic in csum-file.c was introduced originally by c38138c
(git-pack-objects: write the pack files with a SHA1 csum, 2005-06-26)
and a portion of the logic performs similar utility to write_in_full()
in wrapper.c. The history of write_in_full() is full of moves and
renames, but was originally introduced by 7230e6d (Add write_or_die(), a
helper function, 2006-08-21).

The point of these sections of code are to flush a write buffer using
xwrite() and report errors in the case of disk space issues or other
generic input/output errors. The logic in flush() can interpret the
output of write_in_full() to provide the correct error messages to
users.

The logic in the hashfile API has an additional set of logic to augment
the progress indicator between calls to xwrite(). This was introduced by
2a128d6 (add throughput display to git-push, 2007-10-30). It seems that
since the hashfile's buffer is only 8KB, these additional progress
indicators might not be incredibly necessary. Instead, update the
progress only when write_in_full() complete.

Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
csum-file.c