Hash :
348c7335
Author :
Date :
2011-02-17T21:32:00
Improve the performance when writing Index files In response to issue #60 (git_index_write really slow), the write_index function has been rewritten to improve its performance -- it should now be in par with the performance of git.git. On top of that, if Posix Threads are available when compiling libgit2, a new threaded writing system will be used (3 separate threads take care of solving byte-endianness, hashing the contents of the index and writing to disk, respectively). For very long Index files, this method is up to 3x times faster than git.git. Signed-off-by: Vicent Marti <tanoku@gmail.com>
#ifndef INCLUDE_index_h__
#define INCLUDE_index_h__
#include "fileops.h"
#include "filelock.h"
#include "vector.h"
#include "git2/odb.h"
#include "git2/index.h"
struct git_index_tree {
char *name;
struct git_index_tree *parent;
struct git_index_tree **children;
size_t children_count;
size_t entries;
git_oid oid;
};
typedef struct git_index_tree git_index_tree;
struct git_index {
git_repository *repository;
char *index_file_path;
time_t last_modified;
git_vector entries;
unsigned int sorted:1,
on_disk:1;
git_index_tree *tree;
};
#endif