git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [GIT PULL] git mergetool fixes
@ 2007-03-29 15:44 Theodore Ts'o
  2007-03-29 15:44 ` [PATCH] Fix minor formatting issue in man page for git-mergetool Theodore Ts'o
  0 siblings, 1 reply; 19+ messages in thread
From: Theodore Ts'o @ 2007-03-29 15:44 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

Hi Junio,

Please pull from:

        git://repo.or.cz/git/mergetool.git

To receive the following fixes (see below).  They are mostly cleanups
and portability fixes.  They also include Arjen Laarjoven's support
for Apple Mac OS X's opendiff GUI merge tool.

----

Theodore Ts'o (11):
      Fix minor formatting issue in man page for git-mergetool
      mergetool: Replace use of "echo -n" with printf(3) to be more portable
      mergetool: Don't error out in the merge case where the local file is deleted
      mergetool: portability fix: don't assume true is in /bin
      mergetool: portability fix: don't use reserved word function
      mergetool: factor out common code
      mergetool: Remove spurious error message if merge.tool config option not set
      mergetool: Fix abort command when resolving symlinks and deleted files
      mergetool: Add support for Apple Mac OS X's opendiff command
      mergetool: Make git-rm quiet when resolving a deleted file conflict
      mergetool: Clean up description of files and prompts for merge resolutions

                                                - Ted

^ permalink raw reply	[flat|nested] 19+ messages in thread

* [PATCH] Fix minor formatting issue in man page for git-mergetool
  2007-03-29 15:44 [GIT PULL] git mergetool fixes Theodore Ts'o
@ 2007-03-29 15:44 ` Theodore Ts'o
  2007-03-29 15:44   ` [PATCH] mergetool: Replace use of "echo -n" with printf(3) to be more portable Theodore Ts'o
  0 siblings, 1 reply; 19+ messages in thread
From: Theodore Ts'o @ 2007-03-29 15:44 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git, Theodore Ts'o

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
---
 Documentation/git-mergetool.txt |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/Documentation/git-mergetool.txt b/Documentation/git-mergetool.txt
index 5baaaca..34288fe 100644
--- a/Documentation/git-mergetool.txt
+++ b/Documentation/git-mergetool.txt
@@ -26,11 +26,11 @@ OPTIONS
 	Use the merge resolution program specified by <tool>.
 	Valid merge tools are:
 	kdiff3, tkdiff, meld, xxdiff, emerge, and vimdiff.
-
-	If a merge resolution program is not specified, 'git mergetool'
-	will use the configuration variable merge.tool.  If the
-	configuration variable merge.tool is not set, 'git mergetool'
-	will pick a suitable default.
++
+If a merge resolution program is not specified, 'git mergetool'
+will use the configuration variable merge.tool.  If the
+configuration variable merge.tool is not set, 'git mergetool'
+will pick a suitable default.
 
 Author
 ------
-- 
1.5.1.rc2.1.g8afe-dirty

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH] mergetool: Replace use of "echo -n" with printf(3) to be more portable
  2007-03-29 15:44 ` [PATCH] Fix minor formatting issue in man page for git-mergetool Theodore Ts'o
