author | Linus Torvalds <torvalds@osdl.org> | |
Thu, 29 Jun 2006 05:06:36 +0000 (22:06 -0700) | ||
committer | Junio C Hamano <junkio@cox.net> | |
Thu, 29 Jun 2006 05:24:45 +0000 (22:24 -0700) | ||
commit | 0c7993839b92f466278439a724023f8be50391c1 | |
tree | fd1fc5395f2dce9c742b0902c82fe60e4b9da718 | tree | snapshot |
parent | 83788070a3dd0a4905dd76c865320c51f7d74a83 | commit | diff |
Improved three-way blob merging code
This fleshes out the code that generates a three-way merge of a set of
blobs.
It still actually does the three-way merge using an external executable
(ie just calling "merge"), but the interfaces have been cleaned up a lot
and are now fully based on the 'mmfile_t' interface, so if libxdiff were
to ever grow a compatible three-way-merge, it could probably be directly
plugged in.
It also uses the previous XDL_EMIT_COMMON functionality extension to
libxdiff to generate a made-up base file for the merge for the case where
no base file previously existed. This should be equivalent to what we
currently do in git-merge-one-file.sh:
diff -u -La/$orig -Lb/$orig $orig $src2 | git-apply --no-add
except it should be much simpler and can be done using the direct libxdiff
interfaces.
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
This fleshes out the code that generates a three-way merge of a set of
blobs.
It still actually does the three-way merge using an external executable
(ie just calling "merge"), but the interfaces have been cleaned up a lot
and are now fully based on the 'mmfile_t' interface, so if libxdiff were
to ever grow a compatible three-way-merge, it could probably be directly
plugged in.
It also uses the previous XDL_EMIT_COMMON functionality extension to
libxdiff to generate a made-up base file for the merge for the case where
no base file previously existed. This should be equivalent to what we
currently do in git-merge-one-file.sh:
diff -u -La/$orig -Lb/$orig $orig $src2 | git-apply --no-add
except it should be much simpler and can be done using the direct libxdiff
interfaces.
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
Makefile | diff | blob | history | |
merge-file.c | [new file with mode: 0644] | blob |
merge-tree.c | diff | blob | history |