Merge branch 'hv/submodule-update-nuke-submodules'
authorJunio C Hamano <gitster@pobox.com>
Thu, 28 Jun 2012 22:20:08 +0000 (15:20 -0700)
committerJunio C Hamano <gitster@pobox.com>
Thu, 28 Jun 2012 22:20:08 +0000 (15:20 -0700)
"git add" allows adding a regular file to the path where a submodule
used to exist, but "git update-index" does not allow an equivalent
operation to Porcelain writers.

1  2 
builtin/update-index.c
diff --combined builtin/update-index.c
index 5f038d64da38820ebaa73ff73d1082e17c3c80d2,9ffa62a1a0b8abbfbf39aa267a7ab479adc84351..5a4e9ea55a10afe2eb0f6e138cb7fce1ef74393f
@@@ -211,12 -211,6 +211,6 @@@ static int process_path(const char *pat
        if (S_ISDIR(st.st_mode))
                return process_directory(path, len, &st);
  
-       /*
-        * Process a regular file
-        */
-       if (ce && S_ISGITLINK(ce->ce_mode))
-               return error("%s is already a gitlink, not replacing", path);
        return add_one_path(ce, path, len, &st);
  }
  
@@@ -708,7 -702,6 +702,7 @@@ int cmd_update_index(int argc, const ch
        int newfd, entries, has_errors = 0, line_termination = '\n';
        int read_from_stdin = 0;
        int prefix_length = prefix ? strlen(prefix) : 0;
 +      int preferred_index_format = 0;
        char set_executable_bit = 0;
        struct refresh_params refresh_args = {0, &has_errors};
        int lock_error = 0;
                        "(for porcelains) forget saved unresolved conflicts",
                        PARSE_OPT_NOARG | PARSE_OPT_NONEG,
                        resolve_undo_clear_callback},
 +              OPT_INTEGER(0, "index-version", &preferred_index_format,
 +                          "write index in this format"),
                OPT_END()
        };
  
                }
        }
        argc = parse_options_end(&ctx);
 +      if (preferred_index_format) {
 +              if (preferred_index_format < INDEX_FORMAT_LB ||
 +                  INDEX_FORMAT_UB < preferred_index_format)
 +                      die("index-version %d not in range: %d..%d",
 +                          preferred_index_format,
 +                          INDEX_FORMAT_LB, INDEX_FORMAT_UB);
 +
 +              if (the_index.version != preferred_index_format)
 +                      active_cache_changed = 1;
 +              the_index.version = preferred_index_format;
 +      }
  
        if (read_from_stdin) {
                struct strbuf buf = STRBUF_INIT, nbuf = STRBUF_INIT;