Show More
@@ -728,6 +728,42 b' class localrepository:' | |||
|
728 | 728 | |
|
729 | 729 | tr.close() |
|
730 | 730 | |
|
731 | def merge3(self, fl, fn, my, other, transaction, link): | |
|
732 | """perform a 3-way merge and append the result""" | |
|
733 | ||
|
734 | def temp(prefix, node): | |
|
735 | pre = "%s~%s." % (os.path.basename(fn), prefix) | |
|
736 | (fd, name) = tempfile.mkstemp("", pre) | |
|
737 | f = os.fdopen(fd, "w") | |
|
738 | f.write(fl.revision(node)) | |
|
739 | f.close() | |
|
740 | return name | |
|
741 | ||
|
742 | base = fl.ancestor(my, other) | |
|
743 | self.ui.note("resolving %s\n" % fn) | |
|
744 | self.ui.debug("local %s remote %s ancestor %s\n" % | |
|
745 | (short(my), short(other), short(base))) | |
|
746 | ||
|
747 | if my == base: | |
|
748 | text = fl.revision(other) | |
|
749 | else: | |
|
750 | a = temp("local", my) | |
|
751 | b = temp("remote", other) | |
|
752 | c = temp("parent", base) | |
|
753 | ||
|
754 | cmd = os.environ["HGMERGE"] | |
|
755 | self.ui.debug("invoking merge with %s\n" % cmd) | |
|
756 | r = os.system("%s %s %s %s" % (cmd, a, b, c)) | |
|
757 | if r: | |
|
758 | raise "Merge failed!" | |
|
759 | ||
|
760 | text = open(a).read() | |
|
761 | os.unlink(a) | |
|
762 | os.unlink(b) | |
|
763 | os.unlink(c) | |
|
764 | ||
|
765 | return fl.addrevision(text, transaction, link, my, other) | |
|
766 | ||
|
731 | 767 | class remoterepository: |
|
732 | 768 | def __init__(self, ui, path): |
|
733 | 769 | self.url = path.replace("hg://", "http://", 1) |
General Comments 0
You need to be logged in to leave comments.
Login now