mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-11 18:17:54 +00:00
Merge pull request #1512 from carlosmn/push-delete-only
Fix push for delete-only and add travis rules to test it
This commit is contained in:
commit
0f85c20840
@ -25,6 +25,10 @@ install:
|
|||||||
|
|
||||||
# Run the Build script
|
# Run the Build script
|
||||||
script:
|
script:
|
||||||
|
- mkdir _temp
|
||||||
|
- git init --bare _temp/test.git
|
||||||
|
- git daemon --listen=localhost --export-all --enable=receive-pack --base-path=_temp _temp 2>/dev/null &
|
||||||
|
- export GITTEST_REMOTE_URL="git://localhost/test.git"
|
||||||
- mkdir _build
|
- mkdir _build
|
||||||
- cd _build
|
- cd _build
|
||||||
- cmake .. -DCMAKE_INSTALL_PREFIX=../_install $OPTIONS
|
- cmake .. -DCMAKE_INSTALL_PREFIX=../_install $OPTIONS
|
||||||
|
@ -807,13 +807,13 @@ int git_smart__push(git_transport *transport, git_push *push)
|
|||||||
transport_smart *t = (transport_smart *)transport;
|
transport_smart *t = (transport_smart *)transport;
|
||||||
git_smart_subtransport_stream *s;
|
git_smart_subtransport_stream *s;
|
||||||
git_buf pktline = GIT_BUF_INIT;
|
git_buf pktline = GIT_BUF_INIT;
|
||||||
int error = -1;
|
int error = -1, need_pack = 0;
|
||||||
|
push_spec *spec;
|
||||||
|
unsigned int i;
|
||||||
|
|
||||||
#ifdef PUSH_DEBUG
|
#ifdef PUSH_DEBUG
|
||||||
{
|
{
|
||||||
git_remote_head *head;
|
git_remote_head *head;
|
||||||
push_spec *spec;
|
|
||||||
unsigned int i;
|
|
||||||
char hex[41]; hex[40] = '\0';
|
char hex[41]; hex[40] = '\0';
|
||||||
|
|
||||||
git_vector_foreach(&push->remote->refs, i, head) {
|
git_vector_foreach(&push->remote->refs, i, head) {
|
||||||
@ -831,10 +831,23 @@ int git_smart__push(git_transport *transport, git_push *push)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Figure out if we need to send a packfile; which is in all
|
||||||
|
* cases except when we only send delete commands
|
||||||
|
*/
|
||||||
|
git_vector_foreach(&push->specs, i, spec) {
|
||||||
|
if (spec->lref) {
|
||||||
|
need_pack = 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (git_smart__get_push_stream(t, &s) < 0 ||
|
if (git_smart__get_push_stream(t, &s) < 0 ||
|
||||||
gen_pktline(&pktline, push) < 0 ||
|
gen_pktline(&pktline, push) < 0 ||
|
||||||
s->write(s, git_buf_cstr(&pktline), git_buf_len(&pktline)) < 0 ||
|
s->write(s, git_buf_cstr(&pktline), git_buf_len(&pktline)) < 0)
|
||||||
git_packbuilder_foreach(push->pb, &stream_thunk, s) < 0)
|
goto on_error;
|
||||||
|
|
||||||
|
if (need_pack && git_packbuilder_foreach(push->pb, &stream_thunk, s) < 0)
|
||||||
goto on_error;
|
goto on_error;
|
||||||
|
|
||||||
/* If we sent nothing or the server doesn't support report-status, then
|
/* If we sent nothing or the server doesn't support report-status, then
|
||||||
|
Loading…
Reference in New Issue
Block a user