Re: [PATCH] git-gui.sh: support Tcl 8.4
^"Kyle J. McKay" <mackyle@gmail.com> writes:
> greater. But Jens mentions this in $gmane/249491 (that the original
> patch was missing the ">= 0" part).
Ah, that is what I missed. Thanks.
Show 5 quoted lines
> I can't find anything in that thread about why vsatisfies was
> preferred over vcompare other than the obvious that the vsatisfies
> version is only a 1-character change. And that would be more than
> enough except that Tcl 8.4 doesn't support the trailing '-' vsatisfies
> syntax.
Yeah, I fully agree with that observation.
Show 9 quoted lines
>> * Would it be a good idea to update the places $gmane/248895 points
>> out? It is clearly outside the scope of this fix, but we may
>> want to do so while our mind is on the "how do we check required
>> version?" in a separate patch.
>
> Makes sense to me, but my Tcl knowledge isn't up to making those
> changes as the code's a bit different. I have to paraphrase Chris's
> message here by saying that I guess those checks are correct if not
> consistent with the others.
OK, let's ask Pat (cc'ed) to apply your version as-is without touching these 1.5.3 references. I do not take patches to git-gui directly to my tree.
Thanks.
-- >8 --
From: "Kyle J. McKay" <mackyle@gmail.com>
Date: Tue, 6 Jan 2015 02:41:21 -0800
Tcl 8.5 introduced an extended vsatisfies syntax that is not supported by Tcl 8.4.
Since only Tcl 8.4 is required this presents a problem.
The extended syntax was used starting with Git 2.0.0 in commit b3f0c5c0 (git-gui: tolerate major version changes when comparing the git version, 2014-05-17), so that a major version change would still satisfy the condition.
However, what we really want is just a basic version compare, so use vcompare instead to restore compatibility with Tcl 8.4.
Signed-off-by: Kyle J. McKay <mackyle@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
git-gui.sh | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
Show changes to 2 files +2 −2
git-gui.sh, git-gui/git-gui.sh
diff --git a/git-gui.sh b/git-gui.sh
index b186329d..a1a23b56 100755
--- a/git-gui/git-gui.sh
+++ b/git-gui/git-gui.sh
@@ -1283,7 +1283,7 @@ load_config 0
apply_config
# v1.7.0 introduced --show-toplevel to return the canonical work-tree
-if {[package vsatisfies $_git_version 1.7.0-]} {
+if {[package vcompare $_git_version 1.7.0] >= 0} {
if { [is_Cygwin] } {
catch {set _gitworktree [exec cygpath --windows [git rev-parse --show-toplevel]]}
} else {
@@ -1539,7 +1539,7 @@ proc rescan_stage2 {fd after} {
close $fd
}
- if {[package vsatisfies $::_git_version 1.6.3-]} {
+ if {[package vcompare $::_git_version 1.6.3] >= 0} {
set ls_others [list --exclude-standard]
} else {
set ls_others [list --exclude-per-directory=.gitignore]
--
2.1.4