[PATCH v4 00/10] teach replace objects to sha1_object_info_extended()
- From
Christian Couder <chriscool@tuxfamily.org>
- Date
- Dec 28, 2013, 11:00 UTC
- Message-ID
- <20131228105505.2272.58873.chriscool@tuxfamily.org>
Here is version 4 of a patch series to improve the way sha1_object_info_extended() behaves when it is passed a replaced object. The idea is to add a flags argument to it in the same way as what has been done to read_sha1_file().
This patch series was inspired by a sub thread in this discussion:
http://thread.gmane.org/gmane.comp.version-control.git/238118
The only changes compared to version 3 are the following:
- the name of the 'full' format is now 'long'
- the names of the replace_format enum fields have been prepended with 'REPLACE_FORMAT_'. This avoids a compilation conflict on Windows where SHORT is predefined. Thanks to Karsten for reporting this problem.
These changes only affect patches 7/10, 8/10, 9/10 and 10/10 that add a new --format option to list replace refs.
Christian Couder (10): Rename READ_SHA1_FILE_REPLACE flag to LOOKUP_REPLACE_OBJECT replace_object: don't check read_replace_refs twice Introduce lookup_replace_object_extended() to pass flags Add an "unsigned flags" parameter to sha1_object_info_extended() t6050: show that git cat-file --batch fails with replace objects sha1_file: perform object replacement in sha1_object_info_extended() builtin/replace: teach listing using short, medium or long formats t6050: add tests for listing with --format builtin/replace: unset read_replace_refs Documentation/git-replace: describe --format option
Documentation/git-replace.txt | 19 +++++++++++- builtin/cat-file.c | 2 +- builtin/replace.c | 67 ++++++++++++++++++++++++++++++++++++++----- cache.h | 12 ++++++-- replace_object.c | 3 -- sha1_file.c | 20 ++++++------- streaming.c | 2 +- t/t6050-replace.sh | 42 +++++++++++++++++++++++++++ 8 files changed, 141 insertions(+), 26 deletions(-)
-- 1.8.4.1.616.g07f5c81