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 | 19 | if git diff-index HEAD | read dummy; then |
| 20 | 20 | printf '%s' -dirty |
| 21 | 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 | 45 | fi |