Re: [PATCH v2 1/2] sparse checkout: show error messages when worktree shaping fails
- From
Joshua Jensen <jjensen@workspacewhiz.com>
- Date
- Sep 22, 2011, 19:57 UTC
- Message-ID
- <4E7B931F.5010600@workspacewhiz.com>
- In-Reply-To
- <1316690663-29382-1-git-send-email-pclouds@gmail.com>
----- Original Message ----- From: Nguyễn Thái Ngọc Duy Date: 9/22/2011 5:24 AM
Show 39 quoted lines
> diff --git a/unpack-trees.c b/unpack-trees.c
> index cc616c3..fcf40a0 100644
> --- a/unpack-trees.c
> +++ b/unpack-trees.c
> @@ -1089,6 +1089,7 @@ int unpack_trees(unsigned len, struct tree_desc *t, struct unpack_trees_options
> */
> mark_new_skip_worktree(o->el,&o->result, CE_ADDED, CE_SKIP_WORKTREE | CE_NEW_SKIP_WORKTREE);
>
> + ret = 0;
> for (i = 0; i< o->result.cache_nr; i++) {
> struct cache_entry *ce = o->result.cache[i];
>
> @@ -1101,17 +1102,23 @@ int unpack_trees(unsigned len, struct tree_desc *t, struct unpack_trees_options
> * correct CE_NEW_SKIP_WORKTREE
> */
> if (ce->ce_flags& CE_ADDED&&
> - verify_absent(ce, ERROR_WOULD_LOSE_UNTRACKED_OVERWRITTEN, o))
> - return -1;
> + verify_absent(ce, ERROR_WOULD_LOSE_UNTRACKED_OVERWRITTEN, o)) {
> + if (!o->show_all_errors)
> + goto return_failed;
> + ret = -1;
> + }
>
> if (apply_sparse_checkout(ce, o)) {
> + if (!o->show_all_errors)
> + goto return_failed;
> ret = -1;
> - goto done;
> }
> if (!ce_skip_worktree(ce))
> empty_worktree = 0;
>
> }
> + if (ret< 0)
> + goto return_failed;
> if (o->result.cache_nr&& empty_worktree) {
> /* dubious---why should this fail??? */
> ret = unpack_failed(o, "Sparse checkout leaves no entry on working directory");I can confirm that this version of the patch works for me with multiple untracked files in a sparse checkout.
-Josh