@ 2007-03-29 15:44   ` Theodore Ts'o
  2007-03-29 15:44     ` [PATCH] mergetool: Don't error out in the merge case where the local file is deleted Theodore Ts'o
  2007-03-29 15:57     ` [PATCH] mergetool: Replace use of "echo -n" with printf(3) to be more portable Matthias Lederhofer
  0 siblings, 2 replies; 19+ messages in thread
From: Theodore Ts'o @ 2007-03-29 15:44 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git, Theodore Ts'o

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
---
 git-mergetool.sh |   26 +++++++++++++-------------
 1 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/git-mergetool.sh b/git-mergetool.sh
index 7942fd0..3cc428c 100755
--- a/git-mergetool.sh
+++ b/git-mergetool.sh
@@ -44,18 +44,18 @@ function describe_file () {
     branch="$2"
     file="$3"
 
-    echo -n "    "
+    printf "    "
     if test -z "$mode"; then
-	echo -n "'$path' was deleted"
+	printf  "'$path' was deleted"
     elif is_symlink "$mode" ; then
-	echo -n "'$path' is a symlink containing '"
+	printf "'$path' is a symlink containing '"
 	cat "$file"
-	echo -n "'"
+	printf "'"
     else
 	if base_present; then
-	    echo -n "'$path' was created"
+	    printf "'%s' was created" "$path"
 	else
-	    echo -n "'$path' was modified"
+	    printf "'%s' was modified" "$path"
 	fi
     fi
     echo " in the $branch branch"
@@ -64,7 +64,7 @@ function describe_file () {
 
 resolve_symlink_merge () {
     while /bin/true; do
-	echo -n "Use (r)emote or (l)ocal, or (a)bort? "
+	printf "Use (r)emote or (l)ocal, or (a)bort? "
 	read ans
 	case "$ans" in
 	    [lL]*)
@@ -88,7 +88,7 @@ resolve_symlink_merge () {
 
 resolve_deleted_merge () {
     while /bin/true; do
-	echo -n "Use (m)odified or (d)eleted file, or (a)bort? "
+	printf "Use (m)odified or (d)eleted file, or (a)bort? "
 	read ans
 	case "$ans" in
 	    [mM]*)
@@ -157,7 +157,7 @@ merge_file () {
     echo "Normal merge conflict for $path:"
     describe_file "$local_mode" "local" "$LOCAL"
     describe_file "$remote_mode" "remote" "$REMOTE"
-    echo -n "Hit return to start merge resolution tool ($merge_tool): "
+    printf "Hit return to start merge resolution tool ($merge_tool): "
     read ans
 
     case "$merge_tool" in
@@ -193,7 +193,7 @@ merge_file () {
 	    else
 		while true; do
 		    echo "$path seems unchanged."
-		    echo -n "Was the merge successful? [y/n] "
+		    printf "Was the merge successful? [y/n] "
 		    read answer < /dev/tty
 		    case "$answer" in
 			y*|Y*) status=0; break ;;
@@ -225,7 +225,7 @@ merge_file () {
 	    else
 		while true; do
 		    echo "$path seems unchanged."
-		    echo -n "Was the merge successful? [y/n] "
+		    printf "Was the merge successful? [y/n] "
 		    read answer < /dev/tty
 		    case "$answer" in
 			y*|Y*) status=0; break ;;
@@ -346,12 +346,12 @@ if test $# -eq 0 ; then
 	echo Merging the files: $files
 	git ls-files -u | sed -e 's/^[^	]*	//' | sort -u | while read i
 	do
-		echo ""
+		printf "\n"
 		merge_file "$i" < /dev/tty > /dev/tty
 	done
 else
 	while test $# -gt 0; do
-		echo ""
+		printf "\n"
 		merge_file "$1"
 		shift
 	done
-- 
1.5.1.rc2.1.g8afe-dirty

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH] mergetool: Don't error out in the merge case where the local file is deleted
  2007-03-29 15:44   ` [PATCH] mergetool: Replace use of "echo -n" with printf(3) to be more portable Theodore Ts'o
@ 2007-03-29 15:44     ` Theodore Ts'o
  2007-03-29 15:44       ` [PATCH] mergetool: portability fix: don't assume true is in /bin Theodore Ts'o
  2007-03-29 15:57     ` [PATCH] mergetool: Replace use of "echo -n" with printf(3) to be more portable Matthias Lederhofer
  1 sibling, 1 reply; 19+ messages in thread
From: Theodore Ts'o @ 2007-03-29 15:44 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git, Theodore Ts'o

If the file we are trying to merge resolve is in git-ls-files -u, then
skip the file existence test.  If the file isn't reported in
git-ls-files, then check to see if the file exists or not to give an
appropriate error message.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
---
 git-mergetool.sh |   11 +++++------
 1 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/git-mergetool.sh b/git-mergetool.sh
index 3cc428c..9d959a9 100755
--- a/git-mergetool.sh
+++ b/git-mergetool.sh
@@ -111,14 +111,13 @@ resolve_deleted_merge () {
 merge_file () {
     path="$1"
 
-    if test ! -f "$path" ; then
-	echo "$path: file not found"
-	exit 1
-    fi
-
     f=`git-ls-files -u -- "$path"`
     if test -z "$f" ; then
-	echo "$path: file does not need merging"
+        if test ! -f "$path" ; then
+	    echo "$path: file not found"
+	else
+	    echo "$path: file does not need merging"
+	fi
 	exit 1
     fi
 
-- 
1.5.1.rc2.1.g8afe-dirty

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH] mergetool: portability fix: don't assume true is in /bin
  2007-03-29 15:44     ` [PATCH] mergetool: Don't error out in the merge case where the local file is deleted Theodore Ts'o
@ 2007-03-29 15:44       ` Theodore Ts'o
  2007-03-29 15:44         ` [PATCH] mergetool: portability fix: don't use reserved word function Theodore Ts'o
  0 siblings, 1 reply; 19+ messages in thread
From: Theodore Ts'o @ 2007-03-29 15:44 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git, Theodore Ts'o

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
---
 git-mergetool.sh |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/git-mergetool.sh b/git-mergetool.sh
