From 2c2a3782c5092f232e71e8d97272b82cdca0664e Mon Sep 17 00:00:00 2001 From: Wincent Colaiuta Date: Mon, 18 Feb 2008 09:36:33 +0100 Subject: git-gui: relax "dirty" version detection "git gui" would complain at launch if the local version of Git was "1.5.4.2.dirty". Loosen the regular expression to look for either "-dirty" or ".dirty", thus eliminating spurious warnings. Signed-off-by: Wincent Colaiuta Signed-off-by: Shawn O. Pearce diff --git a/git-gui.sh b/git-gui.sh index f42e461..04bd425 100755 --- a/git-gui.sh +++ b/git-gui.sh @@ -662,7 +662,7 @@ if {![regsub {^git version } $_git_version {} _git_version]} { } set _real_git_version $_git_version -regsub -- {-dirty$} $_git_version {} _git_version +regsub -- {[\-\.]dirty$} $_git_version {} _git_version regsub {\.[0-9]+\.g[0-9a-f]+$} $_git_version {} _git_version regsub {\.rc[0-9]+$} $_git_version {} _git_version regsub {\.GIT$} $_git_version {} _git_version -- cgit v0.10.2-6-g49f6 From aba15f7f592c302196401d17a42c772d744555b4 Mon Sep 17 00:00:00 2001 From: "Shawn O. Pearce" Date: Wed, 20 Feb 2008 23:37:07 -0500 Subject: git-gui: Ensure error dialogs always appear over all other windows If we are opening an error dialog we want it to appear above all of the other windows, even those that we may have opened with a grab to make the window modal. Failure to do so may allow an error dialog to open up (and grab focus!) under an existing toplevel, making the user think git-gui has frozen up and is unresponsive, as they cannot get to the dialog. Signed-off-by: Shawn O. Pearce diff --git a/lib/error.tcl b/lib/error.tcl index 0fdd753..45800d5 100644 --- a/lib/error.tcl +++ b/lib/error.tcl @@ -1,6 +1,10 @@ # git-gui branch (create/delete) support # Copyright (C) 2006, 2007 Shawn Pearce +proc _error_parent {} { + return [grab current .] +} + proc error_popup {msg} { set title [appname] if {[reponame] ne {}} { @@ -11,8 +15,8 @@ proc error_popup {msg} { -type ok \ -title [append "$title: " [mc "error"]] \ -message $msg] - if {[winfo ismapped .]} { - lappend cmd -parent . + if {[winfo ismapped [_error_parent]]} { + lappend cmd -parent [_error_parent] } eval $cmd } @@ -27,13 +31,13 @@ proc warn_popup {msg} { -type ok \ -title [append "$title: " [mc "warning"]] \ -message $msg] - if {[winfo ismapped .]} { - lappend cmd -parent . + if {[winfo ismapped [_error_parent]]} { + lappend cmd -parent [_error_parent] } eval $cmd } -proc info_popup {msg {parent .}} { +proc info_popup {msg} { set title [appname] if {[reponame] ne {}} { append title " ([reponame])" @@ -56,8 +60,8 @@ proc ask_popup {msg} { -type yesno \ -title $title \ -message $msg] - if {[winfo ismapped .]} { - lappend cmd -parent . + if {[winfo ismapped [_error_parent]]} { + lappend cmd -parent [_error_parent] } eval $cmd } -- cgit v0.10.2-6-g49f6 From 85ec3e7778c09f5d4f52a29f57c5ecc64070ffd1 Mon Sep 17 00:00:00 2001 From: "Shawn O. Pearce" Date: Thu, 21 Feb 2008 12:22:08 -0500 Subject: git-gui: Paper bag fix error dialogs opening over the main window If the main window is the only toplevel we have open then we don't have a valid grab right now, so we need to assume the best toplevel to use for the parent is ".". Signed-off-by: Shawn O. Pearce diff --git a/lib/error.tcl b/lib/error.tcl index 45800d5..08a2462 100644 --- a/lib/error.tcl +++ b/lib/error.tcl @@ -2,7 +2,11 @@ # Copyright (C) 2006, 2007 Shawn Pearce proc _error_parent {} { - return [grab current .] + set p [grab current .] + if {$p eq {}} { + return . + } + return $p } proc error_popup {msg} { -- cgit v0.10.2-6-g49f6 From 651fbba2d36072b2491bc53628159ff4fb3085dc Mon Sep 17 00:00:00 2001 From: "Shawn O. Pearce" Date: Thu, 21 Feb 2008 19:17:27 -0500 Subject: git-gui: Default TCL_PATH to same location as TCLTK_PATH Most users set TCLTK_PATH to tell git-gui where to find wish, but they fail to set TCL_PATH to the same Tcl installation. We use the non-GUI tclsh during builds so headless systems are still able to create an index file and create message files without GNU msgfmt. So it matters to us that we find a working TCL_PATH at build time. If TCL_PATH hasn't been set yet we can take a better guess about what tclsh executable to use by replacing 'wish' in the executable path with 'tclsh'. We only do this replacement on the filename part of the path, just in case the string "wish" appears in the directory paths. Most of the time the tclsh will be installed alongside wish so this replacement is a sensible and safe default. Signed-off-by: Shawn O. Pearce diff --git a/Makefile b/Makefile index 081d755..1ba0e78 100644 --- a/Makefile +++ b/Makefile @@ -92,8 +92,12 @@ ifndef V REMOVE_F1 = && echo ' ' REMOVE `basename "$$dst"` && $(RM_RF) "$$dst" endif -TCL_PATH ?= tclsh TCLTK_PATH ?= wish +ifeq (./,$(dir $(TCLTK_PATH))) + TCL_PATH ?= $(subst wish,tclsh,$(TCLTK_PATH)) +else + TCL_PATH ?= $(dir $(TCLTK_PATH))$(notdir $(subst wish,tclsh,$(TCLTK_PATH))) +endif ifeq ($(uname_S),Darwin) TKFRAMEWORK = /Library/Frameworks/Tk.framework/Resources/Wish.app -- cgit v0.10.2-6-g49f6 From df4ec4cf6f68d92d2fbf20e808722d242ab2b894 Mon Sep 17 00:00:00 2001 From: "Shawn O. Pearce" Date: Thu, 21 Feb 2008 19:27:46 -0500 Subject: git-gui: Avoid hardcoded Windows paths in Cygwin package files MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When we are being built by the Cygwin package maintainers we need to embed the POSIX path to our library files and not the Windows path. Embedding the Windows path means all end-users who install our Cygwin package would be required to install Cygwin at the same Windows path as the package maintainer had Cygwin installed to. This requirement is simply not user-friendly and may be infeasible for a large number of our users. We now try to auto-detect if the Tcl/Tk binary we will use at runtime is capable of translating POSIX paths into Windows paths the same way that cygpath does the translations. If the Tcl/Tk binary gives us the same results then it understands the Cygwin path translation process and should be able to read our library files from a POSIX path name. If it does not give us the same answer as cygpath then the Tcl/Tk binary might actually be a native Win32 build (one that is not linked against Cygwin) and thus requires the native Windows path to our library files. We can assume this is not a Cygwin package as the Cygwin maintainers do not currently ship a pure Win32 build of Tcl/Tk. Reported on the git mailing list by Jurko Gospodnetić. Signed-off-by: Shawn O. Pearce diff --git a/Makefile b/Makefile index 1ba0e78..01e0a46 100644 --- a/Makefile +++ b/Makefile @@ -131,7 +131,17 @@ GITGUI_MACOSXAPP := ifeq ($(uname_O),Cygwin) GITGUI_SCRIPT := `cygpath --windows --absolute "$(GITGUI_SCRIPT)"` - gg_libdir_sed_in := $(shell cygpath --windows --absolute "$(gg_libdir)") + + # Is this a Cygwin Tcl/Tk binary? If so it knows how to do + # POSIX path translation just like cygpath does and we must + # keep libdir in POSIX format so Cygwin packages of git-gui + # work no matter where the user installs them. + # + ifeq ($(shell echo 'puts [file normalize /]' | '$(TCL_PATH_SQ)'),$(shell cygpath --mixed --absolute /)) + gg_libdir_sed_in := $(gg_libdir) + else + gg_libdir_sed_in := $(shell cygpath --windows --absolute "$(gg_libdir)") + endif else ifeq ($(exedir),$(gg_libdir)) GITGUI_RELATIVE := 1 -- cgit v0.10.2-6-g49f6 From 3baee1f3bf8e30f0fc67bbb1a49877bf0660fd29 Mon Sep 17 00:00:00 2001 From: "Shawn O. Pearce" Date: Mon, 11 Feb 2008 00:53:52 -0500 Subject: git-gui: Focus insertion point at end of strings in repository chooser When selecting a local working directory for a new repository or a location to clone an existing repository into we now set the insert point at the end of the selected path, allowing the user to type in any additional parts of the path if they so desire. Signed-off-by: Shawn O. Pearce diff --git a/lib/choose_repository.tcl b/lib/choose_repository.tcl index 86faf24..0adcf9d 100644 --- a/lib/choose_repository.tcl +++ b/lib/choose_repository.tcl @@ -11,6 +11,7 @@ field w_quit ; # Quit button field o_cons ; # Console object (if active) field w_types ; # List of type buttons in clone field w_recentlist ; # Listbox containing recent repositories +field w_localpath ; # Entry widget bound to local_path field done 0 ; # Finished picking the repository? field local_path {} ; # Where this repository is locally @@ -385,6 +386,7 @@ method _do_new {} { button $w_body.where.b \ -text [mc "Browse"] \ -command [cb _new_local_path] + set w_localpath $w_body.where.t pack $w_body.where.b -side right pack $w_body.where.l -side left @@ -416,6 +418,7 @@ method _new_local_path {} { return } set local_path $p + $w_localpath icursor end } method _do_new2 {} { @@ -481,6 +484,7 @@ method _do_clone {} { -text [mc "Browse"] \ -command [cb _new_local_path] grid $args.where_l $args.where_t $args.where_b -sticky ew + set w_localpath $args.where_t label $args.type_l -text [mc "Clone Type:"] frame $args.type_f -- cgit v0.10.2-6-g49f6 From 31e0b2ca81ad985a8768c33c0aba547a51d05277 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Sat, 23 Feb 2008 11:31:04 -0800 Subject: GIT 1.5.4.3 Signed-off-by: Junio C Hamano diff --git a/Documentation/RelNotes-1.5.4.3.txt b/Documentation/RelNotes-1.5.4.3.txt new file mode 100644 index 0000000..b0fc67f --- /dev/null +++ b/Documentation/RelNotes-1.5.4.3.txt @@ -0,0 +1,27 @@ +GIT v1.5.4.3 Release Notes +========================== + +Fixes since v1.5.4.2 +-------------------- + + * RPM spec used to pull in everything with 'git'. This has been + changed so that 'git' package contains just the core parts, + and we now supply 'git-all' metapackage to slurp in everything. + This should match end user's expectation better. + + * When some refs failed to update, git-push reported "failure" + which was unclear if some other refs were updated or all of + them failed atomically (the answer is the former). Reworded + the message to clarify this. + + * "git clone" from a repository whose HEAD was misconfigured + did not set up the remote properly. Now it tries to do + better. + + * Updated git-push documentation to clarify what "matching" + means, in order to reduce user confusion. + + * Updated git-add documentation to clarify "add -u" operates in + the current subdirectory you are in, just like other commands. + + * git-gui updates to work on OSX and Windows better. diff --git a/GIT-VERSION-GEN b/GIT-VERSION-GEN index 03fb9d7..0d4c2f7 100755 --- a/GIT-VERSION-GEN +++ b/GIT-VERSION-GEN @@ -1,7 +1,7 @@ #!/bin/sh GVF=GIT-VERSION-FILE -DEF_VER=v1.5.4.2.GIT +DEF_VER=v1.5.4.3.GIT LF=' ' @@ -16,7 +16,8 @@ elif test -d .git && case "$VN" in *$LF*) (exit 1) ;; v[0-9]*) - git diff-index --quiet HEAD || VN="$VN-dirty" ;; + test -z "$(git diff-index --name-only HEAD)" || + VN="$VN-dirty" ;; esac then VN=$(echo "$VN" | sed -e 's/-/./g'); diff --git a/RelNotes b/RelNotes index 7ab3485..3084ce6 120000 --- a/RelNotes +++ b/RelNotes @@ -1 +1 @@ -Documentation/RelNotes-1.5.4.2.txt \ No newline at end of file +Documentation/RelNotes-1.5.4.3.txt \ No newline at end of file -- cgit v0.10.2-6-g49f6