hgk: use hg export to write commits
Instead of calling internal command, use hg export to produce changeset
diffs compatible with hg import directly.
--- a/contrib/hgk Tue Mar 25 22:47:59 2014 +0100
+++ b/contrib/hgk Sat Mar 15 18:27:51 2014 +0100
@@ -3893,7 +3893,7 @@
}
proc writecommit {} {
- global rowmenuid wrcomtop commitinfo wrcomcmd
+ global rowmenuid wrcomtop commitinfo
set top .writecommit
set wrcomtop $top
@@ -3908,9 +3908,6 @@
$top.head insert 0 [lindex $commitinfo($rowmenuid) 0]
$top.head conf -state readonly
grid x $top.head -sticky w
- ttk::label $top.clab -text "Command:"
- ttk::entry $top.cmd -width 60 -textvariable wrcomcmd
- grid $top.clab $top.cmd -sticky w -pady 10
ttk::label $top.flab -text "Output file:"
ttk::entry $top.fname -width 60
$top.fname insert 0 [file normalize "commit-[string range $rowmenuid 0 6].diff"]
@@ -3931,9 +3928,8 @@
global wrcomtop
set id [$wrcomtop.sha1 get]
- set cmd "echo $id | [$wrcomtop.cmd get]"
set fname [$wrcomtop.fname get]
- if {[catch {exec sh -c $cmd > $fname &} err]} {
+ if {[catch {exec $::env(HG) --config ui.report_untrusted=false export --git -o [string map {% %%} $fname] $id} err]} {
error_popup "Error writing commit: $err"
}
catch {destroy $wrcomtop}
@@ -4059,7 +4055,6 @@
set datemode 0
set boldnames 0
set diffopts "-U 5 -p"
-set wrcomcmd "\"\$HG\" --config ui.report_untrusted=false debug-diff-tree --stdin -p --pretty"
set mainfont {Helvetica 9}
set curidfont {}