Hash :
c3a20d5c
Author :
Date :
2010-11-14T22:11:46
Add support for 'index add' Actually add files to the index by creating their corresponding blob and storing it on the repository, then getting the hash and updating the index file. Signed-off-by: Vicent Marti <tanoku@gmail.com>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
#include "test_lib.h"
#include "test_helpers.h"
#include "index.h"
#include <git/odb.h>
#include <git/index.h>
#define TEST_INDEX_PATH "../t0600-objects/index"
void print_entries(git_index *index)
{
unsigned int i;
for (i = 0; i < index->entry_count; ++i)
printf("%d: %s\n", i, index->entries[i].path);
}
void randomize_entries(git_index *index)
{
unsigned int i, j;
git_index_entry tmp;
srand((unsigned int)time(NULL));
for (i = 0; i < index->entry_count; ++i) {
j = rand() % index->entry_count;
memcpy(&tmp, &index->entries[j], sizeof(git_index_entry));
memcpy(&index->entries[j], &index->entries[i], sizeof(git_index_entry));
memcpy(&index->entries[i], &tmp, sizeof(git_index_entry));
}
index->sorted = 0;
}
BEGIN_TEST(index_sort_test)
git_index *index;
unsigned int i;
must_pass(git_index_open_bare(&index, TEST_INDEX_PATH));
must_pass(git_index_read(index));
randomize_entries(index);
git_index__sort(index);
must_be_true(index->sorted);
for (i = 1; i < index->entry_count; ++i)
must_be_true(strcmp(index->entries[i - 1].path,
index->entries[i].path) < 0);
git_index_free(index);
END_TEST
BEGIN_TEST(index_sort_empty_test)
git_index *index;
must_pass(git_index_open_bare(&index, "fake-index"));
git_index__sort(index);
must_be_true(index->sorted);
git_index_free(index);
END_TEST