From a135f214e371311f13807da637d492fd9642a2e3 Mon Sep 17 00:00:00 2001 From: Felipe Contreras Date: Sat, 7 Apr 2012 03:29:38 +0300 Subject: [PATCH 1/6] gitk: Avoid Meta1-F5 Meta1-F5 is commonly mapped by window managers and what not. Use Shift-F5 instead. Signed-off-by: Felipe Contreras Signed-off-by: Paul Mackerras --- gitk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gitk b/gitk index 22270ce46b..9bba9aa8d1 100755 --- a/gitk +++ b/gitk @@ -2038,7 +2038,7 @@ proc makewindow {} { set file { mc "File" cascade { {mc "Update" command updatecommits -accelerator F5} - {mc "Reload" command reloadcommits -accelerator Meta1-F5} + {mc "Reload" command reloadcommits -accelerator Shift-F5} {mc "Reread references" command rereadrefs} {mc "List references" command showrefs -accelerator F2} {xx "" separator} @@ -2495,7 +2495,7 @@ proc makewindow {} { bindkey ? {dofind -1 1} bindkey f nextfile bind . updatecommits - bind . <$M1B-F5> reloadcommits + bind . reloadcommits bind . showrefs bind . {newview 0} catch { bind . {newview 0} } From 0ae103574e5411be107c31a3390884f65fbaa0ef Mon Sep 17 00:00:00 2001 From: Aske Olsson Date: Thu, 10 May 2012 12:13:43 +0200 Subject: [PATCH 2/6] gitk: Fix GIT_TRACE issues Check if GIT_TRACE env var is set and unset it if it is. If the environment var GIT_TRACE=1 exists gitk will fail when trying to find gitdir: $ git rev-parse --git-dir trace: built-in: git 'rev-parse' '--git-dir' .git Other git commands will also show debug output hence not work as intended. Signed-off-by: Aske Olsson Signed-off-by: Paul Mackerras --- gitk | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/gitk b/gitk index 9bba9aa8d1..1f412bb5e5 100755 --- a/gitk +++ b/gitk @@ -11532,6 +11532,11 @@ if {[catch {package require Tk 8.4} err]} { exit 1 } +# Unset GIT_TRACE var if set +if { [info exists ::env(GIT_TRACE)] } { + unset ::env(GIT_TRACE) +} + # defaults... set wrcomcmd "git diff-tree --stdin -p --pretty" From 9b5bdf5913f850d1fc72c4219f794e2de549957f Mon Sep 17 00:00:00 2001 From: David Aguilar Date: Sat, 8 Sep 2012 12:03:13 -0700 Subject: [PATCH 3/6] gitk: Teach "Reread references" to reload tags Tag contents, once read, are forever cached in memory. This makes gitk unable to notice when tag contents change. Allow users to cause a reload of the tag contents by using the "File->Reread references" action. Reported-by: Tim McCormack Suggested-by: Junio C Hamano Signed-off-by: David Aguilar Signed-off-by: Junio C Hamano --- gitk | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gitk b/gitk index 9bba9aa8d1..a124822626 100755 --- a/gitk +++ b/gitk @@ -10599,7 +10599,7 @@ proc movedhead {hid head} { } proc changedrefs {} { - global cached_dheads cached_dtags cached_atags + global cached_dheads cached_dtags cached_atags tagcontents global arctags archeads arcnos arcout idheads idtags foreach id [concat [array names idheads] [array names idtags]] { @@ -10611,6 +10611,7 @@ proc changedrefs {} { } } } + catch {unset tagcontents} catch {unset cached_dtags} catch {unset cached_atags} catch {unset cached_dheads} From 587277fea3bf3bfc4302480178bd88a277a69f05 Mon Sep 17 00:00:00 2001 From: David Aguilar Date: Sat, 8 Sep 2012 12:53:16 -0700 Subject: [PATCH 4/6] gitk: Rename 'tagcontents' to 'cached_tagcontent' Name the 'tagcontents' variable similarly to the rest of the variables cleared in the changedrefs() function. This makes the naming consistent and provides a hint that it should be cleared when reloading gitk's cache. Suggested-by: Junio C Hamano Signed-off-by: David Aguilar Signed-off-by: Junio C Hamano --- gitk | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/gitk b/gitk index a124822626..6f24f53d21 100755 --- a/gitk +++ b/gitk @@ -10599,7 +10599,7 @@ proc movedhead {hid head} { } proc changedrefs {} { - global cached_dheads cached_dtags cached_atags tagcontents + global cached_dheads cached_dtags cached_atags cached_tagcontent global arctags archeads arcnos arcout idheads idtags foreach id [concat [array names idheads] [array names idtags]] { @@ -10611,7 +10611,7 @@ proc changedrefs {} { } } } - catch {unset tagcontents} + catch {unset cached_tagcontent} catch {unset cached_dtags} catch {unset cached_atags} catch {unset cached_dheads} @@ -10664,7 +10664,7 @@ proc listrefs {id} { } proc showtag {tag isnew} { - global ctext tagcontents tagids linknum tagobjid + global ctext cached_tagcontent tagids linknum tagobjid if {$isnew} { addtohistory [list showtag $tag 0] savectextpos @@ -10673,13 +10673,13 @@ proc showtag {tag isnew} { clear_ctext settabs 0 set linknum 0 - if {![info exists tagcontents($tag)]} { + if {![info exists cached_tagcontent($tag)]} { catch { - set tagcontents($tag) [exec git cat-file tag $tag] + set cached_tagcontent($tag) [exec git cat-file tag $tag] } } - if {[info exists tagcontents($tag)]} { - set text $tagcontents($tag) + if {[info exists cached_tagcontent($tag)]} { + set text $cached_tagcontent($tag) } else { set text "[mc "Tag"]: $tag\n[mc "Id"]: $tagids($tag)" } From e70d1632bdaf25a9ee528e78133cab319083eade Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Wed, 12 Sep 2012 14:10:54 -0700 Subject: [PATCH 5/6] Further merging in preparation for 1.7.12.1 Describe the following in the draft release notes: . jc/apply-binary-p0 . jc/dotdot-is-parent-directory . jc/maint-doc-checkout-b-always-takes-branch-name . jk/maint-http-half-auth-push . kk/maint-for-each-ref-multi-sort Yet to be merged before 1.7.12.1 are: . jk/config-warn-on-inaccessible-paths . jk/maint-quiet-is-synonym-to-s-in-log . mz/cherry-pick-cmdline-order Signed-off-by: Junio C Hamano --- Documentation/RelNotes/1.7.12.1.txt | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/Documentation/RelNotes/1.7.12.1.txt b/Documentation/RelNotes/1.7.12.1.txt index da51dd5392..4088a166f5 100644 --- a/Documentation/RelNotes/1.7.12.1.txt +++ b/Documentation/RelNotes/1.7.12.1.txt @@ -14,6 +14,11 @@ Fixes since v1.7.12 subcommands can be abbreviated to the unique prefix, but it was not easy to find it described for new readers of the documentation set. + * The synopsis said "checkout [-B branch]" to make it clear the + branch name is a parameter to the option, but the heading for the + option description was "-B::", not "-B branch::", making the + documentation misleading. + * The "--topo-order", "--date-order" (and the lack of either means the default order) options to "rev-list" and "log" family of commands were poorly described in the documentation. @@ -36,6 +41,14 @@ Fixes since v1.7.12 * Fallback 'getpass' implementation made unportable use of stdio API. + * "git apply -p0" did not parse pathnames on "diff --git" line + correctly. This caused patches that had pathnames in no other + places to be mistakenly rejected (most notably, binary patch that + does not rename nor change mode). Textual patches, renames or mode + changes have preimage and postimage pathnames in different places + in a form that can be parsed unambiguously and did not suffer from + this problem. + * "git commit --amend" let the user edit the log message and then died when the human-readable committer name was given insufficiently by getpwent(3). @@ -44,9 +57,22 @@ Fixes since v1.7.12 did not advertise that they are available. fetch-pack has been fixed not to do so. + * "git for-each-ref" did not currectly support more than one --sort + option. + + * "git log .." errored out saying it is both rev range and a path + when there is no disambiguating "--" is on the command line. + Update the command line parser to interpret ".." as a path in such + a case. + * "git prune" without "-v" used to warn about leftover temporary files (which is an indication of an earlier aborted operation). + * Pushing to smart HTTP server with recent Git fails without having + the username in the URL to force authentication, if the server is + configured to allow GET anonymously, while requiring authentication + for POST. + * The reflog entries left by "git rebase" and "git rebase -i" were inconsistent (the interactive one gave an abbreviated object name). From 6b149cee20cfa6f525964cdf1f386b47894fd758 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Wed, 12 Sep 2012 14:33:50 -0700 Subject: [PATCH 6/6] Start merging the sixth batch for 1.8.0 Signed-off-by: Junio C Hamano --- Documentation/RelNotes/1.8.0.txt | 51 +++++++++++--------------------- 1 file changed, 18 insertions(+), 33 deletions(-) diff --git a/Documentation/RelNotes/1.8.0.txt b/Documentation/RelNotes/1.8.0.txt index 689c3874e1..2a8adca2a8 100644 --- a/Documentation/RelNotes/1.8.0.txt +++ b/Documentation/RelNotes/1.8.0.txt @@ -59,6 +59,7 @@ Foreign Interface * "git svn" has been updated to work with SVN 1.7. + Performance, Internal Implementation, etc. (please report possible regressions) * Git ships with a fall-back regexp implementation for platforms with @@ -75,6 +76,9 @@ Performance, Internal Implementation, etc. (please report possible regressions) * Compatibility wrapper around some mkdir(2) implementations that reject parameter with trailing slash has been introduced. + * Compatibility wrapper for systems that lack usable setitimer() has + been added. + * Many internal uses of "git merge-base" equivalent were only to see if one commit fast-forwards to the other, which did not need the full set of merge bases to be computed. They have been updated to @@ -87,6 +91,7 @@ Performance, Internal Implementation, etc. (please report possible regressions) * Messages given by "git -h" from many subcommands have been marked for translation. + Also contains minor documentation updates and code clean-ups. @@ -97,6 +102,18 @@ Unless otherwise noted, all the fixes since v1.7.12 in the maintenance track are contained in this release (see release notes to them for details). + * The subcommand in "git remote" to remove a defined remote was + "rm" and the command did not take a fully-spelled "remove". + (merge e17dba8 nd/maint-remote-remove later to maint). + + * After "gitk" showed the contents of a tag, neither "Reread + references" nor "Reload" did not update what is shown as the + contents of it, when the user overwrote the tag with "git tag -f". + + * "git cvsimport" did not thoroughly cleanse tag names that it + inferred from the names of the tags it obtained from CVS, which + caused "git tag" to barf and stop the import in the middle. + * "git show --format='%ci'" did not give timestamp correctly for commits created without human readable name on "committer" line. (merge e27ddb6 jc/maint-ident-missing-human-name later to maint). @@ -120,46 +137,14 @@ to them for details). branches were counting in bytes, not in display columns. (merge 1452bd6 nd/branch-v-alignment later to maint). - * "git for-each-ref" did not currectly support more than one --sort - option. - (merge 3b51222 kk/maint-for-each-ref-multi-sort later to maint). - - * Pushing to smart HTTP server with recent Git fails without having - the username in the URL to force authentication, if the server is - configured to allow GET anonymously, while requiring authentication - for POST. - (merge b81401c jk/maint-http-half-auth-push later to maint). - * When looking for $HOME/.gitconfig etc., it is OK if we cannot read them because they do not exist, but we did not diagnose existing files that we cannot read. - * The synopsis said "checkout [-B branch]" to make it clear the - branch name is a parameter to the option, but the heading for the - option description was "-B::", not "-B branch::", making the - documentation misleading. There may be room in documentation pages - of other commands for similar improvements (hint, hint). - (merge 45aaf03 jc/maint-doc-checkout-b-always-takes-branch-name later to maint). - - * "git log .." errored out saying it is both rev range and a path - when there is no disambiguating "--" is on the command line. - Update the command line parser to interpret ".." as a path in such - a case. - (merge 003c84f jc/dotdot-is-parent-directory later to maint). - - * "git apply -p0" did not parse pathnames on "diff --git" line - correctly. This caused patches that had pathnames in no other - places to be mistakenly rejected (most notably, binary patch that - does not rename nor change mode). Textual patches, renames or mode - changes have preimage and postimage pathnames in different places - in a form that can be parsed unambiguously and did not suffer from - this problem. - (merge 6a2abdc jc/apply-binary-p0 later to maint). - * The interactive prompt "git send-email" gives was error prone. It asked "What e-mail address do you want to use?" with the address it guessed (correctly) the user would want to use in its prompt, tempting the user to say "y". But the response was taken as "No, please use 'y' as the e-mail address instead", which is most certainly not what the user meant. - (merge 51bbccf jc/send-email-reconfirm later to maint). + (merge 6183749 sb/send-email-reconfirm-fix later to maint).