Jelajahi Sumber

allow one to use GNU diffutils' diff3/sdiff as a last resort for merging

Ralf S. Engelschall 19 tahun lalu
induk
melakukan
f79e6ef1d7
2 mengubah file dengan 63 tambahan dan 2 penghapusan
  1. 62 1
      monotone/monotone.patch
  2. 1 1
      monotone/monotone.spec

+ 62 - 1
monotone/monotone.patch

@@ -1,6 +1,6 @@
 Index: mtn.1
 --- mtn.1.orig	2006-12-27 11:04:23 +0100
-+++ mtn.1	2007-01-29 23:27:09 +0100
++++ mtn.1	2007-02-04 12:26:07 +0100
 @@ -19,7 +19,7 @@
  Make a "branch" cert approving of a revision's membership in a branch.
  .TP
@@ -19,3 +19,64 @@ Index: mtn.1
  Change passphrase of the private half of a key.
  .TP
  \fBlist certs\fP \fI<id>\fP
+Index: std_hooks.lua
+--- std_hooks.lua.orig	2006-12-27 11:04:25 +0100
++++ std_hooks.lua	2007-02-04 12:27:38 +0100
+@@ -458,6 +458,48 @@
+    wanted = function () return os.getenv("MTN_RCSMERGE") ~= nil end
+ }
+ 
++mergers.diffutils = {
++   cmd = function (tbl)
++      local ret = execute(
++          "diff3",
++          "--merge",
++          "--label", string.format("%s [left]",     tbl.left_path ),
++          "--label", string.format("%s [ancestor]", tbl.anc_path  ),
++          "--label", string.format("%s [right]",    tbl.right_path),
++          tbl.lfile,
++          tbl.afile,
++          tbl.rfile
++      )
++      if (ret ~= 0) then
++         io.write(gettext("Error running GNU diffutils 3-way difference tool 'diff3'\n"))
++         return false
++      end
++      local ret = execute(
++          "sdiff",
++          "--diff-program=diff",
++          "--suppress-common-lines",
++          "--minimal",
++          "--output", tbl.outfile,
++          tbl.lfile,
++          tbl.rfile
++      )
++      if (ret == 2) then
++         io.write(gettext("Error running GNU diffutils 2-two merging tool 'sdiff'\n"))
++         return false
++      end
++      return tbl.outfile
++   end,
++   available =
++      function ()
++          return program_exists_in_path("diff3") and
++                 program_exists_in_path("sdiff");
++      end,
++   wanted =
++      function ()
++           return true
++      end
++}
++
+ mergers.emacs = {
+    cmd = function (tbl)
+       local emacs
+@@ -592,7 +634,7 @@
+ end
+ 
+ function get_preferred_merge3_command (tbl)
+-   local default_order = {"kdiff3", "xxdiff", "opendiff", "tortoise", "emacs", "vim", "meld"}
++   local default_order = {"kdiff3", "xxdiff", "opendiff", "tortoise", "emacs", "vim", "meld", "diffutils"}
+    local function existmerger(name)
+       local m = mergers[name]
+       if type(m) == "table" and m.available(tbl) then

+ 1 - 1
monotone/monotone.spec

@@ -33,7 +33,7 @@ Class:        EVAL
 Group:        SCM
 License:      GPL
 Version:      0.32
-Release:      20070129
+Release:      20070204
 
 #   list of sources
 Source0:      http://venge.net/monotone/downloads/monotone-%{version}.tar.gz