# [PATCH 2/4] gitk: Remove unused $cdate array

4 messages from 2010-11-19 to 2010-11-19. Participants: Anders Kaseorg.
Thread: https://gitlist.dev/t/25785

## Anders Kaseorg, 2010-11-19 07:38

Subject: [PATCH 1/4] gitk: Update cherry-pick error message parsing
Message-ID: <1290152300-21393-1-git-send-email-andersk@mit.edu>
URL: https://gitlist.dev/e/1290152300-21393-1-git-send-email-andersk%40mit.edu

```
Commit 981ff5c37ae20687c98d98c8689d5e89016026d2 changed the error
message from git cherry-pick from
    Automatic cherry-pick failed.  [...advice...]
to
    error: could not apply 7ab78c9... Do something neat.
    [...advice...]

Update gitk’s regex to match this, restoring the ability to launch git
citool to resolve conflicted cherry-picks.

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
---
 gitk-git/gitk |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/gitk-git/gitk b/gitk-git/gitk
index 1b0e09a..dbc8f86 100644
--- a/gitk-git/gitk
+++ b/gitk-git/gitk
@@ -9002,7 +9002,7 @@ proc cherrypick {} {
 			to file '%s'.\nPlease commit, reset or stash\
 			your changes and try again." $fname]
 	} elseif {[regexp -line \
-		       {^(CONFLICT \(.*\):|Automatic cherry-pick failed)} \
+		       {^(CONFLICT \(.*\):|Automatic cherry-pick failed|error: could not apply)} \
 		       $err]} {
 	    if {[confirm_popup [mc "Cherry-pick failed because of merge\
 			conflict.\nDo you wish to run git citool to\
-- 
1.7.3.2

```

## Anders Kaseorg, 2010-11-19 07:38

Subject: [PATCH 2/4] gitk: Remove unused $cdate array
Message-ID: <1290152300-21393-2-git-send-email-andersk@mit.edu>
URL: https://gitlist.dev/e/1290152300-21393-2-git-send-email-andersk%40mit.edu
In-Reply-To: <1290152300-21393-1-git-send-email-andersk@mit.edu>

```
It was unused since commit 9f1afe05c3ab7228e21ba3666c6e35d693149b37.

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
---
 gitk-git/gitk |    5 +----
 1 files changed, 1 insertions(+), 4 deletions(-)

diff --git a/gitk-git/gitk b/gitk-git/gitk
index dbc8f86..61f2e95 100644
--- a/gitk-git/gitk
+++ b/gitk-git/gitk
@@ -1606,7 +1606,7 @@ proc readcommit {id} {
 }
 
 proc parsecommit {id contents listed} {
-    global commitinfo cdate
+    global commitinfo
 
     set inhdr 1
     set comment {}
@@ -1656,9 +1656,6 @@ proc parsecommit {id contents listed} {
 	}
 	set comment $newcomment
     }
-    if {$comdate != {}} {
-	set cdate($id) $comdate
-    }
     set commitinfo($id) [list $headline $auname $audate \
 			     $comname $comdate $comment]
 }
-- 
1.7.3.2

```

## Anders Kaseorg, 2010-11-19 07:38

Subject: [PATCH 3/4] gitk: Remember time zones from author and commit timestamps
Message-ID: <1290152300-21393-3-git-send-email-andersk@mit.edu>
URL: https://gitlist.dev/e/1290152300-21393-3-git-send-email-andersk%40mit.edu
In-Reply-To: <1290152300-21393-1-git-send-email-andersk@mit.edu>

```
When resolving a conflicted cherry-pick, this lets us pass
GIT_AUTHOR_DATE to git citool with the correct timezone.

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
---
 gitk-git/gitk |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/gitk-git/gitk b/gitk-git/gitk
index 61f2e95..acdbd21 100644
--- a/gitk-git/gitk
+++ b/gitk-git/gitk
@@ -644,7 +644,7 @@ proc newvarc {view id} {
 	if {![info exists commitinfo($id)]} {
 	    parsecommit $id $commitdata($id) 1
 	}
-	set cdate [lindex $commitinfo($id) 4]
+	set cdate [lindex [lindex $commitinfo($id) 4] 0]
 	if {![string is integer -strict $cdate]} {
 	    set cdate 0
 	}
@@ -1626,10 +1626,10 @@ proc parsecommit {id contents listed} {
 	set line [split $line " "]
 	set tag [lindex $line 0]
 	if {$tag == "author"} {
-	    set audate [lindex $line end-1]
+	    set audate [lrange $line end-1 end]
 	    set auname [join [lrange $line 1 end-2] " "]
 	} elseif {$tag == "committer"} {
-	    set comdate [lindex $line end-1]
+	    set comdate [lrange $line end-1 end]
 	    set comname [join [lrange $line 1 end-2] " "]
 	}
     }
@@ -10957,7 +10957,7 @@ proc prefsok {} {
 proc formatdate {d} {
     global datetimeformat
     if {$d ne {}} {
-	set d [clock format $d -format $datetimeformat]
+	set d [clock format [lindex $d 0] -format $datetimeformat]
     }
     return $d
 }
-- 
1.7.3.2

```

## Anders Kaseorg, 2010-11-19 07:38

Subject: [PATCH 4/4] gitk: Allow displaying time zones from author and commit timestamps
Message-ID: <1290152300-21393-4-git-send-email-andersk@mit.edu>
URL: https://gitlist.dev/e/1290152300-21393-4-git-send-email-andersk%40mit.edu
In-Reply-To: <1290152300-21393-1-git-send-email-andersk@mit.edu>

```
Now gitk can be configured to display author and commit dates in their
original timezone, by putting %z into datetimeformat in ~/.gitk.

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
---
 gitk-git/gitk |   13 ++++++++++++-
 1 files changed, 12 insertions(+), 1 deletions(-)

diff --git a/gitk-git/gitk b/gitk-git/gitk
index acdbd21..b67ecc4 100644
--- a/gitk-git/gitk
+++ b/gitk-git/gitk
@@ -10957,7 +10957,18 @@ proc prefsok {} {
 proc formatdate {d} {
     global datetimeformat
     if {$d ne {}} {
-	set d [clock format [lindex $d 0] -format $datetimeformat]
+	if {[string match {*%[zZ]*} $datetimeformat]} {
+	    if {[catch {set d [clock format [lindex $d 0] -timezone [lindex $d 1] -format $datetimeformat]}]} {
+		# Tcl < 8.5 does not support -timezone.
+		global env
+		set zone [lindex $d 1]
+		set env(TZ) "IDK[string range $zone 0 2]:[string range $zone 3 end]"
+		set d [clock format [lindex $d 0] -format $datetimeformat]
+		unset env(TZ)
+	    }
+	} else {
+	    set d [clock format [lindex $d 0] -format $datetimeformat]
+	}
     }
     return $d
 }
-- 
1.7.3.2

```
