]> git.proxmox.com Git - libgit2.git/commitdiff
Remove enum git_whn
authorCarlos Martín Nieto <carlos@cmartin.tk>
Sun, 7 Aug 2011 12:02:04 +0000 (14:02 +0200)
committerVicent Marti <tanoku@gmail.com>
Thu, 18 Aug 2011 00:34:09 +0000 (02:34 +0200)
Instead, use flags inside the git_remote_head structure.

Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
include/git2/net.h
src/fetch.c
src/pkt.c

index c2260fc3be356111d8f45f491faecc8d01e957dd..7c49f804b40e0e099570d8974b56abcc0f389efe 100644 (file)
@@ -48,18 +48,12 @@ GIT_BEGIN_DECL
 #define GIT_DIR_FETCH 0
 #define GIT_DIR_PUSH 1
 
-enum git_whn {
-       GIT_WHN_NONE,
-       GIT_WHN_HAVE,
-       GIT_WHN_WANT,
-};
-
 /**
  * Remote head description, given out on `ls` calls.
  */
 struct git_remote_head {
-       enum git_whn type;
-       int local; /** Exists locally */
+       int local:1, /* available locally */
+           want:1; /* want to update */
        git_oid oid;
        git_oid loid;
        char *name;
index 7abc196e417b33e491cdd24bd18d91bc5ec729c8..e00b2e31ecd742faed201cf369c70db843bde5b2 100644 (file)
 #include "refspec.h"
 #include "fetch.h"
 
-/*
- * Don't forget that this depends on the enum being correctly set
- */
-static int whn_cmp(const void *a, const void *b)
-{
-       git_remote_head *heada = (git_remote_head *) a;
-       git_remote_head *headb = (git_remote_head *) b;
-
-       return headb->type - heada->type;
-}
-
 static int filter_wants(git_remote *remote)
 {
        git_vector list;
@@ -55,7 +44,7 @@ static int filter_wants(git_remote *remote)
        int error;
        unsigned int i;
 
-       error = git_vector_init(&list, 16, whn_cmp);
+       error = git_vector_init(&list, 16, NULL);
        if (error < GIT_SUCCESS)
                return error;
 
@@ -112,13 +101,12 @@ static int filter_wants(git_remote *remote)
                 * to the list, storing the local oid for that branch so we
                 * don't have to look for it again.
                 */
-               head->type = GIT_WHN_WANT;
+               head->want = 1;
                error = git_vector_insert(&list, head);
                if (error < GIT_SUCCESS)
                        goto cleanup;
        }
 
-       git_vector_sort(&list);
        remote->refs.len = list.length;
        remote->refs.heads = (git_remote_head **) list.contents;
 
index 12f1478b8c37954dcd6f1955e8a9e31afb9e6e95..419fb9cf0784e8d92ec4ac3c5349fe598f461744 100644 (file)
--- a/src/pkt.c
+++ b/src/pkt.c
@@ -318,8 +318,8 @@ int git_pkt_send_wants(git_headarray *refs, git_transport_caps *caps, int fd)
 
        for (; i < refs->len; ++i) {
                head = refs->heads[i];
-               if (head->type != GIT_WHN_WANT)
-                       continue; /* FIXME: return? refs shouldn't have any other type */
+               if (head->local)
+                       continue;
 
                git_oid_fmt(buf + STRLEN(WANT_PREFIX), &head->oid);
                gitno_send(fd, buf, STRLEN(buf), 0);