ALT Linux Team development discussions
 help / color / mirror / Atom feed
From: Alexey Tourbin <at@altlinux.ru>
To: ALT Linux Team development discussions <devel@lists.altlinux.org>
Subject: Re: [devel] jakarta-commons-latka-0:1.0-alt2_0.r389670.2jpp1.7
Date: Wed, 12 Sep 2007 00:09:14 +0400
Message-ID: <20070911200914.GT6051@solemn.turbinal> (raw)
In-Reply-To: <9713cfcc0709111255p13d852d6ka5ff5e441b4cf224@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 5773 bytes --]

On Tue, Sep 11, 2007 at 10:55:20PM +0300, Led wrote:
> 2007/9/11, Alexey Tourbin <at@altlinux.ru>:
> > On Tue, Sep 11, 2007 at 08:27:50PM +0300, Led wrote:
> > > Это серьёзно перелопачивать shell-скрипты, которых может быть в паукете "не
> > > один" и "немаленький". В этом случае разговор о поиске
> > > exec ...
> >
> > Увы, бывают действительно "кривоватые" скрипты, да и не совсем
> > кривоватые, в которых поиск зависимостей дает слишком много результатов.
> > Всё же стоит попытаться выяснить, много ли там перелопачивать или нет.
> 
> Бывают и "кривоватие"... Но, всё же, переделывать
> /usr/bin/foo
> на
> FOO=/usr/bin/foo
> $FOO
> ?
> ИМХО это не исправление "кривостей", а "расстановка костылей" (?)

Увы, я тоже смотрю на это как на расстановку костылей.  С другой
стороны, так можно договориться до того, что нужно похерить всю идею
автоматического поиска зависимостей -- просто потому, что существуют
условные зависимости.  Они существуют не только в шелле, но и в других
интепретируемых языках.  Просто в шелле с ними сложнее бороться.

В некоторых случаях очень тяжело сказать, стоит ли расставлять костыли,
или проще отключить поиск зависимостей в конкретном файле.  См. напр.
git.git v1.5.1.1-113-g6fcc309 (ниже целиком).

Но отключить поиск зависимостей в отдельно взятом файле, если сыскалась
паршивая овца, вполне себе можно:
	%add_findreq_skiplist %_bindir/овца

К сожалению, пока нет способа игнорировать сами зависимости
определенного вида.


commit 6fcc3098dc58239f3437779740efee7a5c87ae20
Author: Dmitry V. Levin <ldv@altlinux>
Date:   Thu Apr 12 13:26:49 2007 +0000

    git-mergetool.sh: Protect merge tool names from "sh --find-requires"

diff --git a/git-mergetool.sh b/git-mergetool.sh
index e62351b..4db2a80 100755
--- a/git-mergetool.sh
+++ b/git-mergetool.sh
@@ -191,10 +191,10 @@ merge_file () {
     case "$merge_tool" in
 	kdiff3)
 	    if base_present ; then
-		(kdiff3 --auto --L1 "$path (Base)" -L2 "$path (Local)" --L3 "$path (Remote)" \
+		($merge_tool --auto --L1 "$path (Base)" -L2 "$path (Local)" --L3 "$path (Remote)" \
 		    -o "$path" -- "$BASE" "$LOCAL" "$REMOTE" > /dev/null 2>&1)
 	    else
-		(kdiff3 --auto -L1 "$path (Local)" --L2 "$path (Remote)" \
+		($merge_tool --auto -L1 "$path (Local)" --L2 "$path (Remote)" \
 		    -o "$path" -- "$LOCAL" "$REMOTE" > /dev/null 2>&1)
 	    fi
 	    status=$?
@@ -202,9 +202,9 @@ merge_file () {
 	    ;;
 	tkdiff)
 	    if base_present ; then
-		tkdiff -a "$BASE" -o "$path" -- "$LOCAL" "$REMOTE"
+		$merge_tool -a "$BASE" -o "$path" -- "$LOCAL" "$REMOTE"
 	    else
-		tkdiff -o "$path" -- "$LOCAL" "$REMOTE"
+		$merge_tool -o "$path" -- "$LOCAL" "$REMOTE"
 	    fi
 	    status=$?
 	    save_backup
@@ -218,13 +218,13 @@ merge_file () {
 	xxdiff)
 	    touch "$BACKUP"
 	    if base_present ; then
-		xxdiff -X --show-merged-pane \
+		$merge_tool -X --show-merged-pane \
 		    -R 'Accel.SaveAsMerged: "Ctrl-S"' \
 		    -R 'Accel.Search: "Ctrl+F"' \
 		    -R 'Accel.SearchForward: "Ctrl-G"' \
 		    --merged-file "$path" -- "$LOCAL" "$BASE" "$REMOTE"
 	    else
-		xxdiff -X --show-merged-pane \
+		$merge_tool -X --show-merged-pane \
 		    -R 'Accel.SaveAsMerged: "Ctrl-S"' \
 		    -R 'Accel.Search: "Ctrl+F"' \
 		    -R 'Accel.SearchForward: "Ctrl-G"' \
@@ -236,18 +236,18 @@ merge_file () {
 	opendiff)
 	    touch "$BACKUP"
 	    if base_present; then
-		opendiff "$LOCAL" "$REMOTE" -ancestor "$BASE" -merge "$path" | cat
+		$merge_tool "$LOCAL" "$REMOTE" -ancestor "$BASE" -merge "$path" | cat
 	    else
-		opendiff "$LOCAL" "$REMOTE" -merge "$path" | cat
+		$merge_tool "$LOCAL" "$REMOTE" -merge "$path" | cat
 	    fi
 	    check_unchanged
 	    save_backup
 	    ;;
-	emerge)
+	emacs)
 	    if base_present ; then
