From: Jacob Keller <[email protected]>
Hopefully the final revision here. I've squashed in the memory leak fix
suggested by Stefan, and the suggested changes from Junio, including his
re-worded commit messages.
interdiff between v11 and v12
diff --git c/path.c w/path.c
index 3dbc4478a4aa..ba60c9849ef7 100644
--- c/path.c
+++ w/path.c
@@ -467,7 +467,7 @@ const char *worktree_git_path(const struct worktree *wt,
const char *fmt, ...)
return pathname->buf;
}
-/* Returns 0 on success, non-zero on failure. */
+/* Returns 0 on success, negative on failure. */
#define SUBMODULE_PATH_ERR_NOT_CONFIGURED -1
static int do_submodule_path(struct strbuf *buf, const char *path,
const char *fmt, va_list args)
@@ -523,8 +523,10 @@ char *git_pathdup_submodule(const char *path, const char
*fmt, ...)
va_start(args, fmt);
err = do_submodule_path(&buf, path, fmt, args);
va_end(args);
- if (err)
+ if (err) {
+ strbuf_release(&buf);
return NULL;
+ }
return strbuf_detach(&buf, NULL);
}
-------->8
Jacob Keller (7):
cache: add empty_tree_oid object and helper function
graph: add support for --line-prefix on all graph-aware output
diff: prepare for additional submodule formats
allow do_submodule_path to work even if submodule isn't checked out
submodule: convert show_submodule_summary to use struct object_id *
submodule: refactor show_submodule_summary with helper function
diff: teach diff to display submodule difference with an inline diff
Junio C Hamano (1):
diff.c: remove output_prefix_length field
Documentation/diff-config.txt | 9 +-
Documentation/diff-options.txt | 20 +-
builtin/rev-list.c | 70 +-
cache.h | 29 +-
diff.c | 64 +-
diff.h | 11 +-
graph.c | 100 ++-
graph.h | 22 +-
log-tree.c | 5 +-
path.c | 39 +-
refs/files-backend.c | 8 +-
sha1_file.c | 6 +
submodule.c | 190 +++++-
submodule.h | 8 +-
t/t4013-diff-various.sh | 6 +
...diff.diff_--line-prefix=abc_master_master^_side | 29 +
t/t4013/diff.diff_--line-prefix_--cached_--_file0 | 15 +
t/t4059-diff-submodule-not-initialized.sh | 127 ++++
t/t4060-diff-submodule-option-diff-format.sh | 749 +++++++++++++++++++++
t/t4202-log.sh | 323 +++++++++
20 files changed, 1666 insertions(+), 164 deletions(-)
create mode 100644 t/t4013/diff.diff_--line-prefix=abc_master_master^_side
create mode 100644 t/t4013/diff.diff_--line-prefix_--cached_--_file0
create mode 100755 t/t4059-diff-submodule-not-initialized.sh
create mode 100755 t/t4060-diff-submodule-option-diff-format.sh
--
2.10.0.rc2.311.g2bd286e