MCPcopy Create free account
hub / github.com/git/git / replace_entry

Function replace_entry

split-index.c:136–162  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

134}
135
136static void replace_entry(size_t pos, void *data)
137{
138 struct index_state *istate = data;
139 struct split_index *si = istate->split_index;
140 struct cache_entry *dst, *src;
141
142 if (pos >= istate->cache_nr)
143 die("position for replacement %d exceeds base index size %d",
144 (int)pos, istate->cache_nr);
145 if (si->nr_replacements >= si->saved_cache_nr)
146 die("too many replacements (%d vs %d)",
147 si->nr_replacements, si->saved_cache_nr);
148 dst = istate->cache[pos];
149 if (dst->ce_flags & CE_REMOVE)
150 die("entry %d is marked as both replaced and deleted",
151 (int)pos);
152 src = si->saved_cache[si->nr_replacements];
153 if (ce_namelen(src))
154 die("corrupt link extension, entry %d should have "
155 "zero length name", (int)pos);
156 src->index = pos + 1;
157 src->ce_flags |= CE_UPDATE_IN_BASE;
158 src->ce_namelen = dst->ce_namelen;
159 copy_cache_entry(dst, src);
160 discard_cache_entry(src);
161 si->nr_replacements++;
162}
163
164void merge_base_index(struct index_state *istate)
165{

Callers

nothing calls this directly

Calls 3

copy_cache_entryFunction · 0.85
discard_cache_entryFunction · 0.85
dieFunction · 0.70

Tested by

no test coverage detected