Merge branch 'jk/fetch-auto-tag-following-fix'
Fetching via protocol v0 over Smart HTTP transport sometimes failed to correctly auto-follow tags. * jk/fetch-auto-tag-following-fix: transport-helper: re-examine object dir after fetching
This commit is contained in:
@ -733,4 +733,22 @@ test_expect_success 'no empty path components' '
|
|||||||
! grep "//" log
|
! grep "//" log
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success 'tag following always works over v0 http' '
|
||||||
|
upstream=$HTTPD_DOCUMENT_ROOT_PATH/tags &&
|
||||||
|
git init "$upstream" &&
|
||||||
|
(
|
||||||
|
cd "$upstream" &&
|
||||||
|
git commit --allow-empty -m base &&
|
||||||
|
git tag not-annotated &&
|
||||||
|
git tag -m foo annotated
|
||||||
|
) &&
|
||||||
|
git init tags &&
|
||||||
|
git -C tags -c protocol.version=0 \
|
||||||
|
fetch --depth 1 $HTTPD_URL/smart/tags \
|
||||||
|
refs/tags/annotated:refs/tags/annotated &&
|
||||||
|
git -C "$upstream" for-each-ref refs/tags >expect &&
|
||||||
|
git -C tags for-each-ref >actual &&
|
||||||
|
test_cmp expect actual
|
||||||
|
'
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
#include "refspec.h"
|
#include "refspec.h"
|
||||||
#include "transport-internal.h"
|
#include "transport-internal.h"
|
||||||
#include "protocol.h"
|
#include "protocol.h"
|
||||||
|
#include "packfile.h"
|
||||||
|
|
||||||
static int debug;
|
static int debug;
|
||||||
|
|
||||||
@ -432,6 +433,8 @@ static int fetch_with_fetch(struct transport *transport,
|
|||||||
warning(_("%s unexpectedly said: '%s'"), data->name, buf.buf);
|
warning(_("%s unexpectedly said: '%s'"), data->name, buf.buf);
|
||||||
}
|
}
|
||||||
strbuf_release(&buf);
|
strbuf_release(&buf);
|
||||||
|
|
||||||
|
reprepare_packed_git(the_repository);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user