The breadth of git commands keeps us busy enough, I figured Hyperbole could help take away the complexity of some basic operations and let you refer to git elements in your documents. So here is a very nice first pass at git and github references, and the new git-reference and github-reference implicit button types. This is in the latest savannah and github pushes of Hyperbole: https://github.com/rswgnu/hyperbole or with our new syntax, gh#/rswgnu/hyperbole.
For local git references, Hyperbole automatically uses `locate' to build an index of git repository locations for later lookup by repository/project name.
The code is in the hib-social.el file, since git and Github are socially-related services too.
Still need to come up with a syntax for referring to different branches.
A bit about this is in the DEMO file but none of it is yet covered in the Hyperbole Manual since this isn't yet a release.
Action Key presses on all of the following work as described:
;;;
;;; Github (remote) reference links
;;;
;; Display user's Github home page
address@hidden
;; Display user's project
github#/rswgnu/hyperbole
;; Display user project's commit diff
gh#rswgnu/hyperbole/55a1f0
(setq hibtypes-github-default-user "rswgnu")
;; Display default user's project
github#/hyperbole
;; Display default user commit diff
gh#hyperbole/55a1f0
;; Display default user and default project commit diff
(setq hibtypes-github-default-project "hyperbole")
gh#55a1f0
;; Invalid, use address@hidden
gh#rswgnu
;;;
;;; Github (local) reference links
;;;
;; From any buffer, dired on the top directory of the local hyperbole
;; repository
git#/hyperbole
;; From any buffer, display hyperbole local git commit diff
git#/hyperbole/55a1f0 or git#hyperbole/55a1f0
;; Based on current default-directory, display current repo's local
;; git commit diff; works when default-directory is inside a git
;; repository with commit hashtag 55a1f0
gt#55a1f0
(setq hibtypes-git-default-project "hyperbole")
;; From any buffer once the above default is set,
;; display current repo's local git commit diff
git#55a1f0
-- The End --