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:
commit
0901d5a2ef
@ -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
|
||||||
|
@ -776,6 +776,5 @@ do
|
|||||||
go_next
|
go_next
|
||||||
done
|
done
|
||||||
|
|
||||||
git gc --auto
|
|
||||||
|
|
||||||
rm -fr "$dotest"
|
rm -fr "$dotest"
|
||||||
|
git gc --auto
|
||||||
|
9
rerere.c
9
rerere.c
@ -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);
|
||||||
|
Loading…
Reference in New Issue
Block a user