Miscellaneous const changes and utilities

The list of remote refs in struct transport should be const, because
builtin-fetch will get confused if it changes.

The url in git_connect should be const (and work on a copy) instead of
requiring the caller to copy it.

match_refs doesn't modify the refspecs it gets.

get_fetch_map and get_remote_ref don't change the list they get.

Allow transport get_refs_list methods to modify the struct transport.

Add a function to copy a list of refs, when a function needs a mutable
copy of a const list.

Add a function to check the type of a ref, as per the code in connect.c

Signed-off-by: Daniel Barkalow <barkalow@iabervon.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Daniel Barkalow
2007-10-29 21:05:40 -04:00
committed by Junio C Hamano
parent e3d6d56f1c
commit 4577370e9b
9 changed files with 57 additions and 33 deletions

View File

@@ -207,7 +207,7 @@ static void update_tracking_ref(struct remote *remote, struct ref *ref)
}
}
static int send_pack(int in, int out, struct remote *remote, int nr_refspec, char **refspec)
static int send_pack(int in, int out, struct remote *remote, int nr_refspec, const char **refspec)
{
struct ref *ref;
int new_refs;
@@ -357,7 +357,7 @@ static int send_pack(int in, int out, struct remote *remote, int nr_refspec, cha
return ret;
}
static void verify_remote_names(int nr_heads, char **heads)
static void verify_remote_names(int nr_heads, const char **heads)
{
int i;
@@ -382,7 +382,7 @@ int main(int argc, char **argv)
{
int i, nr_heads = 0;
char *dest = NULL;
char **heads = NULL;
const char **heads = NULL;
int fd[2], ret;
struct child_process *conn;
char *remote_name = NULL;
@@ -434,7 +434,7 @@ int main(int argc, char **argv)
dest = arg;
continue;
}
heads = argv;
heads = (const char **) argv;
nr_heads = argc - i;
break;
}