index 9d959a9..7d2dadd 100755
--- a/git-mergetool.sh
+++ b/git-mergetool.sh
@@ -63,7 +63,7 @@ function describe_file () {
 
 
 resolve_symlink_merge () {
-    while /bin/true; do
+    while true; do
 	printf "Use (r)emote or (l)ocal, or (a)bort? "
 	read ans
 	case "$ans" in
@@ -87,7 +87,7 @@ resolve_symlink_merge () {
 }
 
 resolve_deleted_merge () {
-    while /bin/true; do
+    while true; do
 	printf "Use (m)odified or (d)eleted file, or (a)bort? "
 	read ans
 	case "$ans" in
-- 
1.5.1.rc2.1.g8afe-dirty

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH] mergetool: portability fix: don't use reserved word function
  2007-03-29 15:44       ` [PATCH] mergetool: portability fix: don't assume true is in /bin Theodore Ts'o
@ 2007-03-29 15:44         ` Theodore Ts'o
  2007-03-29 15:44           ` [PATCH] mergetool: factor out common code Theodore Ts'o
  0 siblings, 1 reply; 19+ messages in thread
From: Theodore Ts'o @ 2007-03-29 15:44 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git, Theodore Ts'o

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
---
 git-mergetool.sh |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/git-mergetool.sh b/git-mergetool.sh
index 7d2dadd..8a87f5e 100755
--- a/git-mergetool.sh
+++ b/git-mergetool.sh
@@ -14,19 +14,19 @@ SUBDIRECTORY_OK=Yes
 require_work_tree
 
 # Returns true if the mode reflects a symlink
-function is_symlink () {
+is_symlink () {
     test "$1" = 120000
 }
 
-function local_present () {
+local_present () {
     test -n "$local_mode"
 }
 
-function remote_present () {
+remote_present () {
     test -n "$remote_mode"
 }
 
-function base_present () {
+base_present () {
     test -n "$base_mode"
 }
 
@@ -39,7 +39,7 @@ cleanup_temp_files () {
     fi
 }
 
-function describe_file () {
+describe_file () {
     mode="$1"
     branch="$2"
     file="$3"
-- 
1.5.1.rc2.1.g8afe-dirty

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH] mergetool: factor out common code
  2007-03-29 15:44         ` [PATCH] mergetool: portability fix: don't use reserved word function Theodore Ts'o
@ 2007-03-29 15:44           ` Theodore Ts'o
  2007-03-29 15:44             ` [PATCH] mergetool: Remove spurious error message if merge.tool config option not set Theodore Ts'o
  0 siblings, 1 reply; 19+ messages in thread
From: Theodore Ts'o @ 2007-03-29 15:44 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git, Theodore Ts'o

Create common function check_unchanged(), save_backup() and
remove_backup().

Also fix some minor whitespace issues while we're at it.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
---
 git-mergetool.sh |   80 +++++++++++++++++++++++++-----------------------------
 1 files changed, 37 insertions(+), 43 deletions(-)

diff --git a/git-mergetool.sh b/git-mergetool.sh
index 8a87f5e..aeb32ef 100755
--- a/git-mergetool.sh
+++ b/git-mergetool.sh
@@ -46,7 +46,7 @@ describe_file () {
 
     printf "    "
     if test -z "$mode"; then
-	printf  "'$path' was deleted"
+	printf "'$path' was deleted"
     elif is_symlink "$mode" ; then
 	printf "'$path' is a symlink containing '"
 	cat "$file"
@@ -108,12 +108,40 @@ resolve_deleted_merge () {
 	done
 }
 
+check_unchanged () {
+    if test "$path" -nt "$BACKUP" ; then
+	status=0;
+    else
+	while true; do
+	    echo "$path seems unchanged."
+	    printf "Was the merge successful? [y/n] "
+	    read answer < /dev/tty
+	    case "$answer" in
+		y*|Y*) status=0; break ;;
+		n*|N*) status=1; break ;;
+	    esac
+	done
+    fi
+}
+
+save_backup () {
+    if test "$status" -eq 0; then
+	mv -- "$BACKUP" "$path.orig"
+    fi
+}
+
+remove_backup () {
+    if test "$status" -eq 0; then
+	rm "$BACKUP"
+    fi
+}
+
 merge_file () {
     path="$1"
 
     f=`git-ls-files -u -- "$path"`
     if test -z "$f" ; then
-        if test ! -f "$path" ; then
+	if test ! -f "$path" ; then
 	    echo "$path: file not found"
 	else
 	    echo "$path: file does not need merging"
@@ -169,9 +197,7 @@ merge_file () {
 		    -o "$path" -- "$LOCAL" "$REMOTE" > /dev/null 2>&1)
 	    fi
 	    status=$?
-	    if test "$status" -eq 0; then
-		rm "$BACKUP"
-	    fi
+	    remove_backup
 	    ;;
 	tkdiff)
 	    if base_present ; then
@@ -180,29 +206,13 @@ merge_file () {
 		tkdiff -o "$path" -- "$LOCAL" "$REMOTE"
 	    fi
 	    status=$?
-	    if test "$status" -eq 0; then
-		mv -- "$BACKUP" "$path.orig"
-	    fi
+	    save_backup
 	    ;;
 	meld|vimdiff)
 	    touch "$BACKUP"
 	    $merge_tool -- "$LOCAL" "$path" "$REMOTE"
-	    if test "$path" -nt "$BACKUP" ; then
-		status=0;
-	    else
-		while true; do
-		    echo "$path seems unchanged."
-		    printf "Was the merge successful? [y/n] "
-		    read answer < /dev/tty
-		    case "$answer" in
-			y*|Y*) status=0; break ;;
-			n*|N*) status=1; break ;;
-		    esac
-		done
-	    fi
-	    if test "$status" -eq 0; then
-		mv -- "$BACKUP" "$path.orig"
-	    fi
+	    check_unchanged
+	    save_backup
 	    ;;
 	xxdiff)
 	    touch "$BACKUP"
