+proc readgrafts {} {
+ global grafts env
+ catch {
+ set graftfile info/grafts
+ if {[info exists env(GIT_GRAFT_FILE)]} {
+ set graftfile $env(GIT_GRAFT_FILE)
+ }
+ set fd [open [gitdir]/$graftfile r]
+ while {[gets $fd line] >= 0} {
+ if {[string match "#*" $line]} continue
+ set ok 1
+ foreach x $line {
+ if {![regexp {^[0-9a-f]{40}$} $x]} {
+ set ok 0
+ break
+ }
+ }
+ if {$ok} {
+ set id [lindex $line 0]
+ set grafts($id) [lrange $line 1 end]
+ }
+ }
+ close $fd
+ }
+}
+