summaryrefslogtreecommitdiff
path: root/src/commit.c
diff options
context:
space:
mode:
authorJakob Pfender <jpfender@elegosoft.com>2011-03-24 15:32:24 +0100
committerVicent Marti <tanoku@gmail.com>2011-03-25 00:49:47 +0200
commit3bdc0d4c8c3a51e6b338c8166d98d5b82cb01a43 (patch)
tree1f2bdbebaf942d5acfdde6e49b1634cdc8076778 /src/commit.c
parentf3cf7f6df1d2e2fcbd4f22dae318fbc4570833d8 (diff)
downloadlibgit2-3bdc0d4c8c3a51e6b338c8166d98d5b82cb01a43.tar.gz
index.c: Read index after initialization
The current behaviour of git_index_open{bare,inrepo}() is unexpected. When an index is opened, an in-memory index object is created that is linked to the index discovered by git_repository_open(). However, this index object is empty, as the on-disk index is not read. To fully open the on-disk index file, git_index_read() has to be called. This leads to confusing behaviour. Consider the following code: git_index *idx; git_index_open_inrepo(&idx, repo); git_index_write(idx); You would expect this to have no effect, as the index is never ostensibly manipulated. However, what actually happens is that the index entries are removed from the on-disk index because the empty in-memory index object created by open_inrepo() is written back to the disk. This patch reads the index after opening it.
Diffstat (limited to 'src/commit.c')
0 files changed, 0 insertions, 0 deletions