@@ -219,22 +229,8 @@ merge_file () {
 		    -R 'Accel.SearchForward: "Ctrl-G"' \
 		    --merged-file "$path" -- "$LOCAL" "$REMOTE"
 	    fi
-	    if test "$path" -nt "$BACKUP" ; then
-		status=0;
-	    else
-		while true; do
-		    echo "$path seems unchanged."
-		    printf "Was the merge successful? [y/n] "
-		    read answer < /dev/tty
-		    case "$answer" in
-			y*|Y*) status=0; break ;;
-			n*|N*) status=1; break ;;
-		    esac
-		done
-	    fi
-	    if test "$status" -eq 0; then
-		mv -- "$BACKUP" "$path.orig"
-	    fi
+	    check_unchanged
+	    save_backup
 	    ;;
 	emerge)
 	    if base_present ; then
@@ -243,9 +239,7 @@ merge_file () {
 		emacs -f emerge-files-command "$LOCAL" "$REMOTE" "$path"
 	    fi
 	    status=$?
-	    if test "$status" -eq 0; then
-		mv -- "$BACKUP" "$path.orig"
-	    fi
+	    save_backup
 	    ;;
     esac
     if test "$status" -ne 0; then
-- 
1.5.1.rc2.1.g8afe-dirty

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH] mergetool: Remove spurious error message if merge.tool config option not set
  2007-03-29 15:44           ` [PATCH] mergetool: factor out common code Theodore Ts'o
@ 2007-03-29 15:44             ` Theodore Ts'o
  2007-03-29 15:44               ` [PATCH] mergetool: Fix abort command when resolving symlinks and deleted files Theodore Ts'o
  0 siblings, 1 reply; 19+ messages in thread
From: Theodore Ts'o @ 2007-03-29 15:44 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git, Theodore Ts'o

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
---
 git-mergetool.sh |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/git-mergetool.sh b/git-mergetool.sh
index aeb32ef..5de2433 100755
--- a/git-mergetool.sh
+++ b/git-mergetool.sh
@@ -282,7 +282,7 @@ done
 if test -z "$merge_tool"; then
     merge_tool=`git-config merge.tool`
     case "$merge_tool" in
-	kdiff3 | tkdiff | xxdiff | meld | emerge | vimdiff)
+	kdiff3 | tkdiff | xxdiff | meld | emerge | vimdiff | "")
 	    ;; # happy
 	*)
 	    echo >&2 "git config option merge.tool set to unknown tool: $merge_tool"
-- 
1.5.1.rc2.1.g8afe-dirty

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH] mergetool: Fix abort command when resolving symlinks and deleted files
  2007-03-29 15:44             ` [PATCH] mergetool: Remove spurious error message if merge.tool config option not set Theodore Ts'o
@ 2007-03-29 15:44               ` Theodore Ts'o
  2007-03-29 15:44                 ` [PATCH] mergetool: Add support for Apple Mac OS X's opendiff command Theodore Ts'o
  0 siblings, 1 reply; 19+ messages in thread
From: Theodore Ts'o @ 2007-03-29 15:44 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git, Theodore Ts'o

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
---
 git-mergetool.sh |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/git-mergetool.sh b/git-mergetool.sh
index 5de2433..f73072a 100755
--- a/git-mergetool.sh
+++ b/git-mergetool.sh
@@ -73,13 +73,13 @@ resolve_symlink_merge () {
 		cleanup_temp_files --save-backup
 		return
 		;;
-	   [rR]*)
+	    [rR]*)
 		git-checkout-index -f --stage=3 -- "$path"
 		git-add -- "$path"
 		cleanup_temp_files --save-backup
 		return
 		;;
