[FFmpeg-devel] [PATCH] doc&tools: Add murge script, for analyzing 3 way conflicts.

Clément Bœsch u at pkh.me
Wed Aug 17 20:22:23 EEST 2016


On Wed, Aug 17, 2016 at 07:06:44PM +0200, Michael Niedermayer wrote:
> Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
> ---
>  doc/libav-merge.txt |  4 ++++
>  tools/murge         | 13 +++++++++++++
>  2 files changed, 17 insertions(+)
>  create mode 100755 tools/murge
> 
> diff --git a/doc/libav-merge.txt b/doc/libav-merge.txt
> index 60c953a..47c513a 100644
> --- a/doc/libav-merge.txt
> +++ b/doc/libav-merge.txt
> @@ -103,6 +103,10 @@ It has two modes: merge, and noop. The noop mode creates a merge with no change
>  to the HEAD. You can pass a hash as extra argument to reference a justification
>  (it is common that we already have the change done in FFmpeg).
>  
> +Also see tools/murge, you can copy and paste a 3 way conflict into its stdin
> +and it will display colored diffs. Any arguments to murge (like ones to supress

suppress

> +whitespace differences) are passed into colordiff.
> +

This makes me realize that the script pasted in that document could end up
in the tools directory

>  TODO/FIXME/UNMERGED
>  ===================
>  
> diff --git a/tools/murge b/tools/murge
> new file mode 100755
> index 0000000..b4d88a1
> --- /dev/null
> +++ b/tools/murge
> @@ -0,0 +1,13 @@
> +#!/bin/sh
> +
> +grep -A99999 '<<<<<<<' | grep -B99999 '>>>>>>>' >murge.X
> +grep -A9999 '====' murge.X | egrep -v '=======|<<<<<<<|>>>>>>>|\|\|\|\|\|\|\|' >murge.theirs

sometimes 99999, sometimes 9999?

> +grep -B9999 '||||' murge.X | egrep -v '=======|<<<<<<<|>>>>>>>|\|\|\|\|\|\|\|' >murge.ours
> +grep -B9999 '====' murge.X | grep -A9999 '||||' | egrep -v '=======|<<<<<<<|>>>>>>>|\|\|\|\|\|\|\|'  >murge.common
> +
> +colordiff -du $* murge.ours murge.theirs
> +grep . murge.common > /dev/null && colordiff -du $* murge.common murge.theirs
> +grep . murge.common > /dev/null && colordiff -du $* murge.common murge.ours

> +rm murge.theirs murge.common murge.ours murge.X

maybe these files should be in /tmp

i'd also suggest

TMPFILES="murge.theirs murge.common murge.ours murge.X"
trap 'rm -f -- $TMPFILES' EXIT

(stolen from configure)

-- 
Clément B.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 473 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20160817/22e373b6/attachment.sig>


More information about the ffmpeg-devel mailing list