[PATCH/RFC 0/3] merge-recursive: Avoid diagnostic on empty work tree
- From
Brad King <brad.king@kitware.com>
- Date
- Jan 24, 2014, 15:01 UTC
- Message-ID
- <cover.1390574980.git.brad.king@kitware.com>
- In-Reply-To
- <CABPp-BGAsrrjcZxVirzKU_VEyUM1U=4TFj18CieKKE7==c7v2A@mail.gmail.com>
On 01/23/2014 07:24 PM, Elijah Newren wrote:
Show 5 quoted lines
> Two options are just doing a stat to determine whether the file > is present (which means we'll be stat'ing the file multiple times > in these cases, which feels wasteful), or perhaps writing a > modified make_cache_entry() with the behavior we want > (seems like ugly code duplication). Suggestions?
Perhaps we can thread enough information through the make_cache_entry signature to allow the caller to know when lstat reported ENOENT. Here is a series that takes such an approach.
* Patch 1 is the original test case from $gmane/240853.
* Patch 2 extends the make_cache_entry signature to return lstat errno.
* Patch 3 uses this information to silence the add_cacheinfo diagnostic
-Brad
Brad King (3): t3030-merge-recursive: Test known breakage with empty work tree read-cache.c: Thread lstat error through make_cache_entry signature merge-recursive: Tolerate missing file when HEAD is up to date
builtin/apply.c | 2 +- builtin/checkout.c | 2 +- builtin/reset.c | 2 +- cache.h | 2 +- merge-recursive.c | 22 ++++++++++++++-------- read-cache.c | 12 +++++++----- resolve-undo.c | 2 +- t/t3030-merge-recursive.sh | 47 ++++++++++++++++++++++++++++++++++++++++++++++ 8 files changed, 73 insertions(+), 18 deletions(-)
-- 1.8.5.2