-	    [qQ]*)
+	    [aA]*)
 		exit 1
 		;;
 	    esac
@@ -96,12 +96,12 @@ resolve_deleted_merge () {
 		cleanup_temp_files --save-backup
 		return
 		;;
-	   [dD]*)
+	    [dD]*)
 		git-rm -- "$path"
 		cleanup_temp_files
 		return
 		;;
-	    [qQ]*)
+	    [aA]*)
 		exit 1
 		;;
 	    esac
-- 
1.5.1.rc2.1.g8afe-dirty

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH] mergetool: Add support for Apple Mac OS X's opendiff command
  2007-03-29 15:44               ` [PATCH] mergetool: Fix abort command when resolving symlinks and deleted files Theodore Ts'o
@ 2007-03-29 15:44                 ` Theodore Ts'o
  2007-03-29 15:44                   ` [PATCH] mergetool: Make git-rm quiet when resolving a deleted file conflict Theodore Ts'o
  0 siblings, 1 reply; 19+ messages in thread
From: Theodore Ts'o @ 2007-03-29 15:44 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git, Theodore Ts'o, Arjen Laarhoven

Signed-off-by: Arjen Laarhoven <arjen@yaph.org>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
---
 git-mergetool.sh |   16 ++++++++++++++--
 1 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/git-mergetool.sh b/git-mergetool.sh
index f73072a..b0d28fd 100755
--- a/git-mergetool.sh
+++ b/git-mergetool.sh
@@ -232,6 +232,16 @@ merge_file () {
 	    check_unchanged
 	    save_backup
 	    ;;
+	opendiff)
+	    touch "$BACKUP"
+	    if base_present; then
+		opendiff "$LOCAL" "$REMOTE" -ancestor "$BASE" -merge "$path" | cat
+	    else
+		opendiff "$LOCAL" "$REMOTE" -merge "$path" | cat
+	    fi
+	    check_unchanged
+	    save_backup
+	    ;;
 	emerge)
 	    if base_present ; then
 		emacs -f emerge-files-with-ancestor-command "$LOCAL" "$REMOTE" "$BASE" "$path"
@@ -282,7 +292,7 @@ done
 if test -z "$merge_tool"; then
     merge_tool=`git-config merge.tool`
     case "$merge_tool" in
-	kdiff3 | tkdiff | xxdiff | meld | emerge | vimdiff | "")
+	kdiff3 | tkdiff | xxdiff | meld | opendiff | emerge | vimdiff | "")
 	    ;; # happy
 	*)
 	    echo >&2 "git config option merge.tool set to unknown tool: $merge_tool"
@@ -301,6 +311,8 @@ if test -z "$merge_tool" ; then
 	merge_tool=xxdiff
     elif type meld >/dev/null 2>&1 && test -n "$DISPLAY"; then
 	merge_tool=meld
+    elif type opendiff >/dev/null 2>&1; then
+	merge_tool=opendiff
     elif type emacs >/dev/null 2>&1; then
 	merge_tool=emerge
     elif type vimdiff >/dev/null 2>&1; then
@@ -312,7 +324,7 @@ if test -z "$merge_tool" ; then
 fi
 
 case "$merge_tool" in
-    kdiff3|tkdiff|meld|xxdiff|vimdiff)
+    kdiff3|tkdiff|meld|xxdiff|vimdiff|opendiff)
 	if ! type "$merge_tool" > /dev/null 2>&1; then
 	    echo "The merge tool $merge_tool is not available"
 	    exit 1
-- 
1.5.1.rc2.1.g8afe-dirty

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH] mergetool: Make git-rm quiet when resolving a deleted file conflict
  2007-03-29 15:44                 ` [PATCH] mergetool: Add support for Apple Mac OS X's opendiff command Theodore Ts'o
@ 2007-03-29 15:44                   ` Theodore Ts'o
  2007-03-29 15:44                     ` [PATCH] mergetool: Clean up description of files and prompts for merge resolutions Theodore Ts'o
  0 siblings, 1 reply; 19+ messages in thread
From: Theodore Ts'o @ 2007-03-29 15:44 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git, Theodore Ts'o

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
---
 git-mergetool.sh |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/git-mergetool.sh b/git-mergetool.sh
index b0d28fd..b9d81f5 100755
--- a/git-mergetool.sh
+++ b/git-mergetool.sh
@@ -97,7 +97,7 @@ resolve_deleted_merge () {
 		return
 		;;
 	    [dD]*)
-		git-rm -- "$path"
+		git-rm -- "$path" > /dev/null
 		cleanup_temp_files
 		return
 		;;