-		emacs -f emerge-files-with-ancestor-command "$LOCAL" "$REMOTE" "$BASE" "$path"
+		$merge_tool -f emerge-files-with-ancestor-command "$LOCAL" "$REMOTE" "$BASE" "$path"
 	    else
-		emacs -f emerge-files-command "$LOCAL" "$REMOTE" "$path"
+		$merge_tool -f emerge-files-command "$LOCAL" "$REMOTE" "$path"
 	    fi
 	    status=$?
 	    save_backup
@@ -293,8 +293,11 @@ done
 if test -z "$merge_tool"; then
     merge_tool=`git-config merge.tool`
     case "$merge_tool" in
-	kdiff3 | tkdiff | xxdiff | meld | opendiff | emerge | vimdiff | "")
+	kdiff3 | tkdiff | xxdiff | meld | opendiff | emacs | vimdiff | "")
 	    ;; # happy
+	emerge)
+	    merge_tool=emacs
+	    ;;
 	*)
 	    echo >&2 "git config option merge.tool set to unknown tool: $merge_tool"
 	    echo >&2 "Resetting to default..."
@@ -305,7 +308,7 @@ fi
 
 if test -z "$merge_tool" ; then
     if type kdiff3 >/dev/null 2>&1 && test -n "$DISPLAY"; then
-	merge_tool="kdiff3";
+	merge_tool=kdiff3
     elif type tkdiff >/dev/null 2>&1 && test -n "$DISPLAY"; then
 	merge_tool=tkdiff
     elif type xxdiff >/dev/null 2>&1 && test -n "$DISPLAY"; then
@@ -315,7 +318,7 @@ if test -z "$merge_tool" ; then
     elif type opendiff >/dev/null 2>&1; then
 	merge_tool=opendiff
     elif type emacs >/dev/null 2>&1; then
-	merge_tool=emerge
+	merge_tool=emacs
     elif type vimdiff >/dev/null 2>&1; then
 	merge_tool=vimdiff
     else
@@ -325,18 +328,12 @@ if test -z "$merge_tool" ; then
 fi
 
 case "$merge_tool" in
-    kdiff3|tkdiff|meld|xxdiff|vimdiff|opendiff)
+    emacs|kdiff3|meld|opendiff|tkdiff|vimdiff|xxdiff)
 	if ! type "$merge_tool" > /dev/null 2>&1; then
 	    echo "The merge tool $merge_tool is not available"
 	    exit 1
 	fi
 	;;
-    emerge)
-	if ! type "emacs" > /dev/null 2>&1; then
-	    echo "Emacs is not available"
-	    exit 1
-	fi
-	;;
     *)
 	echo "Unknown merge tool: $merge_tool"
 	exit 1


[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

  reply	other threads:[~2007-09-11 20:09 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-09-11 16:43 Alexey Tourbin
2007-09-11 16:55 ` Led
2007-09-11 17:14   ` [devel] shell dependencies Alexey Tourbin
2007-09-11 17:19   ` [devel] jakarta-commons-latka-0:1.0-alt2_0.r389670.2jpp1.7 Alexey I. Froloff
2007-09-11 17:27     ` Led
2007-09-11 19:20       ` Alexey Tourbin
2007-09-11 19:55         ` Led
2007-09-11 20:09           ` Alexey Tourbin [this message]
2007-09-11 20:26             ` Led
2007-09-11 20:35               ` Alexey Tourbin
2007-09-16 21:36         ` [devel] AutoReq: yes, shell Michael Shigorin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20070911200914.GT6051@solemn.turbinal \
    --to=at@altlinux.ru \
    --cc=devel@lists.altlinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git