projects
/
git.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'aw/rebase-i-edit-todo'
[git.git]
/
transport.c
diff --git
a/transport.c
b/transport.c
index 1811b500d92b1120a01d0ac09f86c0218f3d163b..9932f402dfee2605dbb498b120813aebaa3961f8 100644
(file)
--- a/
transport.c
+++ b/
transport.c
@@
-518,8
+518,7
@@
static int fetch_refs_via_pack(struct transport *transport,
int nr_heads, struct ref **to_fetch)
{
struct git_transport_data *data = transport->data;
int nr_heads, struct ref **to_fetch)
{
struct git_transport_data *data = transport->data;
- char **heads = xmalloc(nr_heads * sizeof(*heads));
- char **origh = xmalloc(nr_heads * sizeof(*origh));
+ struct string_list sought = STRING_LIST_INIT_DUP;
const struct ref *refs;
char *dest = xstrdup(transport->url);
struct fetch_pack_args args;
const struct ref *refs;
char *dest = xstrdup(transport->url);
struct fetch_pack_args args;
@@
-538,7
+537,7
@@
static int fetch_refs_via_pack(struct transport *transport,
args.depth = data->options.depth;
for (i = 0; i < nr_heads; i++)
args.depth = data->options.depth;
for (i = 0; i < nr_heads; i++)
-
origh[i] = heads[i] = xstrdup(
to_fetch[i]->name);
+
string_list_append(&sought,
to_fetch[i]->name);
if (!data->got_remote_heads) {
connect_setup(transport, 0, 0);
if (!data->got_remote_heads) {
connect_setup(transport, 0, 0);
@@
-548,7
+547,7
@@
static int fetch_refs_via_pack(struct transport *transport,
refs = fetch_pack(&args, data->fd, data->conn,
refs_tmp ? refs_tmp : transport->remote_refs,
refs = fetch_pack(&args, data->fd, data->conn,
refs_tmp ? refs_tmp : transport->remote_refs,
- dest,
nr_heads, heads
, &transport->pack_lockfile);
+ dest,
&sought
, &transport->pack_lockfile);
close(data->fd[0]);
close(data->fd[1]);
if (finish_connect(data->conn))
close(data->fd[0]);
close(data->fd[1]);
if (finish_connect(data->conn))
@@
-558,10
+557,7
@@
static int fetch_refs_via_pack(struct transport *transport,
free_refs(refs_tmp);
free_refs(refs_tmp);
- for (i = 0; i < nr_heads; i++)
- free(origh[i]);
- free(origh);
- free(heads);
+ string_list_clear(&sought, 0);
free(dest);
return (refs ? 0 : -1);
}
free(dest);
return (refs ? 0 : -1);
}