-- 
1.5.1.rc2.1.g8afe-dirty

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH] mergetool: Clean up description of files and prompts for merge resolutions
  2007-03-29 15:44                   ` [PATCH] mergetool: Make git-rm quiet when resolving a deleted file conflict Theodore Ts'o
@ 2007-03-29 15:44                     ` Theodore Ts'o
  2007-03-29 22:29                       ` Matthias Lederhofer
  0 siblings, 1 reply; 19+ messages in thread
From: Theodore Ts'o @ 2007-03-29 15:44 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git, Theodore Ts'o

This fixes complaints from Junio for how messages and prompts are
printed when resolving symlink and deleted file merges.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
---
 git-mergetool.sh |   29 +++++++++++++++--------------
 1 files changed, 15 insertions(+), 14 deletions(-)

diff --git a/git-mergetool.sh b/git-mergetool.sh
index b9d81f5..9b824ac 100755
--- a/git-mergetool.sh
+++ b/git-mergetool.sh
@@ -44,27 +44,24 @@ describe_file () {
     branch="$2"
     file="$3"
 
-    printf "    "
+    printf "  {$branch}: "
     if test -z "$mode"; then
-	printf "'$path' was deleted"
+	echo "deleted"
     elif is_symlink "$mode" ; then
-	printf "'$path' is a symlink containing '"
-	cat "$file"
-	printf "'"
+	echo "a symbolic link -> '$(cat "$file")'"
     else
 	if base_present; then
-	    printf "'%s' was created" "$path"
+	    echo "modified"
 	else
-	    printf "'%s' was modified" "$path"
+	    echo "created"
 	fi
     fi
-    echo " in the $branch branch"
 }
 
 
 resolve_symlink_merge () {
     while true; do
-	printf "Use (r)emote or (l)ocal, or (a)bort? "
+	printf "Use (l)ocal or (r)emote, or (a)bort? "
 	read ans
 	case "$ans" in
 	    [lL]*)
@@ -88,10 +85,14 @@ resolve_symlink_merge () {
 
 resolve_deleted_merge () {
     while true; do
-	printf "Use (m)odified or (d)eleted file, or (a)bort? "
+	if base_present; then
+	    printf "Use (m)odified or (d)eleted file, or (a)bort? "
+	else
+	    printf "Use (c)reated or (d)eleted file, or (a)bort? "
+	fi
 	read ans
 	case "$ans" in
-	    [mM]*)
+	    [mMcC]*)
 		git-add -- "$path"
 		cleanup_temp_files --save-backup
 		return
@@ -166,7 +167,7 @@ merge_file () {
     remote_present && git cat-file blob ":3:$path" > "$REMOTE" 2>/dev/null
 
     if test -z "$local_mode" -o -z "$remote_mode"; then
-	echo "Deleted merge conflict for $path:"
+	echo "Deleted merge conflict for '$path':"
 	describe_file "$local_mode" "local" "$LOCAL"
 	describe_file "$remote_mode" "remote" "$REMOTE"
 	resolve_deleted_merge
@@ -174,14 +175,14 @@ merge_file () {
     fi
 
     if is_symlink "$local_mode" || is_symlink "$remote_mode"; then
-	echo "Symlink merge conflict for $path:"
+	echo "Symbolic link merge conflict for '$path':"
 	describe_file "$local_mode" "local" "$LOCAL"
 	describe_file "$remote_mode" "remote" "$REMOTE"
 	resolve_symlink_merge
 	return
     fi
 
-    echo "Normal merge conflict for $path:"
+    echo "Normal merge conflict for '$path':"
     describe_file "$local_mode" "local" "$LOCAL"
     describe_file "$remote_mode" "remote" "$REMOTE"
     printf "Hit return to start merge resolution tool ($merge_tool): "
-- 
1.5.1.rc2.1.g8afe-dirty

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* Re: [PATCH] mergetool: Replace use of "echo -n" with printf(3) to be more portable
  2007-03-29 15:44   ` [PATCH] mergetool: Replace use of "echo -n" with printf(3) to be more portable Theodore Ts'o
  2007-03-29 15:44     ` [PATCH] mergetool: Don't error out in the merge case where the local file is deleted Theodore Ts'o
@ 2007-03-29 15:57     ` Matthias Lederhofer
  2007-03-29 17:09       ` Theodore Tso
  1 sibling, 1 reply; 19+ messages in thread
From: Matthias Lederhofer @ 2007-03-29 15:57 UTC (permalink / raw)
  To: Theodore Ts'o; +Cc: git

The subject should probably refer to printf(1) instead of printf(3).

Theodore Ts'o <tytso@mit.edu> wrote:
> -	echo -n "'$path' was deleted"
> +	printf  "'$path' was deleted"
Here is one space too much after printf.

> -	echo -n "'$path' is a symlink containing '"
> +	printf "'$path' is a symlink containing '"
You should use printf "'%s' [..]" "$path" as you do in some other
places (in case $path contains conversion specifiers).

> -    echo -n "Hit return to start merge resolution tool ($merge_tool): "
> +    printf "Hit return to start merge resolution tool ($merge_tool): "
Here it is much more unlikely that $merge_tool contains a conversion
specifier but anyway I'd prefer to use %s.

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH] mergetool: Replace use of "echo -n" with printf(3) to be more portable
  2007-03-29 15:57     ` [PATCH] mergetool: Replace use of "echo -n" with printf(3) to be more portable Matthias Lederhofer
