Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
unpack-trees: be specific what part of the index has changed
author
Nguyễn Thái Ngọc Duy
<pclouds@gmail.com>
Fri, 13 Jun 2014 12:19:30 +0000
(19:19 +0700)
committer
Junio C Hamano
<gitster@pobox.com>
Fri, 13 Jun 2014 18:49:39 +0000
(11:49 -0700)
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
unpack-trees.c
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
6c306a3
)
diff --git
a/unpack-trees.c
b/unpack-trees.c
index 97fc9954672f2c374541cad827bb5c459abebcdc..a722685f9aceb41733c938da6f6b294615d22bc0 100644
(file)
--- a/
unpack-trees.c
+++ b/
unpack-trees.c
@@
-246,7
+246,9
@@
static int verify_absent_sparse(const struct cache_entry *ce,
enum unpack_trees_error_types,
struct unpack_trees_options *o);
enum unpack_trees_error_types,
struct unpack_trees_options *o);
-static int apply_sparse_checkout(struct cache_entry *ce, struct unpack_trees_options *o)
+static int apply_sparse_checkout(struct index_state *istate,
+ struct cache_entry *ce,
+ struct unpack_trees_options *o)
{
int was_skip_worktree = ce_skip_worktree(ce);
{
int was_skip_worktree = ce_skip_worktree(ce);
@@
-254,6
+256,8
@@
static int apply_sparse_checkout(struct cache_entry *ce, struct unpack_trees_opt
ce->ce_flags |= CE_SKIP_WORKTREE;
else
ce->ce_flags &= ~CE_SKIP_WORKTREE;
ce->ce_flags |= CE_SKIP_WORKTREE;
else
ce->ce_flags &= ~CE_SKIP_WORKTREE;
+ if (was_skip_worktree != ce_skip_worktree(ce))
+ istate->cache_changed |= CE_ENTRY_CHANGED;
/*
* if (!was_skip_worktree && !ce_skip_worktree()) {
/*
* if (!was_skip_worktree && !ce_skip_worktree()) {
@@
-1131,7
+1135,7
@@
int unpack_trees(unsigned len, struct tree_desc *t, struct unpack_trees_options
ret = -1;
}
ret = -1;
}
- if (apply_sparse_checkout(ce, o)) {
+ if (apply_sparse_checkout(
&o->result,
ce, o)) {
if (!o->show_all_errors)
goto return_failed;
ret = -1;
if (!o->show_all_errors)
goto return_failed;
ret = -1;