threads / patch / 12539

patchgitk: do not show local changes for bare repositories

Subject: [PATCH] gitk: do not show local changes for bare repositories

## tl;dr

5 messages between Mar 6, 2008 and Mar 10, 2008. Diffs are folded; open one to read it.

replies: 4people: 2as markdown or json

David Aguilar· Mar 6, 2008, 12:39 UTC · lore

Launching gitk on a bare repository would previously show the work tree as having removed all files. We now test for bare repositories before showing local changes.

Signed-off-by: David Aguilar <davvid@gmail.com>
---
 gitk |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)
Show changes to gitk +3 −2
diff --git a/gitk b/gitk
index f1f21e9..cc4cde3 100755
--- a/gitk
+++ b/gitk
@@ -2843,9 +2843,9 @@ proc dohidelocalchanges {} {
 
 # spawn off a process to do git diff-index --cached HEAD
 proc dodiffindex {} {
-    global localirow localfrow lserial showlocalchanges
+    global localirow localfrow lserial showlocalchanges isbare
 
-    if {!$showlocalchanges} return
+    if {!$showlocalchanges || $isbare} return
     incr lserial
     set localfrow -1
     set localirow -1
@@ -8643,6 +8643,7 @@ set patchnum 0
 set localirow -1
 set localfrow -1
 set lserial 0
+set isbare [expr {[exec git rev-parse --is-bare-repository] == "true"}]
 setcoords
 makewindow
 # wait for the window to become visible
-- 
1.5.4.rc2.1105.gfc5f2
Paul Mackerras· Mar 6, 2008, 23:07 UTC · re: David Aguilar · lore

Re: [PATCH] gitk: do not show local changes for bare repositories

David Aguilar writes:
> +set isbare [expr {[exec git rev-parse --is-bare-repository] == "true"}]

Nice idea, but I think we should update isbare in updatecommits, in case the user does a checkout and then presses F5.

Paul.
David Aguilar· Mar 7, 2008, 09:04 UTC · re: David Aguilar · lore

Launching gitk on a bare repository would previously show the work tree as having removed all files. We now query for bare repositories in updatecommits and test the value in dodiffindex before showing local changes.

Signed-off-by: David Aguilar <davvid@gmail.com>
---
 gitk |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)
Show changes to gitk +4 −2
diff --git a/gitk b/gitk
index f1f21e9..080459d 100755
--- a/gitk
+++ b/gitk
@@ -393,6 +393,7 @@ proc readcommit {id} {
 proc updatecommits {} {
     global viewdata curview phase displayorder ordertok idpending
     global children commitrow selectedline thickerline showneartags
+    global isbare
 
     if {$phase ne {}} {
 	stop_rev_list
@@ -407,6 +408,7 @@ proc updatecommits {} {
     foreach vid [array names idpending "$n,*"] {
 	unset idpending($vid)
     }
+    set isbare [expr {[exec git rev-parse --is-bare-repository] == "true"}]
     set curview -1
     catch {unset selectedline}
     catch {unset thickerline}
@@ -2843,9 +2845,9 @@ proc dohidelocalchanges {} {
 
 # spawn off a process to do git diff-index --cached HEAD
 proc dodiffindex {} {
-    global localirow localfrow lserial showlocalchanges
+    global localirow localfrow lserial showlocalchanges isbare
 
-    if {!$showlocalchanges} return
+    if {!$showlocalchanges || $isbare} return
     incr lserial
     set localfrow -1
     set localirow -1
-- 
1.5.4.1
Paul Mackerras· Mar 8, 2008, 11:14 UTC · re: David Aguilar · lore

Re: [PATCH] gitk: do not show local changes for bare repositories

David Aguilar writes:
Show 5 quoted lines
> @@ -407,6 +408,7 @@ proc updatecommits {} {
>      foreach vid [array names idpending "$n,*"] {
>  	unset idpending($vid)
>      }
> +    set isbare [expr {[exec git rev-parse --is-bare-repository] == "true"}]

Sorry, I meant do that in updatecommits as well as at startup. You still need that line in the startup code.

Paul.
David Aguilar· Mar 10, 2008, 10:54 UTC · re: Paul Mackerras · lore

[PATCH] gitk: do not show local changes when we there is no work tree

Launching gitk on a bare repository or a .git directory would previously show the work tree as having removed all files. We now inhibit showing local changes when gitk is not launched from within a work tree.

Signed-off-by: David Aguilar <davvid@gmail.com>
---
 gitk |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)
Show changes to gitk +6 −1
diff --git a/gitk b/gitk
index f1f21e9..ef12845 100755
--- a/gitk
+++ b/gitk
@@ -393,6 +393,9 @@ proc readcommit {id} {
 proc updatecommits {} {
     global viewdata curview phase displayorder ordertok idpending
     global children commitrow selectedline thickerline showneartags
+    global isworktree
+
+    set isworktree [expr {[exec git rev-parse --is-inside-work-tree] == "true"}]
 
     if {$phase ne {}} {
 	stop_rev_list
@@ -2844,8 +2847,9 @@ proc dohidelocalchanges {} {
 # spawn off a process to do git diff-index --cached HEAD
 proc dodiffindex {} {
     global localirow localfrow lserial showlocalchanges
+    global isworktree
 
-    if {!$showlocalchanges} return
+    if {!$showlocalchanges || !$isworktree} return
     incr lserial
     set localfrow -1
     set localirow -1
@@ -8643,6 +8647,7 @@ set patchnum 0
 set localirow -1
 set localfrow -1
 set lserial 0
+set isworktree [expr {[exec git rev-parse --is-inside-work-tree] == "true"}]
 setcoords
 makewindow
 # wait for the window to become visible
-- 
1.5.4.3

← back to recent threads