@ 2007-03-29 17:09       ` Theodore Tso
  2007-03-29 22:02         ` Junio C Hamano
  0 siblings, 1 reply; 19+ messages in thread
From: Theodore Tso @ 2007-03-29 17:09 UTC (permalink / raw)
  To: Matthias Lederhofer, Junio C Hamano; +Cc: git

On Thu, Mar 29, 2007 at 05:57:41PM +0200, Matthias Lederhofer wrote:
> The subject should probably refer to printf(1) instead of printf(3).

Yep.

> Theodore Ts'o <tytso@mit.edu> wrote:
> > +	printf  "'$path' was deleted"
> Here is one space too much after printf.

This was fixed in a later patch.

> > +	printf "'$path' is a symlink containing '"
> You should use printf "'%s' [..]" "$path" as you do in some other
> places (in case $path contains conversion specifiers).

This was also obsoleted in a later patch, but you're right.

> > +    printf "Hit return to start merge resolution tool ($merge_tool): "
> Here it is much more unlikely that $merge_tool contains a conversion
> specifier but anyway I'd prefer to use %s.

Yep, agreed.

Junio, I've prepared an alterate patch series.  If you haven't pulled
from repo.or.cz, I'd appreciate it if you could pull from the
mergetool branch (instead of master) instead:

	http://repo.or.cz/w/git/mergetool.git

The differences between the patch series in the master and mergetool
branch are:

	* Change the description of the printf patch to say: 
		printf(3)->printf(1)
	* Fix the double space after printf and symlink %s conversion
		earlier in the patch series (only to have it disappear
		in the last patch, so this is a no-op at the end of
		the day, but more of an excuse to go play with stgit
		and in the name of anal-rententive correctness)
	* Use a %s printf conversion for the "Hit return to start merge..."
		statement as noted above in the last patch.

Thanks!!

(Apparently there's no way to forcibly reset the pointer of the master
head on repo.or.cz, probably for security/sanity reasons, without
going through an administrator.)

						- Ted

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH] mergetool: Replace use of "echo -n" with printf(3) to be more portable
  2007-03-29 17:09       ` Theodore Tso
@ 2007-03-29 22:02         ` Junio C Hamano
  2007-03-29 22:15           ` Theodore Tso
  0 siblings, 1 reply; 19+ messages in thread
From: Junio C Hamano @ 2007-03-29 22:02 UTC (permalink / raw)
  To: Theodore Tso; +Cc: Matthias Lederhofer, git

Theodore Tso <tytso@mit.edu> writes:

> Junio, I've prepared an alterate patch series.  If you haven't pulled
> from repo.or.cz, I'd appreciate it if you could pull from the
> mergetool branch (instead of master) instead:
>
> 	http://repo.or.cz/w/git/mergetool.git

Thanks; will do later tonight after I got home.

> (Apparently there's no way to forcibly reset the pointer of the master
> head on repo.or.cz, probably for security/sanity reasons, without
> going through an administrator.)

Really?  I push with '+' (aka "single force") all the time to
alt-git.git repository and haven't noticed that:

    [remote "repo"]
            url = repo.or.cz:srv/git/alt-git.git/
            push = refs/tags/ko-master:refs/heads/master
            push = refs/tags/ko-next:refs/heads/next
            push = +refs/tags/ko-pu:refs/heads/pu
            push = refs/tags/ko-maint:refs/heads/maint

Here, tags/ko-* keeps track of what I pushed out the official
k.org repositories, and my workflow has been:

    $ git push ko ;# push to k.org refs/heads/{master,next,...}
    $ git fetch ko ;# fetch them back to refs/tags/ko-*
    $ git push repo ;# update alt-git.git

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH] mergetool: Replace use of "echo -n" with printf(3) to be more portable
  2007-03-29 22:02         ` Junio C Hamano
@ 2007-03-29 22:15           ` Theodore Tso
  0 siblings, 0 replies; 19+ messages in thread
From: Theodore Tso @ 2007-03-29 22:15 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: Matthias Lederhofer, git

On Thu, Mar 29, 2007 at 03:02:42PM -0700, Junio C Hamano wrote:
> Really?  I push with '+' (aka "single force") all the time to
> alt-git.git repository and haven't noticed that:

Oh, cool, it never occurred to me that it would work with push on a
remote repository (but that makes perfect sense in retrospect :-).

						- Ted

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH] mergetool: Clean up description of files and prompts for merge resolutions
  2007-03-29 15:44                     ` [PATCH] mergetool: Clean up description of files and prompts for merge resolutions Theodore Ts'o
