mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-11 18:17:54 +00:00
Merge pull request #791 from carlosmn/index-path
indexer: don't use '/objects/pack/' unconditionally
This commit is contained in:
commit
1de44c2493
@ -2,7 +2,7 @@ default: all
|
|||||||
|
|
||||||
CC = gcc
|
CC = gcc
|
||||||
CFLAGS += -g
|
CFLAGS += -g
|
||||||
CFLAGS += -I../../include -L../../build -lgit2 -lpthread
|
CFLAGS += -I../../include -L../../build -L../.. -lgit2 -lpthread
|
||||||
|
|
||||||
OBJECTS = \
|
OBJECTS = \
|
||||||
git2.o \
|
git2.o \
|
||||||
|
@ -25,7 +25,7 @@ int index_pack(git_repository *repo, int argc, char **argv)
|
|||||||
return EXIT_FAILURE;
|
return EXIT_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (git_indexer_stream_new(&idx, ".git") < 0) {
|
if (git_indexer_stream_new(&idx, ".") < 0) {
|
||||||
puts("bad idx");
|
puts("bad idx");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -29,9 +29,9 @@ typedef struct git_indexer_stream git_indexer_stream;
|
|||||||
* Create a new streaming indexer instance
|
* Create a new streaming indexer instance
|
||||||
*
|
*
|
||||||
* @param out where to store the indexer instance
|
* @param out where to store the indexer instance
|
||||||
* @param path to the gitdir (metadata directory)
|
* @param path to the directory where the packfile should be stored
|
||||||
*/
|
*/
|
||||||
GIT_EXTERN(int) git_indexer_stream_new(git_indexer_stream **out, const char *gitdir);
|
GIT_EXTERN(int) git_indexer_stream_new(git_indexer_stream **out, const char *path);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add data to the indexer
|
* Add data to the indexer
|
||||||
|
@ -118,7 +118,8 @@ int git_fetch__download_pack(
|
|||||||
int recvd;
|
int recvd;
|
||||||
char buff[1024];
|
char buff[1024];
|
||||||
gitno_buffer buf;
|
gitno_buffer buf;
|
||||||
git_indexer_stream *idx;
|
git_buf path = GIT_BUF_INIT;
|
||||||
|
git_indexer_stream *idx = NULL;
|
||||||
|
|
||||||
gitno_buffer_setup(t, &buf, buff, sizeof(buff));
|
gitno_buffer_setup(t, &buf, buff, sizeof(buff));
|
||||||
|
|
||||||
@ -127,9 +128,12 @@ int git_fetch__download_pack(
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (git_indexer_stream_new(&idx, git_repository_path(repo)) < 0)
|
if (git_buf_joinpath(&path, git_repository_path(repo), "objects/pack") < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
|
if (git_indexer_stream_new(&idx, git_buf_cstr(&path)) < 0)
|
||||||
|
goto on_error;
|
||||||
|
|
||||||
memset(stats, 0, sizeof(git_indexer_stats));
|
memset(stats, 0, sizeof(git_indexer_stats));
|
||||||
if (git_indexer_stream_add(idx, buffered, buffered_size, stats) < 0)
|
if (git_indexer_stream_add(idx, buffered, buffered_size, stats) < 0)
|
||||||
goto on_error;
|
goto on_error;
|
||||||
@ -154,6 +158,7 @@ int git_fetch__download_pack(
|
|||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
on_error:
|
on_error:
|
||||||
|
git_buf_free(&path);
|
||||||
git_indexer_stream_free(idx);
|
git_indexer_stream_free(idx);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -142,7 +142,7 @@ int git_indexer_stream_new(git_indexer_stream **out, const char *prefix)
|
|||||||
{
|
{
|
||||||
git_indexer_stream *idx;
|
git_indexer_stream *idx;
|
||||||
git_buf path = GIT_BUF_INIT;
|
git_buf path = GIT_BUF_INIT;
|
||||||
static const char suff[] = "/objects/pack/pack-received";
|
static const char suff[] = "/pack";
|
||||||
int error;
|
int error;
|
||||||
|
|
||||||
idx = git__calloc(1, sizeof(git_indexer_stream));
|
idx = git__calloc(1, sizeof(git_indexer_stream));
|
||||||
|
@ -545,6 +545,7 @@ static int http_download_pack(git_transport *transport, git_repository *repo, gi
|
|||||||
http_parser_settings settings;
|
http_parser_settings settings;
|
||||||
char buffer[1024];
|
char buffer[1024];
|
||||||
gitno_buffer buf;
|
gitno_buffer buf;
|
||||||
|
git_buf path = GIT_BUF_INIT;
|
||||||
git_indexer_stream *idx = NULL;
|
git_indexer_stream *idx = NULL;
|
||||||
download_pack_cbdata data;
|
download_pack_cbdata data;
|
||||||
|
|
||||||
@ -555,7 +556,10 @@ static int http_download_pack(git_transport *transport, git_repository *repo, gi
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (git_indexer_stream_new(&idx, git_repository_path(repo)) < 0)
|
if (git_buf_joinpath(&path, git_repository_path(repo), "objects/pack") < 0)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
if (git_indexer_stream_new(&idx, git_buf_cstr(&path)) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -600,6 +604,7 @@ static int http_download_pack(git_transport *transport, git_repository *repo, gi
|
|||||||
|
|
||||||
on_error:
|
on_error:
|
||||||
git_indexer_stream_free(idx);
|
git_indexer_stream_free(idx);
|
||||||
|
git_buf_free(&path);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user