+(defun stgit-svn-find-rev (sha1 hash)
+ "Return the subversion revision corresponding to SHA1 as
+reported by git svn.
+
+Cached data is stored in HASH, which must have been created
+using (make-hash-table :test 'equal)."
+ (let ((result (gethash sha1 hash t)))
+ (when (eq result t)
+ (let ((svn-rev (with-output-to-string
+ (stgit-run-git-silent "svn" "find-rev"
+ "--" sha1))))
+ (setq result (when (string-match "\\`[0-9]+" svn-rev)
+ (string-to-number (match-string 0 svn-rev))))
+ (puthash sha1 result hash)))
+ result))
+