@ 2007-03-29 22:29                       ` Matthias Lederhofer
  2007-03-30  2:54                         ` Theodore Tso
  0 siblings, 1 reply; 19+ messages in thread
From: Matthias Lederhofer @ 2007-03-29 22:29 UTC (permalink / raw)
  To: Theodore Ts'o; +Cc: git

Theodore Ts'o <tytso@mit.edu> wrote:
> +    printf "  {$branch}: "
This should use %s too.

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH] mergetool: Clean up description of files and prompts for merge resolutions
  2007-03-29 22:29                       ` Matthias Lederhofer
@ 2007-03-30  2:54                         ` Theodore Tso
  2007-03-30 14:46                           ` Randal L. Schwartz
  0 siblings, 1 reply; 19+ messages in thread
From: Theodore Tso @ 2007-03-30  2:54 UTC (permalink / raw)
  To: Matthias Lederhofer; +Cc: git

On Fri, Mar 30, 2007 at 12:29:05AM +0200, Matthias Lederhofer wrote:
> Theodore Ts'o <tytso@mit.edu> wrote:
> > +    printf "  {$branch}: "
> This should use %s too.

It's strictly not necessary since $branch is either "local" or "remote".

						- Ted

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH] mergetool: Clean up description of files and prompts  for merge resolutions
  2007-03-30  2:54                         ` Theodore Tso
@ 2007-03-30 14:46                           ` Randal L. Schwartz
  0 siblings, 0 replies; 19+ messages in thread
From: Randal L. Schwartz @ 2007-03-30 14:46 UTC (permalink / raw)
  To: Theodore Tso; +Cc: Matthias Lederhofer, git

>>>>> "Theodore" == Theodore Tso <tytso@mit.edu> writes:

Theodore> On Fri, Mar 30, 2007 at 12:29:05AM +0200, Matthias Lederhofer wrote:
>> Theodore Ts'o <tytso@mit.edu> wrote:
>> > +    printf "  {$branch}: "
>> This should use %s too.

Theodore> It's strictly not necessary since $branch is either "local" or "remote".

... this week. :)

Best to be safe, and provide a good model for later cut-n-pasters, I've
always said.

-- 
Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095
<merlyn@stonehenge.com> <URL:http://www.stonehenge.com/merlyn/>
Perl/Unix/security consulting, Technical writing, Comedy, etc. etc.
See PerlTraining.Stonehenge.com for onsite and open-enrollment Perl training!

^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2007-03-30 14:47 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-03-29 15:44 [GIT PULL] git mergetool fixes Theodore Ts'o
2007-03-29 15:44 ` [PATCH] Fix minor formatting issue in man page for git-mergetool Theodore Ts'o
2007-03-29 15:44   ` [PATCH] mergetool: Replace use of "echo -n" with printf(3) to be more portable Theodore Ts'o
2007-03-29 15:44     ` [PATCH] mergetool: Don't error out in the merge case where the local file is deleted Theodore Ts'o
2007-03-29 15:44       ` [PATCH] mergetool: portability fix: don't assume true is in /bin Theodore Ts'o
2007-03-29 15:44         ` [PATCH] mergetool: portability fix: don't use reserved word function Theodore Ts'o
2007-03-29 15:44           ` [PATCH] mergetool: factor out common code Theodore Ts'o
2007-03-29 15:44             ` [PATCH] mergetool: Remove spurious error message if merge.tool config option not set Theodore Ts'o
2007-03-29 15:44               ` [PATCH] mergetool: Fix abort command when resolving symlinks and deleted files Theodore Ts'o
2007-03-29 15:44                 ` [PATCH] mergetool: Add support for Apple Mac OS X's opendiff command Theodore Ts'o
2007-03-29 15:44                   ` [PATCH] mergetool: Make git-rm quiet when resolving a deleted file conflict Theodore Ts'o
2007-03-29 15:44                     ` [PATCH] mergetool: Clean up description of files and prompts for merge resolutions Theodore Ts'o
2007-03-29 22:29                       ` Matthias Lederhofer
2007-03-30  2:54                         ` Theodore Tso
2007-03-30 14:46                           ` Randal L. Schwartz
2007-03-29 15:57     ` [PATCH] mergetool: Replace use of "echo -n" with printf(3) to be more portable Matthias Lederhofer
2007-03-29 17:09       ` Theodore Tso
2007-03-29 22:02         ` Junio C Hamano
2007-03-29 22:15           ` Theodore Tso

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).