]> git.proxmox.com Git - libgit2.git/commitdiff
pack-odb: Check `mtime` instead of folder size
authorVicent Marti <tanoku@gmail.com>
Sun, 1 May 2011 18:31:58 +0000 (21:31 +0300)
committerVicent Marti <tanoku@gmail.com>
Sun, 1 May 2011 18:31:58 +0000 (21:31 +0300)
Do not check the folder's size to detect new packfiles at runtime. This
doesn't work on Win32.

src/odb_pack.c

index 40ef48fafaddc98300e41554eda8c824df7d0e5f..940750e1c25ee2fb21b61a18ac47b7c4407b6b4c 100644 (file)
@@ -113,7 +113,7 @@ struct pack_backend {
        git_vector packs;
        struct pack_file *last_found;
        char *pack_folder;
-       size_t pack_folder_size;
+       time_t pack_folder_mtime;
 
        size_t window_size; /* needs default value */
 
@@ -874,7 +874,7 @@ static int packfile_refresh_all(struct pack_backend *backend)
        if (gitfo_stat(backend->pack_folder, &st) < 0 || !S_ISDIR(st.st_mode))
                return GIT_ENOTFOUND;
 
-       if ((size_t)st.st_size != backend->pack_folder_size) {
+       if (st.st_mtime != backend->pack_folder_mtime) {
                char path[GIT_PATH_MAX];
                strcpy(path, backend->pack_folder);
 
@@ -884,7 +884,7 @@ static int packfile_refresh_all(struct pack_backend *backend)
                        return error;
 
                git_vector_sort(&backend->packs);
-               backend->pack_folder_size = (size_t)st.st_size;
+               backend->pack_folder_mtime = st.st_mtime;
        }
 
        return GIT_SUCCESS;
@@ -1408,7 +1408,7 @@ int git_odb_backend_pack(git_odb_backend **backend_out, const char *objects_dir)
        git__joinpath(path, objects_dir, "pack");
        if (gitfo_isdir(path) == GIT_SUCCESS) {
                backend->pack_folder = git__strdup(path);
-               backend->pack_folder_size = 0;
+               backend->pack_folder_mtime = 0;
 
                if (backend->pack_folder == NULL) {
                        free(backend);