Thread (4 messages) flat view 4 messages, 3 authors, 2016-06-15

Re: [PATCH v2 1/2] sparse checkout: show error messages when worktree shaping fails

From: Joshua Jensen <hidden>
Date: 2016-06-15 22:52:05

----- Original Message -----
From: Nguyễn Thái Ngọc Duy
Date: 9/22/2011 5:24 AM
quoted hunk ↗ jump to hunk
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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help