git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v2 0/2] mergetool-lib: Don't use deprecated variable to detect GNOME

From
MGMarco Trevisan via GitGitGadget <gitgitgadget@gmail.com>
Date
Aug 6, 2020, 15:27 UTC
Message-ID
<pull.693.v2.git.1596727673.gitgitgadget@gmail.com>
In-Reply-To
<pull.693.git.1596634463.gitgitgadget@gmail.com>

To list merge tool candidates we used to use a private GNOME env variable ( GNOME_DESKTOP_SESSION_ID) that has been deprecated for long time ago and removed as part of GNOME 3.30.0 release [1].

So replace this using XDG_CURRENT_DESKTOP instead, and cleanup the code to avoid duplication and supporting KDE's kdiff3 better.

[1] https://gitlab.gnome.org/GNOME/gnome-session/-/commit/00e0e6226371d53f65
Marco Trevisan (Treviño) (2):
  mergetool-lib: use $XDG_CURRENT_DESKTOP to check GNOME
  mergetool-lib: give kdiff3 priority in KDE environments
 git-mergetool--lib.sh | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)
base-commit: 85b4e0a6dc8407de6f69808d9ee6debdf167ced3
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-693%2F3v1n0%2Fdesktop-envs-fixes-v2
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-693/3v1n0/desktop-envs-fixes-v2
Pull-Request: https://github.com/gitgitgadget/git/pull/693
Range-diff vs v1:
 1:  66a026ae67 ! 1:  26b25b0d65 mergetool-lib: use $XDG_CURRENT_DESKTOP to check GNOME
     @@ Commit message
          variable (GNOME_DESKTOP_SESSION_ID) that has been deprecated for long time ago
          and removed as part of GNOME 3.30.0 release [1].
      
     -    So, git should instead check the XDG_CURRENT_DESKTOP env variable, that
     -    is supported by all the desktop environments.
     +    So, git should instead primarily check the XDG_CURRENT_DESKTOP env variable,
     +    that is now supported by all the desktop environments.
      
          Since the variable is actually a colon-separated list of names that the current
     -    desktop is known as, we need to go through all the values to ensure
     -    we're using GNOME.
     +    desktop is known as, we need to check if the value is set if we're using GNOME.
      
          [1] https://gitlab.gnome.org/GNOME/gnome-session/-/commit/00e0e6226371d53f65
      
     @@ git-mergetool--lib.sh: run_merge_cmd () {
       }
       
      +is_desktop () {
     -+	IFS=':'
     -+	for desktop in ${XDG_CURRENT_DESKTOP}
     -+	do
     -+		if test "$desktop" = "$1"
     -+		then
     -+			return 0
     -+		fi
     -+	done
     -+
     -+	return 1
     ++	case ":$XDG_CURRENT_DESKTOP:" in
     ++	*:$1:*)
     ++		return 0
     ++		;;
     ++	*)
     ++		return 1
     ++		;;
     ++	esac
      +}
      +
       list_merge_tool_candidates () {
     @@ git-mergetool--lib.sh: list_merge_tool_candidates () {
       	if test -n "$DISPLAY"
       	then
      -		if test -n "$GNOME_DESKTOP_SESSION_ID"
     -+		if is_desktop "GNOME"
     ++		if is_desktop "GNOME" || test -n "$GNOME_DESKTOP_SESSION_ID"
       		then
       			tools="meld opendiff kdiff3 tkdiff xxdiff $tools"
       		else
 2:  fc0d2b103e < -:  ---------- mergetool-lib: keep a list of cross desktop merge tools
 3:  37090d2322 ! 2:  c18a5edf50 mergetool-lib: give kdiff3 prioirty in KDE environments
     @@ Metadata
      Author: Marco Trevisan (Treviño) <mail@3v1n0.net>
      
       ## Commit message ##
     -    mergetool-lib: give kdiff3 prioirty in KDE environments
     +    mergetool-lib: give kdiff3 priority in KDE environments
      
          Signed-off-by: Marco Trevisan (Treviño) <mail@3v1n0.net>
      
       ## git-mergetool--lib.sh ##
      @@ git-mergetool--lib.sh: list_merge_tool_candidates () {
     - 	fi
     - 	if test -n "$DISPLAY"
     - 	then
     --		cross_desktop_tools="opendiff kdiff3 tkdiff xxdiff"
     -+		cross_desktop_tools="opendiff tkdiff xxdiff"
     - 		if is_desktop "GNOME"
     + 		if is_desktop "GNOME" || test -n "$GNOME_DESKTOP_SESSION_ID"
       		then
     --			tools="meld $cross_desktop_tools $tools"
     -+			tools="meld $cross_desktop_tools kdiff3 $tools"
     -+		elif is_desktop "KDE"
     + 			tools="meld opendiff kdiff3 tkdiff xxdiff $tools"
     ++		elif is_desktop "KDE" || test x"$KDE_FULL_SESSION" = x"true"
      +		then
     -+			tools="kdiff3 $cross_desktop_tools meld $tools"
     ++			tools="kdiff3 opendiff tkdiff xxdiff meld $tools"
       		else
     --			tools="$cross_desktop_tools meld $tools"
     -+			tools="$cross_desktop_tools kdiff3 meld $tools"
     + 			tools="opendiff kdiff3 tkdiff xxdiff meld $tools"
       		fi
     - 		tools="$tools gvimdiff diffuse diffmerge ecmerge"
     - 		tools="$tools p4merge araxis bc codecompare"
-- 
gitgitgadget
Previous: Eric SunshineNext: Marco Trevisan (Treviño) via GitGitGadget
Message 15 of 17 in “mergetool-lib: Don't use deprecated variable to detect GNOME”
  1. 0/3 mergetool-lib: Don't use deprecated variable to detect GNOMEMarco Trevisan via GitGitGadget, Aug 5, 2020
  2. 1/3 mergetool-lib: use $XDG_CURRENT_DESKTOP to check GNOMEMarco Trevisan (Treviño) via GitGitGadget, Aug 5, 2020
  3. Eric SunshineAug 5, 2020
  4. Junio C HamanoAug 5, 2020
  5. Marco Trevisan (Treviño)Aug 6, 2020
  6. 2/3 mergetool-lib: keep a list of cross desktop merge toolsMarco Trevisan (Treviño) via GitGitGadget, Aug 5, 2020
  7. Eric SunshineAug 5, 2020
  8. Johannes SixtAug 6, 2020
  9. Marco Trevisan (Treviño)Aug 6, 2020
  10. Marco Trevisan (Treviño)Aug 6, 2020
  11. 3/3 mergetool-lib: give kdiff3 prioirty in KDE environmentsMarco Trevisan (Treviño) via GitGitGadget, Aug 5, 2020
  12. Eric SunshineAug 5, 2020
  13. Marco Trevisan (Treviño)Aug 6, 2020
  14. Eric SunshineAug 6, 2020
  15. 0/2 mergetool-lib: Don't use deprecated variable to detect GNOMEMarco Trevisan via GitGitGadget, Aug 6, 2020
  16. 1/2 mergetool-lib: use $XDG_CURRENT_DESKTOP to check GNOMEMarco Trevisan (Treviño) via GitGitGadget, Aug 6, 2020
  17. 2/2 mergetool-lib: give kdiff3 priority in KDE environmentsMarco Trevisan (Treviño) via GitGitGadget, Aug 6, 2020

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.