This represents mercurial changesets similarly to git. For untagged revisions, append the changeset id. If there are uncommitted changes, append -dirty. For example, -hgc60016ba6237-dirty
Showing the changes to scripts (1 of 1 file). Show all
Unified · Split
| @@ -19,4 +19,27 @@ if head=`git rev-parse --verify HEAD 2>/dev/null`; then · 18 unmodified lines | |||
| 19 | if git diff-index HEAD | read dummy; then | 19 | if git diff-index HEAD | read dummy; then |
| 20 | printf '%s' -dirty | 20 | printf '%s' -dirty |
| 21 | fi | 21 | fi |
| 22 | |||
| 23 | # All done with git | ||
| 24 | exit | ||
| 25 | fi | ||
| 26 | |||
| 27 | # Check for mercurial and a mercurial repo. | ||
| 28 | if hgid=`hg id 2>/dev/null`; then | ||
| 29 | tag=`printf '%s' "$hgid" | cut -d' ' -f2` | ||
| 30 | |||
| 31 | # Do we have an untagged version? | ||
| 32 | if [ -z "$tag" -o "$tag" = tip ]; then | ||
| 33 | id=`printf '%s' "$hgid" | sed 's/[+ ].*//'` | ||
| 34 | printf '%s%s' -hg "$id" | ||
| 35 | fi | ||
| 36 | |||
| 37 | # Are there uncommitted changes? | ||
| 38 | # These are represented by + after the changeset id. | ||
| 39 | case "$hgid" in | ||
| 40 | *+|*+\ *) printf '%s' -dirty ;; | ||
| 41 | esac | ||
| 42 | |||
| 43 | # All done with mercurial | ||
| 44 | exit | ||
| 22 | fi | 45 | fi |