add get_size_from_delta()
[gitweb.git] / builtin-update-index.c
index 65246dad8d075de3f77454494c419000288c9ed2..47d42ed6450695b0502b58e6aca9dabeb96e5bf5 100644 (file)
@@ -60,7 +60,7 @@ static int mark_valid(const char *path)
        return -1;
 }
 
-static int add_file_to_cache(const char *path)
+static int process_file(const char *path)
 {
        int size, namelen, option, status;
        struct cache_entry *ce;
@@ -109,11 +109,11 @@ static int add_file_to_cache(const char *path)
        ce->ce_flags = htons(namelen);
        fill_stat_cache_info(ce, &st);
 
-       if (trust_executable_bit)
+       if (trust_executable_bit && has_symlinks)
                ce->ce_mode = create_ce_mode(st.st_mode);
        else {
-               /* If there is an existing entry, pick the mode bits
-                * from it, otherwise assume unexecutable.
+               /* If there is an existing entry, pick the mode bits and type
+                * from it, otherwise assume unexecutable regular file.
                 */
                struct cache_entry *ent;
                int pos = cache_name_pos(path, namelen);
@@ -210,7 +210,7 @@ static void update_one(const char *path, const char *prefix, int prefix_length)
                report("remove '%s'", path);
                goto free_return;
        }
-       if (add_file_to_cache(p))
+       if (process_file(p))
                die("Unable to process file %s", path);
        report("add '%s'", path);
  free_return:
@@ -495,7 +495,7 @@ int cmd_update_index(int argc, const char **argv, const char *prefix)
        /* We can't free this memory, it becomes part of a linked list parsed atexit() */
        lock_file = xcalloc(1, sizeof(struct lock_file));
 
-       newfd = hold_lock_file_for_update(lock_file, get_index_file(), 0);
+       newfd = hold_locked_index(lock_file, 0);
        if (newfd < 0)
                lock_error = errno;
 
@@ -661,7 +661,7 @@ int cmd_update_index(int argc, const char **argv, const char *prefix)
                            get_index_file(), strerror(lock_error));
                }
                if (write_cache(newfd, active_cache, active_nr) ||
-                   close(newfd) || commit_lock_file(lock_file))
+                   close(newfd) || commit_locked_index(lock_file))
                        die("Unable to write new index file");
        }