Merge branch 'maint'

* maint:
  am: remove rebase-apply directory before gc
  rerere: fix memory leak if rerere images can't be read
  Documentation: mention conflict marker size argument (%L) for merge driver
This commit is contained in:
Junio C Hamano 2010-02-23 14:27:55 -08:00
commit 0901d5a2ef
3 changed files with 9 additions and 6 deletions

View File

@ -511,7 +511,8 @@ command to run to merge ancestor's version (`%O`), current
version (`%A`) and the other branches' version (`%B`). These version (`%A`) and the other branches' version (`%B`). These
three tokens are replaced with the names of temporary files that three tokens are replaced with the names of temporary files that
hold the contents of these versions when the command line is hold the contents of these versions when the command line is
built. built. Additionally, %L will be replaced with the conflict marker
size (see below).
The merge driver is expected to leave the result of the merge in The merge driver is expected to leave the result of the merge in
the file named with `%A` by overwriting it, and exit with zero the file named with `%A` by overwriting it, and exit with zero

View File

@ -776,6 +776,5 @@ do
go_next go_next
done done
git gc --auto
rm -fr "$dotest" rm -fr "$dotest"
git gc --auto

View File

@ -364,7 +364,7 @@ static int find_conflict(struct string_list *conflict)
static int merge(const char *name, const char *path) static int merge(const char *name, const char *path)
{ {
int ret; int ret;
mmfile_t cur, base, other; mmfile_t cur = {NULL, 0}, base = {NULL, 0}, other = {NULL, 0};
mmbuffer_t result = {NULL, 0}; mmbuffer_t result = {NULL, 0};
if (handle_file(path, NULL, rerere_path(name, "thisimage")) < 0) if (handle_file(path, NULL, rerere_path(name, "thisimage")) < 0)
@ -372,8 +372,10 @@ static int merge(const char *name, const char *path)
if (read_mmfile(&cur, rerere_path(name, "thisimage")) || if (read_mmfile(&cur, rerere_path(name, "thisimage")) ||
read_mmfile(&base, rerere_path(name, "preimage")) || read_mmfile(&base, rerere_path(name, "preimage")) ||
read_mmfile(&other, rerere_path(name, "postimage"))) read_mmfile(&other, rerere_path(name, "postimage"))) {
return 1; ret = 1;
goto out;
}
ret = ll_merge(&result, path, &base, &cur, "", &other, "", 0); ret = ll_merge(&result, path, &base, &cur, "", &other, "", 0);
if (!ret) { if (!ret) {
FILE *f = fopen(path, "w"); FILE *f = fopen(path, "w");
@ -387,6 +389,7 @@ static int merge(const char *name, const char *path)
strerror(errno)); strerror(errno));
} }
out:
free(cur.ptr); free(cur.ptr);
free(base.ptr); free(base.ptr);
free(other.ptr); free(other.ptr);