Mercurial > hg-stable
changeset 10023:15fbbc939373
Merge with stable
author | Sune Foldager <cryo@cyanite.org> |
---|---|
date | Tue, 08 Dec 2009 23:36:06 +0100 |
parents | 0022f5c5459e (diff) 585f51f8b5f0 (current diff) |
children | 2b630e4c8f2f |
files | hgext/patchbomb.py tests/test-patchbomb tests/test-patchbomb.out |
diffstat | 327 files changed, 9484 insertions(+), 8839 deletions(-) [+] |
line wrap: on
line diff
--- a/Makefile Tue Dec 08 23:23:59 2009 +0100 +++ b/Makefile Tue Dec 08 23:36:06 2009 +0100 @@ -79,9 +79,9 @@ update-pot: i18n/hg.pot -i18n/hg.pot: $(PYTHON_FILES) help/*.txt +i18n/hg.pot: $(PYTHON_FILES) mercurial/help/*.txt $(PYTHON) i18n/hggettext mercurial/commands.py \ - hgext/*.py hgext/*/__init__.py help/*.txt > i18n/hg.pot + hgext/*.py hgext/*/__init__.py mercurial/help/*.txt > i18n/hg.pot # All strings marked for translation in Mercurial contain # ASCII characters only. But some files contain string # literals like this '\037\213'. xgettext thinks it has to
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/contrib/bash/hg Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,573 @@ +# bash completion for the Mercurial distributed SCM + +# Docs: +# +# If you source this file from your .bashrc, bash should be able to +# complete a command line that uses hg with all the available commands +# and options and sometimes even arguments. +# +# Mercurial allows you to define additional commands through extensions. +# Bash should be able to automatically figure out the name of these new +# commands and their options. See below for how to define _hg_opt_foo +# and _hg_cmd_foo functions to fine-tune the completion for option and +# non-option arguments, respectively. +# +# +# Notes about completion for specific commands: +# +# - the completion function for the email command from the patchbomb +# extension will try to call _hg_emails to get a list of e-mail +# addresses. It's up to the user to define this function. For +# example, put the addresses of the lists that you usually patchbomb +# in ~/.patchbomb-to and the addresses that you usually use to send +# the patchbombs in ~/.patchbomb-from and use something like this: +# +# _hg_emails() +# { +# if [ -r ~/.patchbomb-$1 ]; then +# cat ~/.patchbomb-$1 +# fi +# } +# +# +# Writing completion functions for additional commands: +# +# If it exists, the function _hg_cmd_foo will be called without +# arguments to generate the completion candidates for the hg command +# "foo". If the command receives some arguments that aren't options +# even though they start with a "-", you can define a function called +# _hg_opt_foo to generate the completion candidates. If _hg_opt_foo +# doesn't return 0, regular completion for options is attempted. +# +# In addition to the regular completion variables provided by bash, +# the following variables are also set: +# - $hg - the hg program being used (e.g. /usr/bin/hg) +# - $cmd - the name of the hg command being completed +# - $cmd_index - the index of $cmd in $COMP_WORDS +# - $cur - the current argument being completed +# - $prev - the argument before $cur +# - $global_args - "|"-separated list of global options that accept +# an argument (e.g. '--cwd|-R|--repository') +# - $canonical - 1 if we canonicalized $cmd before calling the function +# 0 otherwise +# + +shopt -s extglob + +_hg_commands() +{ + local commands + commands="$("$hg" debugcomplete "$cur" 2>/dev/null)" || commands="" + COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '$commands' -- "$cur")) +} + +_hg_paths() +{ + local paths="$("$hg" paths 2>/dev/null | sed -e 's/ = .*$//')" + COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '$paths' -- "$cur")) +} + +_hg_repos() +{ + local i + for i in $(compgen -d -- "$cur"); do + test ! -d "$i"/.hg || COMPREPLY=(${COMPREPLY[@]:-} "$i") + done +} + +_hg_status() +{ + local files="$("$hg" status -n$1 . 2>/dev/null)" + local IFS=$'\n' + COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '$files' -- "$cur")) +} + +_hg_tags() +{ + local tags="$("$hg" tags -q 2>/dev/null)" + local IFS=$'\n' + COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '$tags' -- "$cur")) +} + +_hg_branches() +{ + local branches="$("$hg" branches -q 2>/dev/null)" + local IFS=$'\n' + COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '$branches' -- "$cur")) +} + +# this is "kind of" ugly... +_hg_count_non_option() +{ + local i count=0 + local filters="$1" + + for ((i=1; $i<=$COMP_CWORD; i++)); do + if [[ "${COMP_WORDS[i]}" != -* ]]; then + if [[ ${COMP_WORDS[i-1]} == @($filters|$global_args) ]]; then + continue + fi + count=$(($count + 1)) + fi + done + + echo $(($count - 1)) +} + +_hg() +{ + local cur prev cmd cmd_index opts i + # global options that receive an argument + local global_args='--cwd|-R|--repository' + local hg="$1" + local canonical=0 + + COMPREPLY=() + cur="$2" + prev="$3" + + # searching for the command + # (first non-option argument that doesn't follow a global option that + # receives an argument) + for ((i=1; $i<=$COMP_CWORD; i++)); do + if [[ ${COMP_WORDS[i]} != -* ]]; then + if [[ ${COMP_WORDS[i-1]} != @($global_args) ]]; then + cmd="${COMP_WORDS[i]}" + cmd_index=$i + break + fi + fi + done + + if [[ "$cur" == -* ]]; then + if [ "$(type -t "_hg_opt_$cmd")" = function ] && "_hg_opt_$cmd"; then + return + fi + + opts=$("$hg" debugcomplete --options "$cmd" 2>/dev/null) + + COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '$opts' -- "$cur")) + return + fi + + # global options + case "$prev" in + -R|--repository) + _hg_paths + _hg_repos + return + ;; + --cwd) + # Stick with default bash completion + return + ;; + esac + + if [ -z "$cmd" ] || [ $COMP_CWORD -eq $i ]; then + _hg_commands + return + fi + + # try to generate completion candidates for whatever command the user typed + local help + if _hg_command_specific; then + return + fi + + # canonicalize the command name and try again + help=$("$hg" help "$cmd" 2>/dev/null) + if [ $? -ne 0 ]; then + # Probably either the command doesn't exist or it's ambiguous + return + fi + cmd=${help#hg } + cmd=${cmd%%[$' \n']*} + canonical=1 + _hg_command_specific +} + +_hg_command_specific() +{ + if [ "$(type -t "_hg_cmd_$cmd")" = function ]; then + "_hg_cmd_$cmd" + return 0 + fi + + if [ "$cmd" != status ] && [ "$prev" = -r ] || [ "$prev" == --rev ]; then + if [ $canonical = 1 ]; then + _hg_tags + _hg_branches + return 0 + elif [[ status != "$cmd"* ]]; then + _hg_tags + _hg_branches + return 0 + else + return 1 + fi + fi + + case "$cmd" in + help) + _hg_commands + ;; + export) + if _hg_ext_mq_patchlist qapplied && [ "${COMPREPLY[*]}" ]; then + return 0 + fi + _hg_tags + _hg_branches + ;; + manifest|update) + _hg_tags + _hg_branches + ;; + pull|push|outgoing|incoming) + _hg_paths + _hg_repos + ;; + paths) + _hg_paths + ;; + add) + _hg_status "u" + ;; + merge) + _hg_tags + _hg_branches + ;; + commit) + _hg_status "mar" + ;; + remove) + _hg_status "d" + ;; + forget) + _hg_status "a" + ;; + diff) + _hg_status "mar" + ;; + revert) + _hg_status "mard" + ;; + clone) + local count=$(_hg_count_non_option) + if [ $count = 1 ]; then + _hg_paths + fi + _hg_repos + ;; + debugindex|debugindexdot) + COMPREPLY=(${COMPREPLY[@]:-} $(compgen -f -X "!*.i" -- "$cur")) + ;; + debugdata) + COMPREPLY=(${COMPREPLY[@]:-} $(compgen -f -X "!*.d" -- "$cur")) + ;; + *) + return 1 + ;; + esac + + return 0 +} + +complete -o bashdefault -o default -F _hg hg 2>/dev/null \ + || complete -o default -F _hg hg + + +# Completion for commands provided by extensions + +# bookmarks +_hg_bookmarks() +{ + local bookmarks="$("$hg" bookmarks --quiet 2>/dev/null )" + local IFS=$'\n' + COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '$bookmarks' -- "$cur")) +} + +_hg_cmd_bookmarks() +{ + if [[ "$prev" = @(-d|--delete|-m|--rename) ]]; then + _hg_bookmarks + return + fi +} + +# mq +_hg_ext_mq_patchlist() +{ + local patches + patches=$("$hg" $1 2>/dev/null) + if [ $? -eq 0 ] && [ "$patches" ]; then + COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '$patches' -- "$cur")) + return 0 + fi + return 1 +} + +_hg_ext_mq_queues() +{ + local root=$("$hg" root 2>/dev/null) + local n + for n in $(cd "$root"/.hg && compgen -d -- "$cur"); do + # I think we're usually not interested in the regular "patches" queue + # so just filter it. + if [ "$n" != patches ] && [ -e "$root/.hg/$n/series" ]; then + COMPREPLY=(${COMPREPLY[@]:-} "$n") + fi + done +} + +_hg_cmd_qpop() +{ + if [[ "$prev" = @(-n|--name) ]]; then + _hg_ext_mq_queues + return + fi + _hg_ext_mq_patchlist qapplied +} + +_hg_cmd_qpush() +{ + if [[ "$prev" = @(-n|--name) ]]; then + _hg_ext_mq_queues + return + fi + _hg_ext_mq_patchlist qunapplied +} + +_hg_cmd_qgoto() +{ + if [[ "$prev" = @(-n|--name) ]]; then + _hg_ext_mq_queues + return + fi + _hg_ext_mq_patchlist qseries +} + +_hg_cmd_qdelete() +{ + local qcmd=qunapplied + if [[ "$prev" = @(-r|--rev) ]]; then + qcmd=qapplied + fi + _hg_ext_mq_patchlist $qcmd +} + +_hg_cmd_qfinish() +{ + if [[ "$prev" = @(-a|--applied) ]]; then + return + fi + _hg_ext_mq_patchlist qapplied +} + +_hg_cmd_qsave() +{ + if [[ "$prev" = @(-n|--name) ]]; then + _hg_ext_mq_queues + return + fi +} + +_hg_cmd_strip() +{ + _hg_tags + _hg_branches +} + +_hg_cmd_qcommit() +{ + local root=$("$hg" root 2>/dev/null) + # this is run in a sub-shell, so we can't use _hg_status + local files=$(cd "$root/.hg/patches" 2>/dev/null && + "$hg" status -nmar 2>/dev/null) + COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '$files' -- "$cur")) +} + +_hg_cmd_qfold() +{ + _hg_ext_mq_patchlist qunapplied +} + +_hg_cmd_qrename() +{ + _hg_ext_mq_patchlist qseries +} + +_hg_cmd_qheader() +{ + _hg_ext_mq_patchlist qseries +} + +_hg_cmd_qclone() +{ + local count=$(_hg_count_non_option) + if [ $count = 1 ]; then + _hg_paths + fi + _hg_repos +} + +_hg_ext_mq_guards() +{ + "$hg" qselect --series 2>/dev/null | sed -e 's/^.//' +} + +_hg_cmd_qselect() +{ + local guards=$(_hg_ext_mq_guards) + COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '$guards' -- "$cur")) +} + +_hg_cmd_qguard() +{ + local prefix='' + + if [[ "$cur" == +* ]]; then + prefix=+ + elif [[ "$cur" == -* ]]; then + prefix=- + fi + local ncur=${cur#[-+]} + + if ! [ "$prefix" ]; then + _hg_ext_mq_patchlist qseries + return + fi + + local guards=$(_hg_ext_mq_guards) + COMPREPLY=(${COMPREPLY[@]:-} $(compgen -P $prefix -W '$guards' -- "$ncur")) +} + +_hg_opt_qguard() +{ + local i + for ((i=cmd_index+1; i<=COMP_CWORD; i++)); do + if [[ ${COMP_WORDS[i]} != -* ]]; then + if [[ ${COMP_WORDS[i-1]} != @($global_args) ]]; then + _hg_cmd_qguard + return 0 + fi + elif [ "${COMP_WORDS[i]}" = -- ]; then + _hg_cmd_qguard + return 0 + fi + done + return 1 +} + + +# hbisect +_hg_cmd_bisect() +{ + local i subcmd + + # find the sub-command + for ((i=cmd_index+1; i<=COMP_CWORD; i++)); do + if [[ ${COMP_WORDS[i]} != -* ]]; then + if [[ ${COMP_WORDS[i-1]} != @($global_args) ]]; then + subcmd="${COMP_WORDS[i]}" + break + fi + fi + done + + if [ -z "$subcmd" ] || [ $COMP_CWORD -eq $i ] || [ "$subcmd" = help ]; then + COMPREPLY=(${COMPREPLY[@]:-} + $(compgen -W 'bad good help init next reset' -- "$cur")) + return + fi + + case "$subcmd" in + good|bad) + _hg_tags + _hg_branches + ;; + esac + + return +} + + +# patchbomb +_hg_cmd_email() +{ + case "$prev" in + -c|--cc|-t|--to|-f|--from|--bcc) + # we need an e-mail address. let the user provide a function + # to get them + if [ "$(type -t _hg_emails)" = function ]; then + local arg=to + if [[ "$prev" == @(-f|--from) ]]; then + arg=from + fi + local addresses=$(_hg_emails $arg) + COMPREPLY=(${COMPREPLY[@]:-} + $(compgen -W '$addresses' -- "$cur")) + fi + return + ;; + -m|--mbox) + # fallback to standard filename completion + return + ;; + -s|--subject) + # free form string + return + ;; + esac + + _hg_tags + _hg_branches + return +} + + +# gpg +_hg_cmd_sign() +{ + _hg_tags + _hg_branches +} + + +# transplant +_hg_cmd_transplant() +{ + case "$prev" in + -s|--source) + _hg_paths + _hg_repos + return + ;; + --filter) + # standard filename completion + return + ;; + esac + + # all other transplant options values and command parameters are revisions + _hg_tags + _hg_branches + return +} + +# shelve +_hg_shelves() +{ + local shelves="$("$hg" unshelve -l . 2>/dev/null)" + local IFS=$'\n' + COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '$shelves' -- "$cur")) +} + +_hg_cmd_shelve() +{ + _hg_status "mard" +} + +_hg_cmd_unshelve() +{ + _hg_shelves +}
--- a/contrib/bash_completion Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,573 +0,0 @@ -# bash completion for the Mercurial distributed SCM - -# Docs: -# -# If you source this file from your .bashrc, bash should be able to -# complete a command line that uses hg with all the available commands -# and options and sometimes even arguments. -# -# Mercurial allows you to define additional commands through extensions. -# Bash should be able to automatically figure out the name of these new -# commands and their options. See below for how to define _hg_opt_foo -# and _hg_cmd_foo functions to fine-tune the completion for option and -# non-option arguments, respectively. -# -# -# Notes about completion for specific commands: -# -# - the completion function for the email command from the patchbomb -# extension will try to call _hg_emails to get a list of e-mail -# addresses. It's up to the user to define this function. For -# example, put the addresses of the lists that you usually patchbomb -# in ~/.patchbomb-to and the addresses that you usually use to send -# the patchbombs in ~/.patchbomb-from and use something like this: -# -# _hg_emails() -# { -# if [ -r ~/.patchbomb-$1 ]; then -# cat ~/.patchbomb-$1 -# fi -# } -# -# -# Writing completion functions for additional commands: -# -# If it exists, the function _hg_cmd_foo will be called without -# arguments to generate the completion candidates for the hg command -# "foo". If the command receives some arguments that aren't options -# even though they start with a "-", you can define a function called -# _hg_opt_foo to generate the completion candidates. If _hg_opt_foo -# doesn't return 0, regular completion for options is attempted. -# -# In addition to the regular completion variables provided by bash, -# the following variables are also set: -# - $hg - the hg program being used (e.g. /usr/bin/hg) -# - $cmd - the name of the hg command being completed -# - $cmd_index - the index of $cmd in $COMP_WORDS -# - $cur - the current argument being completed -# - $prev - the argument before $cur -# - $global_args - "|"-separated list of global options that accept -# an argument (e.g. '--cwd|-R|--repository') -# - $canonical - 1 if we canonicalized $cmd before calling the function -# 0 otherwise -# - -shopt -s extglob - -_hg_commands() -{ - local commands - commands="$("$hg" debugcomplete "$cur" 2>/dev/null)" || commands="" - COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '$commands' -- "$cur")) -} - -_hg_paths() -{ - local paths="$("$hg" paths 2>/dev/null | sed -e 's/ = .*$//')" - COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '$paths' -- "$cur")) -} - -_hg_repos() -{ - local i - for i in $(compgen -d -- "$cur"); do - test ! -d "$i"/.hg || COMPREPLY=(${COMPREPLY[@]:-} "$i") - done -} - -_hg_status() -{ - local files="$("$hg" status -n$1 . 2>/dev/null)" - local IFS=$'\n' - COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '$files' -- "$cur")) -} - -_hg_tags() -{ - local tags="$("$hg" tags -q 2>/dev/null)" - local IFS=$'\n' - COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '$tags' -- "$cur")) -} - -_hg_branches() -{ - local branches="$("$hg" branches -q 2>/dev/null)" - local IFS=$'\n' - COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '$branches' -- "$cur")) -} - -# this is "kind of" ugly... -_hg_count_non_option() -{ - local i count=0 - local filters="$1" - - for ((i=1; $i<=$COMP_CWORD; i++)); do - if [[ "${COMP_WORDS[i]}" != -* ]]; then - if [[ ${COMP_WORDS[i-1]} == @($filters|$global_args) ]]; then - continue - fi - count=$(($count + 1)) - fi - done - - echo $(($count - 1)) -} - -_hg() -{ - local cur prev cmd cmd_index opts i - # global options that receive an argument - local global_args='--cwd|-R|--repository' - local hg="$1" - local canonical=0 - - COMPREPLY=() - cur="$2" - prev="$3" - - # searching for the command - # (first non-option argument that doesn't follow a global option that - # receives an argument) - for ((i=1; $i<=$COMP_CWORD; i++)); do - if [[ ${COMP_WORDS[i]} != -* ]]; then - if [[ ${COMP_WORDS[i-1]} != @($global_args) ]]; then - cmd="${COMP_WORDS[i]}" - cmd_index=$i - break - fi - fi - done - - if [[ "$cur" == -* ]]; then - if [ "$(type -t "_hg_opt_$cmd")" = function ] && "_hg_opt_$cmd"; then - return - fi - - opts=$("$hg" debugcomplete --options "$cmd" 2>/dev/null) - - COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '$opts' -- "$cur")) - return - fi - - # global options - case "$prev" in - -R|--repository) - _hg_paths - _hg_repos - return - ;; - --cwd) - # Stick with default bash completion - return - ;; - esac - - if [ -z "$cmd" ] || [ $COMP_CWORD -eq $i ]; then - _hg_commands - return - fi - - # try to generate completion candidates for whatever command the user typed - local help - if _hg_command_specific; then - return - fi - - # canonicalize the command name and try again - help=$("$hg" help "$cmd" 2>/dev/null) - if [ $? -ne 0 ]; then - # Probably either the command doesn't exist or it's ambiguous - return - fi - cmd=${help#hg } - cmd=${cmd%%[$' \n']*} - canonical=1 - _hg_command_specific -} - -_hg_command_specific() -{ - if [ "$(type -t "_hg_cmd_$cmd")" = function ]; then - "_hg_cmd_$cmd" - return 0 - fi - - if [ "$cmd" != status ] && [ "$prev" = -r ] || [ "$prev" == --rev ]; then - if [ $canonical = 1 ]; then - _hg_tags - _hg_branches - return 0 - elif [[ status != "$cmd"* ]]; then - _hg_tags - _hg_branches - return 0 - else - return 1 - fi - fi - - case "$cmd" in - help) - _hg_commands - ;; - export) - if _hg_ext_mq_patchlist qapplied && [ "${COMPREPLY[*]}" ]; then - return 0 - fi - _hg_tags - _hg_branches - ;; - manifest|update) - _hg_tags - _hg_branches - ;; - pull|push|outgoing|incoming) - _hg_paths - _hg_repos - ;; - paths) - _hg_paths - ;; - add) - _hg_status "u" - ;; - merge) - _hg_tags - _hg_branches - ;; - commit) - _hg_status "mar" - ;; - remove) - _hg_status "d" - ;; - forget) - _hg_status "a" - ;; - diff) - _hg_status "mar" - ;; - revert) - _hg_status "mard" - ;; - clone) - local count=$(_hg_count_non_option) - if [ $count = 1 ]; then - _hg_paths - fi - _hg_repos - ;; - debugindex|debugindexdot) - COMPREPLY=(${COMPREPLY[@]:-} $(compgen -f -X "!*.i" -- "$cur")) - ;; - debugdata) - COMPREPLY=(${COMPREPLY[@]:-} $(compgen -f -X "!*.d" -- "$cur")) - ;; - *) - return 1 - ;; - esac - - return 0 -} - -complete -o bashdefault -o default -F _hg hg 2>/dev/null \ - || complete -o default -F _hg hg - - -# Completion for commands provided by extensions - -# bookmarks -_hg_bookmarks() -{ - local bookmarks="$("$hg" bookmarks --quiet 2>/dev/null )" - local IFS=$'\n' - COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '$bookmarks' -- "$cur")) -} - -_hg_cmd_bookmarks() -{ - if [[ "$prev" = @(-d|--delete|-m|--rename) ]]; then - _hg_bookmarks - return - fi -} - -# mq -_hg_ext_mq_patchlist() -{ - local patches - patches=$("$hg" $1 2>/dev/null) - if [ $? -eq 0 ] && [ "$patches" ]; then - COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '$patches' -- "$cur")) - return 0 - fi - return 1 -} - -_hg_ext_mq_queues() -{ - local root=$("$hg" root 2>/dev/null) - local n - for n in $(cd "$root"/.hg && compgen -d -- "$cur"); do - # I think we're usually not interested in the regular "patches" queue - # so just filter it. - if [ "$n" != patches ] && [ -e "$root/.hg/$n/series" ]; then - COMPREPLY=(${COMPREPLY[@]:-} "$n") - fi - done -} - -_hg_cmd_qpop() -{ - if [[ "$prev" = @(-n|--name) ]]; then - _hg_ext_mq_queues - return - fi - _hg_ext_mq_patchlist qapplied -} - -_hg_cmd_qpush() -{ - if [[ "$prev" = @(-n|--name) ]]; then - _hg_ext_mq_queues - return - fi - _hg_ext_mq_patchlist qunapplied -} - -_hg_cmd_qgoto() -{ - if [[ "$prev" = @(-n|--name) ]]; then - _hg_ext_mq_queues - return - fi - _hg_ext_mq_patchlist qseries -} - -_hg_cmd_qdelete() -{ - local qcmd=qunapplied - if [[ "$prev" = @(-r|--rev) ]]; then - qcmd=qapplied - fi - _hg_ext_mq_patchlist $qcmd -} - -_hg_cmd_qfinish() -{ - if [[ "$prev" = @(-a|--applied) ]]; then - return - fi - _hg_ext_mq_patchlist qapplied -} - -_hg_cmd_qsave() -{ - if [[ "$prev" = @(-n|--name) ]]; then - _hg_ext_mq_queues - return - fi -} - -_hg_cmd_strip() -{ - _hg_tags - _hg_branches -} - -_hg_cmd_qcommit() -{ - local root=$("$hg" root 2>/dev/null) - # this is run in a sub-shell, so we can't use _hg_status - local files=$(cd "$root/.hg/patches" 2>/dev/null && - "$hg" status -nmar 2>/dev/null) - COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '$files' -- "$cur")) -} - -_hg_cmd_qfold() -{ - _hg_ext_mq_patchlist qunapplied -} - -_hg_cmd_qrename() -{ - _hg_ext_mq_patchlist qseries -} - -_hg_cmd_qheader() -{ - _hg_ext_mq_patchlist qseries -} - -_hg_cmd_qclone() -{ - local count=$(_hg_count_non_option) - if [ $count = 1 ]; then - _hg_paths - fi - _hg_repos -} - -_hg_ext_mq_guards() -{ - "$hg" qselect --series 2>/dev/null | sed -e 's/^.//' -} - -_hg_cmd_qselect() -{ - local guards=$(_hg_ext_mq_guards) - COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '$guards' -- "$cur")) -} - -_hg_cmd_qguard() -{ - local prefix='' - - if [[ "$cur" == +* ]]; then - prefix=+ - elif [[ "$cur" == -* ]]; then - prefix=- - fi - local ncur=${cur#[-+]} - - if ! [ "$prefix" ]; then - _hg_ext_mq_patchlist qseries - return - fi - - local guards=$(_hg_ext_mq_guards) - COMPREPLY=(${COMPREPLY[@]:-} $(compgen -P $prefix -W '$guards' -- "$ncur")) -} - -_hg_opt_qguard() -{ - local i - for ((i=cmd_index+1; i<=COMP_CWORD; i++)); do - if [[ ${COMP_WORDS[i]} != -* ]]; then - if [[ ${COMP_WORDS[i-1]} != @($global_args) ]]; then - _hg_cmd_qguard - return 0 - fi - elif [ "${COMP_WORDS[i]}" = -- ]; then - _hg_cmd_qguard - return 0 - fi - done - return 1 -} - - -# hbisect -_hg_cmd_bisect() -{ - local i subcmd - - # find the sub-command - for ((i=cmd_index+1; i<=COMP_CWORD; i++)); do - if [[ ${COMP_WORDS[i]} != -* ]]; then - if [[ ${COMP_WORDS[i-1]} != @($global_args) ]]; then - subcmd="${COMP_WORDS[i]}" - break - fi - fi - done - - if [ -z "$subcmd" ] || [ $COMP_CWORD -eq $i ] || [ "$subcmd" = help ]; then - COMPREPLY=(${COMPREPLY[@]:-} - $(compgen -W 'bad good help init next reset' -- "$cur")) - return - fi - - case "$subcmd" in - good|bad) - _hg_tags - _hg_branches - ;; - esac - - return -} - - -# patchbomb -_hg_cmd_email() -{ - case "$prev" in - -c|--cc|-t|--to|-f|--from|--bcc) - # we need an e-mail address. let the user provide a function - # to get them - if [ "$(type -t _hg_emails)" = function ]; then - local arg=to - if [[ "$prev" == @(-f|--from) ]]; then - arg=from - fi - local addresses=$(_hg_emails $arg) - COMPREPLY=(${COMPREPLY[@]:-} - $(compgen -W '$addresses' -- "$cur")) - fi - return - ;; - -m|--mbox) - # fallback to standard filename completion - return - ;; - -s|--subject) - # free form string - return - ;; - esac - - _hg_tags - _hg_branches - return -} - - -# gpg -_hg_cmd_sign() -{ - _hg_tags - _hg_branches -} - - -# transplant -_hg_cmd_transplant() -{ - case "$prev" in - -s|--source) - _hg_paths - _hg_repos - return - ;; - --filter) - # standard filename completion - return - ;; - esac - - # all other transplant options values and command parameters are revisions - _hg_tags - _hg_branches - return -} - -# shelve -_hg_shelves() -{ - local shelves="$("$hg" unshelve -l . 2>/dev/null)" - local IFS=$'\n' - COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '$shelves' -- "$cur")) -} - -_hg_cmd_shelve() -{ - _hg_status "mard" -} - -_hg_cmd_unshelve() -{ - _hg_shelves -}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/contrib/memory.py Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,36 @@ +# memory.py - track memory usage +# +# Copyright 2009 Matt Mackall <mpm@selenic.com> and others +# +# This software may be used and distributed according to the terms of the +# GNU General Public License version 2, incorporated herein by reference. + +'''helper extension to measure memory usage + +Reads current and peak memory usage from ``/proc/self/status`` and +prints it to ``stderr`` on exit. +''' + +import atexit + +def memusage(ui): + """Report memory usage of the current process.""" + status = None + result = {'peak': 0, 'rss': 0} + try: + # This will only work on systems with a /proc file system + # (like Linux). + status = open('/proc/self/status', 'r') + for line in status: + parts = line.split() + key = parts[0][2:-1].lower() + if key in result: + result[key] = int(parts[1]) + finally: + if status is not None: + status.close() + ui.write_err(", ".join(["%s: %.1f MiB" % (key, value/1024.0) + for key, value in result.iteritems()]) + "\n") + +def extsetup(ui): + atexit.register(memusage, ui)
--- a/contrib/perf.py Tue Dec 08 23:23:59 2009 +0100 +++ b/contrib/perf.py Tue Dec 08 23:36:06 2009 +0100 @@ -103,9 +103,10 @@ def perflookup(ui, repo, rev): timer(lambda: len(repo.lookup(rev))) -def perflog(ui, repo): +def perflog(ui, repo, **opts): ui.pushbuffer() - timer(lambda: commands.log(ui, repo, rev=[], date='', user='')) + timer(lambda: commands.log(ui, repo, rev=[], date='', user='', + copies=opts.get('rename'))) ui.popbuffer() def perftemplating(ui, repo): @@ -144,7 +145,8 @@ 'perftags': (perftags, []), 'perfdirstate': (perfdirstate, []), 'perfdirstatedirs': (perfdirstate, []), - 'perflog': (perflog, []), + 'perflog': (perflog, + [('', 'rename', False, 'ask log to follow renames')]), 'perftemplating': (perftemplating, []), 'perfdiffwd': (perfdiffwd, []), }
--- a/contrib/shrink-revlog.py Tue Dec 08 23:23:59 2009 +0100 +++ b/contrib/shrink-revlog.py Tue Dec 08 23:36:06 2009 +0100 @@ -20,6 +20,7 @@ import sys, os, tempfile import optparse from mercurial import ui as ui_, hg, revlog, transaction, node, util +from mercurial import changegroup def toposort(rl): write = sys.stdout.write @@ -73,18 +74,23 @@ def writerevs(r1, r2, order, tr): write = sys.stdout.write write('writing %d revs ' % len(order)) + + count = [0] + def progress(*args): + if count[0] % 1000 == 0: + write('.') + count[0] += 1 + + order = [r1.node(r) for r in order] + + # this is a bit ugly, but it works + lookup = lambda x: "%020d" % r1.linkrev(r1.rev(x)) + unlookup = lambda x: int(x, 10) + try: - count = 0 - for rev in order: - n = r1.node(rev) - p1, p2 = r1.parents(n) - l = r1.linkrev(rev) - t = r1.revision(n) - n2 = r2.addrevision(t, tr, l, p1, p2) - - if count % 1000 == 0: - write('.') - count += 1 + group = util.chunkbuffer(r1.group(order, lookup, progress)) + chunkiter = changegroup.chunkiter(group) + r2.addgroup(chunkiter, unlookup, tr) finally: write('\n')
--- a/contrib/win32/mercurial.iss Tue Dec 08 23:23:59 2009 +0100 +++ b/contrib/win32/mercurial.iss Tue Dec 08 23:36:06 2009 +0100 @@ -45,7 +45,8 @@ [Files] Source: contrib\mercurial.el; DestDir: {app}/Contrib Source: contrib\vim\*.*; DestDir: {app}/Contrib/Vim -Source: contrib\zsh_completion; DestDir: {app}/Contrib +Source: contrib\zsh\*.*; DestDir: {app}\Contrib\zsh +Source: contrib\bash\*.*; DestDir: {app}\Contrib\bash Source: contrib\hgk; DestDir: {app}/Contrib; DestName: hgk.tcl Source: contrib\win32\ReadMe.html; DestDir: {app}; Flags: isreadme Source: contrib\mergetools.hgrc; DestDir: {tmp}; @@ -62,9 +63,9 @@ Source: dist\add_path.exe; DestDir: {app} Source: doc\*.html; DestDir: {app}\Docs Source: doc\style.css; DestDir: {app}\Docs -Source: help\*.txt; DestDir: {app}\help +Source: mercurial\help\*.txt; DestDir: {app}\help Source: locale\*.*; DestDir: {app}\locale; Flags: recursesubdirs createallsubdirs -Source: templates\*.*; DestDir: {app}\Templates; Flags: recursesubdirs createallsubdirs +Source: mercurial\templates\*.*; DestDir: {app}\Templates; Flags: recursesubdirs createallsubdirs Source: CONTRIBUTORS; DestDir: {app}; DestName: Contributors.txt Source: COPYING; DestDir: {app}; DestName: Copying.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/contrib/zsh/_hg Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,951 @@ +#compdef hg + +# Zsh completion script for mercurial. Rename this file to _hg and copy +# it into your zsh function path (/usr/share/zsh/site-functions for +# instance) +# +# If you do not want to install it globally, you can copy it somewhere +# else and add that directory to $fpath. This must be done before +# compinit is called. If the file is copied to ~/.zsh.d, your ~/.zshrc +# file could look like this: +# +# fpath=("$HOME/.zsh.d" $fpath) +# autoload -U compinit +# compinit +# +# Copyright (C) 2005, 2006 Steve Borho <steve@borho.org> +# Copyright (C) 2006-9 Brendan Cully <brendan@kublai.com> +# +# Permission is hereby granted, without written agreement and without +# licence or royalty fees, to use, copy, modify, and distribute this +# software and to distribute modified versions of this software for any +# purpose, provided that the above copyright notice and the following +# two paragraphs appear in all copies of this software. +# +# In no event shall the authors be liable to any party for direct, +# indirect, special, incidental, or consequential damages arising out of +# the use of this software and its documentation, even if the authors +# have been advised of the possibility of such damage. +# +# The authors specifically disclaim any warranties, including, but not +# limited to, the implied warranties of merchantability and fitness for +# a particular purpose. The software provided hereunder is on an "as +# is" basis, and the authors have no obligation to provide maintenance, +# support, updates, enhancements, or modifications. + +emulate -LR zsh +setopt extendedglob + +local curcontext="$curcontext" state line +typeset -A _hg_cmd_globals + +_hg() { + local cmd _hg_root + integer i=2 + _hg_cmd_globals=() + + while (( i < $#words )) + do + case "$words[$i]" in + -R|--repository) + eval _hg_root="$words[$i+1]" + _hg_cmd_globals+=("$words[$i]" "$_hg_root") + (( i += 2 )) + continue + ;; + -R*) + _hg_cmd_globals+="$words[$i]" + eval _hg_root="${words[$i]#-R}" + (( i++ )) + continue + ;; + --cwd|--config) + # pass along arguments to hg completer + _hg_cmd_globals+=("$words[$i]" "$words[$i+1]") + (( i += 2 )) + continue + ;; + -*) + # skip option + (( i++ )) + continue + ;; + esac + if [[ -z "$cmd" ]] + then + cmd="$words[$i]" + words[$i]=() + (( CURRENT-- )) + fi + (( i++ )) + done + + if [[ -z "$cmd" ]] + then + _arguments -s -w : $_hg_global_opts \ + ':mercurial command:_hg_commands' + return + fi + + # resolve abbreviations and aliases + if ! (( $+functions[_hg_cmd_${cmd}] )) + then + local cmdexp + (( $#_hg_cmd_list )) || _hg_get_commands + + cmdexp=$_hg_cmd_list[(r)${cmd}*] + if [[ $cmdexp == $_hg_cmd_list[(R)${cmd}*] ]] + then + # might be nice to rewrite the command line with the expansion + cmd="$cmdexp" + fi + if [[ -n $_hg_alias_list[$cmd] ]] + then + cmd=$_hg_alias_list[$cmd] + fi + fi + + curcontext="${curcontext%:*:*}:hg-${cmd}:" + + zstyle -s ":completion:$curcontext:" cache-policy update_policy + + if [[ -z "$update_policy" ]] + then + zstyle ":completion:$curcontext:" cache-policy _hg_cache_policy + fi + + if (( $+functions[_hg_cmd_${cmd}] )) + then + _hg_cmd_${cmd} + else + # complete unknown commands normally + _arguments -s -w : $_hg_global_opts \ + '*:files:_hg_files' + fi +} + +_hg_cache_policy() { + typeset -a old + + # cache for a minute + old=( "$1"(mm+10) ) + (( $#old )) && return 0 + + return 1 +} + +_hg_get_commands() { + typeset -ga _hg_cmd_list + typeset -gA _hg_alias_list + local hline cmd cmdalias + + _call_program hg hg debugcomplete -v | while read -A hline + do + cmd=$hline[1] + _hg_cmd_list+=($cmd) + + for cmdalias in $hline[2,-1] + do + _hg_cmd_list+=($cmdalias) + _hg_alias_list+=($cmdalias $cmd) + done + done +} + +_hg_commands() { + (( $#_hg_cmd_list )) || _hg_get_commands + _describe -t commands 'mercurial command' _hg_cmd_list +} + +_hg_revrange() { + compset -P 1 '*:' + _hg_tags "$@" +} + +_hg_tags() { + typeset -a tags + local tag rev + + _hg_cmd tags | while read tag + do + tags+=(${tag/ # [0-9]#:*}) + done + (( $#tags )) && _describe -t tags 'tags' tags +} + +# likely merge candidates +_hg_mergerevs() { + typeset -a heads + local myrev + + heads=(${(f)"$(_hg_cmd heads --template '{rev}\\n')"}) + # exclude own revision + myrev=$(_hg_cmd log -r . --template '{rev}\\n') + heads=(${heads:#$myrev}) + + (( $#heads )) && _describe -t heads 'heads' heads +} + +_hg_files() { + if [[ -n "$_hg_root" ]] + then + [[ -d "$_hg_root/.hg" ]] || return + case "$_hg_root" in + /*) + _files -W $_hg_root + ;; + *) + _files -W $PWD/$_hg_root + ;; + esac + else + _files + fi +} + +_hg_status() { + [[ -d $PREFIX ]] || PREFIX=$PREFIX:h + status_files=(${(ps:\0:)"$(_hg_cmd status -0n$1 ./$PREFIX)"}) +} + +_hg_unknown() { + typeset -a status_files + _hg_status u + _wanted files expl 'unknown files' _multi_parts / status_files +} + +_hg_missing() { + typeset -a status_files + _hg_status d + _wanted files expl 'missing files' _multi_parts / status_files +} + +_hg_modified() { + typeset -a status_files + _hg_status m + _wanted files expl 'modified files' _multi_parts / status_files +} + +_hg_resolve() { + local rstate rpath + + [[ -d $PREFIX ]] || PREFIX=$PREFIX:h + + _hg_cmd resolve -l ./$PREFIX | while read rstate rpath + do + [[ $rstate == 'R' ]] && resolved_files+=($rpath) + [[ $rstate == 'U' ]] && unresolved_files+=($rpath) + done +} + +_hg_resolved() { + typeset -a resolved_files unresolved_files + _hg_resolve + _wanted files expl 'resolved files' _multi_parts / resolved_files +} + +_hg_unresolved() { + typeset -a resolved_files unresolved_files + _hg_resolve + _wanted files expl 'unresolved files' _multi_parts / unresolved_files +} + +_hg_config() { + typeset -a items + items=(${${(%f)"$(_call_program hg hg showconfig)"}%%\=*}) + (( $#items )) && _describe -t config 'config item' items +} + +_hg_addremove() { + _alternative 'files:unknown files:_hg_unknown' \ + 'files:missing files:_hg_missing' +} + +_hg_ssh_urls() { + if [[ -prefix */ ]] + then + if zstyle -T ":completion:${curcontext}:files" remote-access + then + local host=${PREFIX%%/*} + typeset -a remdirs + compset -p $(( $#host + 1 )) + local rempath=${(M)PREFIX##*/} + local cacheid="hg:${host}-${rempath//\//_}" + cacheid=${cacheid%[-_]} + compset -P '*/' + if _cache_invalid "$cacheid" || ! _retrieve_cache "$cacheid" + then + remdirs=(${${(M)${(f)"$(_call_program files ssh -a -x $host ls -1FL "${(q)rempath}")"}##*/}%/}) + _store_cache "$cacheid" remdirs + fi + _describe -t directories 'remote directory' remdirs -S/ + else + _message 'remote directory' + fi + else + if compset -P '*@' + then + _hosts -S/ + else + _alternative 'hosts:remote host name:_hosts -S/' \ + 'users:user:_users -S@' + fi + fi +} + +_hg_urls() { + if compset -P bundle:// + then + _files + elif compset -P ssh:// + then + _hg_ssh_urls + elif [[ -prefix *: ]] + then + _urls + else + local expl + compset -S '[^:]*' + _wanted url-schemas expl 'URL schema' compadd -S '' - \ + http:// https:// ssh:// bundle:// + fi +} + +_hg_paths() { + typeset -a paths pnames + _hg_cmd paths | while read -A pnames + do + paths+=($pnames[1]) + done + (( $#paths )) && _describe -t path-aliases 'repository alias' paths +} + +_hg_remote() { + _alternative 'path-aliases:repository alias:_hg_paths' \ + 'directories:directory:_files -/' \ + 'urls:URL:_hg_urls' +} + +_hg_clone_dest() { + _alternative 'directories:directory:_files -/' \ + 'urls:URL:_hg_urls' +} + +# Common options +_hg_global_opts=( + '(--repository -R)'{-R+,--repository}'[repository root directory]:repository:_files -/' + '--cwd[change working directory]:new working directory:_files -/' + '(--noninteractive -y)'{-y,--noninteractive}'[do not prompt, assume yes for any required answers]' + '(--verbose -v)'{-v,--verbose}'[enable additional output]' + '*--config[set/override config option]:defined config items:_hg_config' + '(--quiet -q)'{-q,--quiet}'[suppress output]' + '(--help -h)'{-h,--help}'[display help and exit]' + '--debug[debug mode]' + '--debugger[start debugger]' + '--encoding[set the charset encoding (default: UTF8)]' + '--encodingmode[set the charset encoding mode (default: strict)]' + '--lsprof[print improved command execution profile]' + '--traceback[print traceback on exception]' + '--time[time how long the command takes]' + '--profile[profile]' + '--version[output version information and exit]' +) + +_hg_pat_opts=( + '*'{-I+,--include}'[include names matching the given patterns]:dir:_files -W $(_hg_cmd root) -/' + '*'{-X+,--exclude}'[exclude names matching the given patterns]:dir:_files -W $(_hg_cmd root) -/') + +_hg_diff_opts=( + '(--text -a)'{-a,--text}'[treat all files as text]' + '(--git -g)'{-g,--git}'[use git extended diff format]' + "--nodates[don't include dates in diff headers]") + +_hg_dryrun_opts=( + '(--dry-run -n)'{-n,--dry-run}'[do not perform actions, just print output]') + +_hg_style_opts=( + '--style[display using template map file]:' + '--template[display with template]:') + +_hg_commit_opts=( + '(-m --message -l --logfile --edit -e)'{-e,--edit}'[edit commit message]' + '(-e --edit -l --logfile --message -m)'{-m+,--message}'[use <text> as commit message]:message:' + '(-e --edit -m --message --logfile -l)'{-l+,--logfile}'[read the commit message from <file>]:log file:_files') + +_hg_remote_opts=( + '(--ssh -e)'{-e+,--ssh}'[specify ssh command to use]:' + '--remotecmd[specify hg command to run on the remote side]:') + +_hg_cmd() { + _call_program hg hg --config ui.verbose=0 --config defaults."$1"= \ + "$_hg_cmd_globals[@]" "$@" 2> /dev/null +} + +_hg_cmd_add() { + _arguments -s -w : $_hg_global_opts $_hg_pat_opts $_hg_dryrun_opts \ + '*:unknown files:_hg_unknown' +} + +_hg_cmd_addremove() { + _arguments -s -w : $_hg_global_opts $_hg_pat_opts $_hg_dryrun_opts \ + '(--similarity -s)'{-s+,--similarity}'[guess renamed files by similarity (0<=s<=100)]:' \ + '*:unknown or missing files:_hg_addremove' +} + +_hg_cmd_annotate() { + _arguments -s -w : $_hg_global_opts $_hg_pat_opts \ + '(--rev -r)'{-r+,--rev}'[annotate the specified revision]:revision:_hg_tags' \ + '(--follow -f)'{-f,--follow}'[follow file copies and renames]' \ + '(--text -a)'{-a,--text}'[treat all files as text]' \ + '(--user -u)'{-u,--user}'[list the author]' \ + '(--date -d)'{-d,--date}'[list the date]' \ + '(--number -n)'{-n,--number}'[list the revision number (default)]' \ + '(--changeset -c)'{-c,--changeset}'[list the changeset]' \ + '*:files:_hg_files' +} + +_hg_cmd_archive() { + _arguments -s -w : $_hg_global_opts $_hg_pat_opts \ + '--no-decode[do not pass files through decoders]' \ + '(--prefix -p)'{-p+,--prefix}'[directory prefix for files in archive]:' \ + '(--rev -r)'{-r+,--rev}'[revision to distribute]:revision:_hg_tags' \ + '(--type -t)'{-t+,--type}'[type of distribution to create]:archive type:(files tar tbz2 tgz uzip zip)' \ + '*:destination:_files' +} + +_hg_cmd_backout() { + _arguments -s -w : $_hg_global_opts $_hg_pat_opts \ + '--merge[merge with old dirstate parent after backout]' \ + '(--date -d)'{-d+,--date}'[record datecode as commit date]:date code:' \ + '--parent[parent to choose when backing out merge]' \ + '(--user -u)'{-u+,--user}'[record user as commiter]:user:' \ + '(--rev -r)'{-r+,--rev}'[revision]:revision:_hg_tags' \ + '(--message -m)'{-m+,--message}'[use <text> as commit message]:text:' \ + '(--logfile -l)'{-l+,--logfile}'[read commit message from <file>]:log file:_files -g \*.txt' +} + +_hg_cmd_bisect() { + _arguments -s -w : $_hg_global_opts \ + '(-)'{-r,--reset}'[reset bisect state]' \ + '(--good -g --bad -b --skip -s --reset -r)'{-g,--good}'[mark changeset good]'::revision:_hg_tags \ + '(--good -g --bad -b --skip -s --reset -r)'{-b,--bad}'[mark changeset bad]'::revision:_hg_tags \ + '(--good -g --bad -b --skip -s --reset -r)'{-s,--skip}'[skip testing changeset]' \ + '(--command -c --noupdate -U)'{-c+,--command}'[use command to check changeset state]':commands:_command_names \ + '(--command -c --noupdate -U)'{-U,--noupdate}'[do not update to target]' +} + +_hg_cmd_branch() { + _arguments -s -w : $_hg_global_opts \ + '(--force -f)'{-f,--force}'[set branch name even if it shadows an existing branch]' \ + '(--clean -C)'{-C,--clean}'[reset branch name to parent branch name]' +} + +_hg_cmd_branches() { + _arguments -s -w : $_hg_global_opts \ + '(--active -a)'{-a,--active}'[show only branches that have unmerge heads]' +} + +_hg_cmd_bundle() { + _arguments -s -w : $_hg_global_opts $_hg_remote_opts \ + '(--force -f)'{-f,--force}'[run even when remote repository is unrelated]' \ + '(2)*--base[a base changeset to specify instead of a destination]:revision:_hg_tags' \ + ':output file:_files' \ + ':destination repository:_files -/' +} + +_hg_cmd_cat() { + _arguments -s -w : $_hg_global_opts $_hg_pat_opts \ + '(--output -o)'{-o+,--output}'[print output to file with formatted name]:filespec:' \ + '(--rev -r)'{-r+,--rev}'[revision]:revision:_hg_tags' \ + '*:file:_hg_files' +} + +_hg_cmd_clone() { + _arguments -s -w : $_hg_global_opts $_hg_remote_opts \ + '(--noupdate -U)'{-U,--noupdate}'[do not update the new working directory]' \ + '(--rev -r)'{-r+,--rev}'[a changeset you would like to have after cloning]:' \ + '--uncompressed[use uncompressed transfer (fast over LAN)]' \ + ':source repository:_hg_remote' \ + ':destination:_hg_clone_dest' +} + +_hg_cmd_commit() { + _arguments -s -w : $_hg_global_opts $_hg_pat_opts \ + '(--addremove -A)'{-A,--addremove}'[mark new/missing files as added/removed before committing]' \ + '(--message -m)'{-m+,--message}'[use <text> as commit message]:text:' \ + '(--logfile -l)'{-l+,--logfile}'[read commit message from <file>]:log file:_files -g \*.txt' \ + '(--date -d)'{-d+,--date}'[record datecode as commit date]:date code:' \ + '(--user -u)'{-u+,--user}'[record user as commiter]:user:' \ + '*:file:_hg_files' +} + +_hg_cmd_copy() { + _arguments -s -w : $_hg_global_opts $_hg_pat_opts $_hg_dryrun_opts \ + '(--after -A)'{-A,--after}'[record a copy that has already occurred]' \ + '(--force -f)'{-f,--force}'[forcibly copy over an existing managed file]' \ + '*:file:_hg_files' +} + +_hg_cmd_diff() { + typeset -A opt_args + _arguments -s -w : $_hg_global_opts $_hg_pat_opts $_hg_diff_opts \ + '*'{-r,--rev}'+[revision]:revision:_hg_revrange' \ + '(--show-function -p)'{-p,--show-function}'[show which function each change is in]' \ + '(--ignore-all-space -w)'{-w,--ignore-all-space}'[ignore white space when comparing lines]' \ + '(--ignore-space-change -b)'{-b,--ignore-space-change}'[ignore changes in the amount of white space]' \ + '(--ignore-blank-lines -B)'{-B,--ignore-blank-lines}'[ignore changes whose lines are all blank]' \ + '*:file:->diff_files' + + if [[ $state == 'diff_files' ]] + then + if [[ -n $opt_args[-r] ]] + then + _hg_files + else + _hg_modified + fi + fi +} + +_hg_cmd_export() { + _arguments -s -w : $_hg_global_opts $_hg_diff_opts \ + '(--outout -o)'{-o+,--output}'[print output to file with formatted name]:filespec:' \ + '--switch-parent[diff against the second parent]' \ + '*:revision:_hg_tags' +} + +_hg_cmd_grep() { + _arguments -s -w : $_hg_global_opts $_hg_pat_opts \ + '(--print0 -0)'{-0,--print0}'[end filenames with NUL]' \ + '--all[print all revisions with matches]' \ + '(--follow -f)'{-f,--follow}'[follow changeset or file history]' \ + '(--ignore-case -i)'{-i,--ignore-case}'[ignore case when matching]' \ + '(--files-with-matches -l)'{-l,--files-with-matches}'[print only filenames and revs that match]' \ + '(--line-number -n)'{-n,--line-number}'[print matching line numbers]' \ + '*'{-r+,--rev}'[search in given revision range]:revision:_hg_revrange' \ + '(--user -u)'{-u,--user}'[print user who committed change]' \ + '1:search pattern:' \ + '*:files:_hg_files' +} + +_hg_cmd_heads() { + _arguments -s -w : $_hg_global_opts $_hg_style_opts \ + '(--rev -r)'{-r+,--rev}'[show only heads which are descendants of rev]:revision:_hg_tags' +} + +_hg_cmd_help() { + _arguments -s -w : $_hg_global_opts \ + '*:mercurial command:_hg_commands' +} + +_hg_cmd_identify() { + _arguments -s -w : $_hg_global_opts \ + '(--rev -r)'{-r+,--rev}'[identify the specified rev]:revision:_hg_tags' \ + '(--num -n)'{-n+,--num}'[show local revision number]' \ + '(--id -i)'{-i+,--id}'[show global revision id]' \ + '(--branch -b)'{-b+,--branch}'[show branch]' \ + '(--tags -t)'{-t+,--tags}'[show tags]' +} + +_hg_cmd_import() { + _arguments -s -w : $_hg_global_opts \ + '(--strip -p)'{-p+,--strip}'[directory strip option for patch (default: 1)]:count:' \ + '(--message -m)'{-m+,--message}'[use <text> as commit message]:text:' \ + '(--force -f)'{-f,--force}'[skip check for outstanding uncommitted changes]' \ + '*:patch:_files' +} + +_hg_cmd_incoming() { + _arguments -s -w : $_hg_global_opts $_hg_remote_opts $_hg_style_opts \ + '(--no-merges -M)'{-M,--no-merges}'[do not show merge revisions]' \ + '(--force -f)'{-f,--force}'[run even when the remote repository is unrelated]' \ + '(--patch -p)'{-p,--patch}'[show patch]' \ + '(--rev -r)'{-r+,--rev}'[a specific revision up to which you would like to pull]:revision:_hg_tags' \ + '(--newest-first -n)'{-n,--newest-first}'[show newest record first]' \ + '--bundle[file to store the bundles into]:bundle file:_files' \ + ':source:_hg_remote' +} + +_hg_cmd_init() { + _arguments -s -w : $_hg_global_opts $_hg_remote_opts \ + ':dir:_files -/' +} + +_hg_cmd_locate() { + _arguments -s -w : $_hg_global_opts $_hg_pat_opts \ + '(--rev -r)'{-r+,--rev}'[search repository as it stood at revision]:revision:_hg_tags' \ + '(--print0 -0)'{-0,--print0}'[end filenames with NUL, for use with xargs]' \ + '(--fullpath -f)'{-f,--fullpath}'[print complete paths]' \ + '*:search pattern:_hg_files' +} + +_hg_cmd_log() { + _arguments -s -w : $_hg_global_opts $_hg_pat_opts $_hg_style_opts \ + '(--follow --follow-first -f)'{-f,--follow}'[follow changeset or history]' \ + '(-f --follow)--follow-first[only follow the first parent of merge changesets]' \ + '(--copies -C)'{-C,--copies}'[show copied files]' \ + '(--keyword -k)'{-k+,--keyword}'[search for a keyword]:' \ + '(--limit -l)'{-l+,--limit}'[limit number of changes displayed]:' \ + '*'{-r,--rev}'[show the specified revision or range]:revision:_hg_revrange' \ + '(--no-merges -M)'{-M,--no-merges}'[do not show merges]' \ + '(--only-merges -m)'{-m,--only-merges}'[show only merges]' \ + '(--patch -p)'{-p,--patch}'[show patch]' \ + '(--prune -P)'{-P+,--prune}'[do not display revision or any of its ancestors]:revision:_hg_tags' \ + '*:files:_hg_files' +} + +_hg_cmd_manifest() { + _arguments -s -w : $_hg_global_opts \ + ':revision:_hg_tags' +} + +_hg_cmd_merge() { + _arguments -s -w : $_hg_global_opts \ + '(--force -f)'{-f,--force}'[force a merge with outstanding changes]' \ + '(--rev -r 1)'{-r,--rev}'[revision to merge]:revision:_hg_mergerevs' \ + '(--preview -P)'{-P,--preview}'[review revisions to merge (no merge is performed)]' \ + ':revision:_hg_mergerevs' +} + +_hg_cmd_outgoing() { + _arguments -s -w : $_hg_global_opts $_hg_remote_opts $_hg_style_opts \ + '(--no-merges -M)'{-M,--no-merges}'[do not show merge revisions]' \ + '(--force -f)'{-f,--force}'[run even when the remote repository is unrelated]' \ + '(--patch -p)'{-p,--patch}'[show patch]' \ + '(--rev -r)'{-r+,--rev}'[a specific revision you would like to push]' \ + '(--newest-first -n)'{-n,--newest-first}'[show newest record first]' \ + ':destination:_hg_remote' +} + +_hg_cmd_parents() { + _arguments -s -w : $_hg_global_opts $_hg_style_opts \ + '(--rev -r)'{-r+,--rev}'[show parents of the specified rev]:revision:_hg_tags' \ + ':last modified file:_hg_files' +} + +_hg_cmd_paths() { + _arguments -s -w : $_hg_global_opts \ + ':path:_hg_paths' +} + +_hg_cmd_pull() { + _arguments -s -w : $_hg_global_opts $_hg_remote_opts \ + '(--force -f)'{-f,--force}'[run even when the remote repository is unrelated]' \ + '(--update -u)'{-u,--update}'[update to new tip if changesets were pulled]' \ + '(--rev -r)'{-r+,--rev}'[a specific revision up to which you would like to pull]:revision:' \ + ':source:_hg_remote' +} + +_hg_cmd_push() { + _arguments -s -w : $_hg_global_opts $_hg_remote_opts \ + '(--force -f)'{-f,--force}'[force push]' \ + '(--rev -r)'{-r+,--rev}'[a specific revision you would like to push]:revision:_hg_tags' \ + ':destination:_hg_remote' +} + +_hg_cmd_remove() { + _arguments -s -w : $_hg_global_opts $_hg_pat_opts \ + '(--after -A)'{-A,--after}'[record remove that has already occurred]' \ + '(--force -f)'{-f,--force}'[remove file even if modified]' \ + '*:file:_hg_files' +} + +_hg_cmd_rename() { + _arguments -s -w : $_hg_global_opts $_hg_pat_opts $_hg_dryrun_opts \ + '(--after -A)'{-A,--after}'[record a rename that has already occurred]' \ + '(--force -f)'{-f,--force}'[forcibly copy over an existing managed file]' \ + '*:file:_hg_files' +} + +_hg_cmd_resolve() { + local context state line + typeset -A opt_args + + _arguments -s -w : $_hg_global_opts \ + '(--list -l --mark -m --unmark -u)'{-l,--list}'[list state of files needing merge]:*:merged files:->resolve_files' \ + '(--mark -m --list -l --unmark -u)'{-m,--mark}'[mark files as resolved]:*:unresolved files:_hg_unresolved' \ + '(--unmark -u --list -l --mark -m)'{-u,--unmark}'[unmark files as resolved]:*:resolved files:_hg_resolved' \ + '*:file:_hg_unresolved' + + if [[ $state == 'resolve_files' ]] + then + _alternative 'files:resolved files:_hg_resolved' \ + 'files:unresolved files:_hg_unresolved' + fi +} + +_hg_cmd_revert() { + local context state line + typeset -A opt_args + + _arguments -s -w : $_hg_global_opts $_hg_pat_opts $_hg_dryrun_opts \ + '(--all -a :)'{-a,--all}'[revert all changes when no arguments given]' \ + '(--rev -r)'{-r+,--rev}'[revision to revert to]:revision:_hg_tags' \ + '--no-backup[do not save backup copies of files]' \ + '*:file:->diff_files' + + if [[ $state == 'diff_files' ]] + then + if [[ -n $opt_args[-r] ]] + then + _hg_files + else + typeset -a status_files + _hg_status mard + _wanted files expl 'modified, added, removed or deleted file' _multi_parts / status_files + fi + fi +} + +_hg_cmd_serve() { + _arguments -s -w : $_hg_global_opts \ + '(--accesslog -A)'{-A+,--accesslog}'[name of access log file]:log file:_files' \ + '(--errorlog -E)'{-E+,--errorlog}'[name of error log file]:log file:_files' \ + '(--daemon -d)'{-d,--daemon}'[run server in background]' \ + '(--port -p)'{-p+,--port}'[listen port]:listen port:' \ + '(--address -a)'{-a+,--address}'[interface address]:interface address:' \ + '(--name -n)'{-n+,--name}'[name to show in web pages]:repository name:' \ + '(--templates -t)'{-t,--templates}'[web template directory]:template dir:_files -/' \ + '--style[web template style]:style' \ + '--stdio[for remote clients]' \ + '(--ipv6 -6)'{-6,--ipv6}'[use IPv6 in addition to IPv4]' +} + +_hg_cmd_showconfig() { + _arguments -s -w : $_hg_global_opts \ + '(--untrusted -u)'{-u+,--untrusted}'[show untrusted configuration options]' \ + ':config item:_hg_config' +} + +_hg_cmd_status() { + _arguments -s -w : $_hg_global_opts $_hg_pat_opts \ + '(--all -A)'{-A,--all}'[show status of all files]' \ + '(--modified -m)'{-m,--modified}'[show only modified files]' \ + '(--added -a)'{-a,--added}'[show only added files]' \ + '(--removed -r)'{-r,--removed}'[show only removed files]' \ + '(--deleted -d)'{-d,--deleted}'[show only deleted (but tracked) files]' \ + '(--clean -c)'{-c,--clean}'[show only files without changes]' \ + '(--unknown -u)'{-u,--unknown}'[show only unknown files]' \ + '(--ignored -i)'{-i,--ignored}'[show ignored files]' \ + '(--no-status -n)'{-n,--no-status}'[hide status prefix]' \ + '(--copies -C)'{-C,--copies}'[show source of copied files]' \ + '(--print0 -0)'{-0,--print0}'[end filenames with NUL, for use with xargs]' \ + '--rev[show difference from revision]:revision:_hg_tags' \ + '*:files:_files' +} + +_hg_cmd_summary() { + _arguments -s -w : $_hg_global_opts \ + '--remote[check for push and pull]' +} + +_hg_cmd_tag() { + _arguments -s -w : $_hg_global_opts \ + '(--local -l)'{-l,--local}'[make the tag local]' \ + '(--message -m)'{-m+,--message}'[message for tag commit log entry]:message:' \ + '(--date -d)'{-d+,--date}'[record datecode as commit date]:date code:' \ + '(--user -u)'{-u+,--user}'[record user as commiter]:user:' \ + '(--rev -r)'{-r+,--rev}'[revision to tag]:revision:_hg_tags' \ + ':tag name:' +} + +_hg_cmd_tip() { + _arguments -s -w : $_hg_global_opts $_hg_style_opts \ + '(--patch -p)'{-p,--patch}'[show patch]' +} + +_hg_cmd_unbundle() { + _arguments -s -w : $_hg_global_opts \ + '(--update -u)'{-u,--update}'[update to new tip if changesets were unbundled]' \ + ':files:_files' +} + +_hg_cmd_update() { + _arguments -s -w : $_hg_global_opts \ + '(--clean -C)'{-C,--clean}'[overwrite locally modified files]' \ + '(--rev -r)'{-r+,--rev}'[revision]:revision:_hg_tags' \ + ':revision:_hg_tags' +} + +# HGK +_hg_cmd_view() { + _arguments -s -w : $_hg_global_opts \ + '(--limit -l)'{-l+,--limit}'[limit number of changes displayed]:' \ + ':revision range:_hg_tags' +} + +# MQ +_hg_qseries() { + typeset -a patches + patches=(${(f)"$(_hg_cmd qseries)"}) + (( $#patches )) && _describe -t hg-patches 'patches' patches +} + +_hg_qapplied() { + typeset -a patches + patches=(${(f)"$(_hg_cmd qapplied)"}) + if (( $#patches )) + then + patches+=(qbase qtip) + _describe -t hg-applied-patches 'applied patches' patches + fi +} + +_hg_qunapplied() { + typeset -a patches + patches=(${(f)"$(_hg_cmd qunapplied)"}) + (( $#patches )) && _describe -t hg-unapplied-patches 'unapplied patches' patches +} + +# unapplied, including guarded patches +_hg_qdeletable() { + typeset -a unapplied + unapplied=(${(f)"$(_hg_cmd qseries)"}) + for p in $(_hg_cmd qapplied) + do + unapplied=(${unapplied:#$p}) + done + + (( $#unapplied )) && _describe -t hg-allunapplied-patches 'all unapplied patches' unapplied +} + +_hg_qguards() { + typeset -a guards + local guard + compset -P "+|-" + _hg_cmd qselect -s | while read guard + do + guards+=(${guard#(+|-)}) + done + (( $#guards )) && _describe -t hg-guards 'guards' guards +} + +_hg_qseries_opts=( + '(--summary -s)'{-s,--summary}'[print first line of patch header]') + +_hg_cmd_qapplied() { + _arguments -s -w : $_hg_global_opts $_hg_qseries_opts +} + +_hg_cmd_qdelete() { + _arguments -s -w : $_hg_global_opts \ + '(--keep -k)'{-k,--keep}'[keep patch file]' \ + '*'{-r+,--rev}'[stop managing a revision]:applied patch:_hg_revrange' \ + '*:unapplied patch:_hg_qdeletable' +} + +_hg_cmd_qdiff() { + _arguments -s -w : $_hg_global_opts $_hg_pat_opts \ + '*:pattern:_hg_files' +} + +_hg_cmd_qfold() { + _arguments -s -w : $_hg_global_opts $_h_commit_opts \ + '(--keep,-k)'{-k,--keep}'[keep folded patch files]' \ + '*:unapplied patch:_hg_qunapplied' +} + +_hg_cmd_qgoto() { + _arguments -s -w : $_hg_global_opts \ + '(--force -f)'{-f,--force}'[overwrite any local changes]' \ + ':patch:_hg_qseries' +} + +_hg_cmd_qguard() { + _arguments -s -w : $_hg_global_opts \ + '(--list -l)'{-l,--list}'[list all patches and guards]' \ + '(--none -n)'{-n,--none}'[drop all guards]' \ + ':patch:_hg_qseries' \ + '*:guards:_hg_qguards' +} + +_hg_cmd_qheader() { + _arguments -s -w : $_hg_global_opts \ + ':patch:_hg_qseries' +} + +_hg_cmd_qimport() { + _arguments -s -w : $_hg_global_opts \ + '(--existing -e)'{-e,--existing}'[import file in patch dir]' \ + '(--name -n 2)'{-n+,--name}'[patch file name]:name:' \ + '(--force -f)'{-f,--force}'[overwrite existing files]' \ + '*'{-r+,--rev}'[place existing revisions under mq control]:revision:_hg_revrange' \ + '*:patch:_files' +} + +_hg_cmd_qnew() { + _arguments -s -w : $_hg_global_opts $_hg_commit_opts \ + '(--force -f)'{-f,--force}'[import uncommitted changes into patch]' \ + ':patch:' +} + +_hg_cmd_qnext() { + _arguments -s -w : $_hg_global_opts $_hg_qseries_opts +} + +_hg_cmd_qpop() { + _arguments -s -w : $_hg_global_opts \ + '(--all -a :)'{-a,--all}'[pop all patches]' \ + '(--name -n)'{-n+,--name}'[queue name to pop]:' \ + '(--force -f)'{-f,--force}'[forget any local changes]' \ + ':patch:_hg_qapplied' +} + +_hg_cmd_qprev() { + _arguments -s -w : $_hg_global_opts $_hg_qseries_opts +} + +_hg_cmd_qpush() { + _arguments -s -w : $_hg_global_opts \ + '(--all -a :)'{-a,--all}'[apply all patches]' \ + '(--list -l)'{-l,--list}'[list patch name in commit text]' \ + '(--merge -m)'{-m+,--merge}'[merge from another queue]:' \ + '(--name -n)'{-n+,--name}'[merge queue name]:' \ + '(--force -f)'{-f,--force}'[apply if the patch has rejects]' \ + ':patch:_hg_qunapplied' +} + +_hg_cmd_qrefresh() { + _arguments -s -w : $_hg_global_opts $_hg_pat_opts $_hg_commit_opts \ + '(--git -g)'{-g,--git}'[use git extended diff format]' \ + '(--short -s)'{-s,--short}'[short refresh]' \ + '*:files:_hg_files' +} + +_hg_cmd_qrename() { + _arguments -s -w : $_hg_global_opts \ + ':patch:_hg_qseries' \ + ':destination:' +} + +_hg_cmd_qselect() { + _arguments -s -w : $_hg_global_opts \ + '(--none -n :)'{-n,--none}'[disable all guards]' \ + '(--series -s :)'{-s,--series}'[list all guards in series file]' \ + '--pop[pop to before first guarded applied patch]' \ + '--reapply[pop and reapply patches]' \ + '*:guards:_hg_qguards' +} + +_hg_cmd_qseries() { + _arguments -s -w : $_hg_global_opts $_hg_qseries_opts \ + '(--missing -m)'{-m,--missing}'[print patches not in series]' +} + +_hg_cmd_qunapplied() { + _arguments -s -w : $_hg_global_opts $_hg_qseries_opts +} + +_hg_cmd_qtop() { + _arguments -s -w : $_hg_global_opts $_hg_qseries_opts +} + +_hg_cmd_strip() { + _arguments -s -w : $_hg_global_opts \ + '(--force -f)'{-f,--force}'[force multi-head removal]' \ + '(--backup -b)'{-b,--backup}'[bundle unrelated changesets]' \ + '(--nobackup -n)'{-n,--nobackup}'[no backups]' \ + ':revision:_hg_tags' +} + +_hg "$@"
--- a/contrib/zsh_completion Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,946 +0,0 @@ -#compdef hg - -# Zsh completion script for mercurial. Rename this file to _hg and copy -# it into your zsh function path (/usr/share/zsh/site-functions for -# instance) -# -# If you do not want to install it globally, you can copy it somewhere -# else and add that directory to $fpath. This must be done before -# compinit is called. If the file is copied to ~/.zsh.d, your ~/.zshrc -# file could look like this: -# -# fpath=("$HOME/.zsh.d" $fpath) -# autoload -U compinit -# compinit -# -# Copyright (C) 2005, 2006 Steve Borho <steve@borho.org> -# Copyright (C) 2006-9 Brendan Cully <brendan@kublai.com> -# -# Permission is hereby granted, without written agreement and without -# licence or royalty fees, to use, copy, modify, and distribute this -# software and to distribute modified versions of this software for any -# purpose, provided that the above copyright notice and the following -# two paragraphs appear in all copies of this software. -# -# In no event shall the authors be liable to any party for direct, -# indirect, special, incidental, or consequential damages arising out of -# the use of this software and its documentation, even if the authors -# have been advised of the possibility of such damage. -# -# The authors specifically disclaim any warranties, including, but not -# limited to, the implied warranties of merchantability and fitness for -# a particular purpose. The software provided hereunder is on an "as -# is" basis, and the authors have no obligation to provide maintenance, -# support, updates, enhancements, or modifications. - -emulate -LR zsh -setopt extendedglob - -local curcontext="$curcontext" state line -typeset -A _hg_cmd_globals - -_hg() { - local cmd _hg_root - integer i=2 - _hg_cmd_globals=() - - while (( i < $#words )) - do - case "$words[$i]" in - -R|--repository) - eval _hg_root="$words[$i+1]" - _hg_cmd_globals+=("$words[$i]" "$_hg_root") - (( i += 2 )) - continue - ;; - -R*) - _hg_cmd_globals+="$words[$i]" - eval _hg_root="${words[$i]#-R}" - (( i++ )) - continue - ;; - --cwd|--config) - # pass along arguments to hg completer - _hg_cmd_globals+=("$words[$i]" "$words[$i+1]") - (( i += 2 )) - continue - ;; - -*) - # skip option - (( i++ )) - continue - ;; - esac - if [[ -z "$cmd" ]] - then - cmd="$words[$i]" - words[$i]=() - (( CURRENT-- )) - fi - (( i++ )) - done - - if [[ -z "$cmd" ]] - then - _arguments -s -w : $_hg_global_opts \ - ':mercurial command:_hg_commands' - return - fi - - # resolve abbreviations and aliases - if ! (( $+functions[_hg_cmd_${cmd}] )) - then - local cmdexp - (( $#_hg_cmd_list )) || _hg_get_commands - - cmdexp=$_hg_cmd_list[(r)${cmd}*] - if [[ $cmdexp == $_hg_cmd_list[(R)${cmd}*] ]] - then - # might be nice to rewrite the command line with the expansion - cmd="$cmdexp" - fi - if [[ -n $_hg_alias_list[$cmd] ]] - then - cmd=$_hg_alias_list[$cmd] - fi - fi - - curcontext="${curcontext%:*:*}:hg-${cmd}:" - - zstyle -s ":completion:$curcontext:" cache-policy update_policy - - if [[ -z "$update_policy" ]] - then - zstyle ":completion:$curcontext:" cache-policy _hg_cache_policy - fi - - if (( $+functions[_hg_cmd_${cmd}] )) - then - _hg_cmd_${cmd} - else - # complete unknown commands normally - _arguments -s -w : $_hg_global_opts \ - '*:files:_hg_files' - fi -} - -_hg_cache_policy() { - typeset -a old - - # cache for a minute - old=( "$1"(mm+10) ) - (( $#old )) && return 0 - - return 1 -} - -_hg_get_commands() { - typeset -ga _hg_cmd_list - typeset -gA _hg_alias_list - local hline cmd cmdalias - - _call_program hg hg debugcomplete -v | while read -A hline - do - cmd=$hline[1] - _hg_cmd_list+=($cmd) - - for cmdalias in $hline[2,-1] - do - _hg_cmd_list+=($cmdalias) - _hg_alias_list+=($cmdalias $cmd) - done - done -} - -_hg_commands() { - (( $#_hg_cmd_list )) || _hg_get_commands - _describe -t commands 'mercurial command' _hg_cmd_list -} - -_hg_revrange() { - compset -P 1 '*:' - _hg_tags "$@" -} - -_hg_tags() { - typeset -a tags - local tag rev - - _hg_cmd tags | while read tag - do - tags+=(${tag/ # [0-9]#:*}) - done - (( $#tags )) && _describe -t tags 'tags' tags -} - -# likely merge candidates -_hg_mergerevs() { - typeset -a heads - local myrev - - heads=(${(f)"$(_hg_cmd heads --template '{rev}\\n')"}) - # exclude own revision - myrev=$(_hg_cmd log -r . --template '{rev}\\n') - heads=(${heads:#$myrev}) - - (( $#heads )) && _describe -t heads 'heads' heads -} - -_hg_files() { - if [[ -n "$_hg_root" ]] - then - [[ -d "$_hg_root/.hg" ]] || return - case "$_hg_root" in - /*) - _files -W $_hg_root - ;; - *) - _files -W $PWD/$_hg_root - ;; - esac - else - _files - fi -} - -_hg_status() { - [[ -d $PREFIX ]] || PREFIX=$PREFIX:h - status_files=(${(ps:\0:)"$(_hg_cmd status -0n$1 ./$PREFIX)"}) -} - -_hg_unknown() { - typeset -a status_files - _hg_status u - _wanted files expl 'unknown files' _multi_parts / status_files -} - -_hg_missing() { - typeset -a status_files - _hg_status d - _wanted files expl 'missing files' _multi_parts / status_files -} - -_hg_modified() { - typeset -a status_files - _hg_status m - _wanted files expl 'modified files' _multi_parts / status_files -} - -_hg_resolve() { - local rstate rpath - - [[ -d $PREFIX ]] || PREFIX=$PREFIX:h - - _hg_cmd resolve -l ./$PREFIX | while read rstate rpath - do - [[ $rstate == 'R' ]] && resolved_files+=($rpath) - [[ $rstate == 'U' ]] && unresolved_files+=($rpath) - done -} - -_hg_resolved() { - typeset -a resolved_files unresolved_files - _hg_resolve - _wanted files expl 'resolved files' _multi_parts / resolved_files -} - -_hg_unresolved() { - typeset -a resolved_files unresolved_files - _hg_resolve - _wanted files expl 'unresolved files' _multi_parts / unresolved_files -} - -_hg_config() { - typeset -a items - items=(${${(%f)"$(_call_program hg hg showconfig)"}%%\=*}) - (( $#items )) && _describe -t config 'config item' items -} - -_hg_addremove() { - _alternative 'files:unknown files:_hg_unknown' \ - 'files:missing files:_hg_missing' -} - -_hg_ssh_urls() { - if [[ -prefix */ ]] - then - if zstyle -T ":completion:${curcontext}:files" remote-access - then - local host=${PREFIX%%/*} - typeset -a remdirs - compset -p $(( $#host + 1 )) - local rempath=${(M)PREFIX##*/} - local cacheid="hg:${host}-${rempath//\//_}" - cacheid=${cacheid%[-_]} - compset -P '*/' - if _cache_invalid "$cacheid" || ! _retrieve_cache "$cacheid" - then - remdirs=(${${(M)${(f)"$(_call_program files ssh -a -x $host ls -1FL "${(q)rempath}")"}##*/}%/}) - _store_cache "$cacheid" remdirs - fi - _describe -t directories 'remote directory' remdirs -S/ - else - _message 'remote directory' - fi - else - if compset -P '*@' - then - _hosts -S/ - else - _alternative 'hosts:remote host name:_hosts -S/' \ - 'users:user:_users -S@' - fi - fi -} - -_hg_urls() { - if compset -P bundle:// - then - _files - elif compset -P ssh:// - then - _hg_ssh_urls - elif [[ -prefix *: ]] - then - _urls - else - local expl - compset -S '[^:]*' - _wanted url-schemas expl 'URL schema' compadd -S '' - \ - http:// https:// ssh:// bundle:// - fi -} - -_hg_paths() { - typeset -a paths pnames - _hg_cmd paths | while read -A pnames - do - paths+=($pnames[1]) - done - (( $#paths )) && _describe -t path-aliases 'repository alias' paths -} - -_hg_remote() { - _alternative 'path-aliases:repository alias:_hg_paths' \ - 'directories:directory:_files -/' \ - 'urls:URL:_hg_urls' -} - -_hg_clone_dest() { - _alternative 'directories:directory:_files -/' \ - 'urls:URL:_hg_urls' -} - -# Common options -_hg_global_opts=( - '(--repository -R)'{-R+,--repository}'[repository root directory]:repository:_files -/' - '--cwd[change working directory]:new working directory:_files -/' - '(--noninteractive -y)'{-y,--noninteractive}'[do not prompt, assume yes for any required answers]' - '(--verbose -v)'{-v,--verbose}'[enable additional output]' - '*--config[set/override config option]:defined config items:_hg_config' - '(--quiet -q)'{-q,--quiet}'[suppress output]' - '(--help -h)'{-h,--help}'[display help and exit]' - '--debug[debug mode]' - '--debugger[start debugger]' - '--encoding[set the charset encoding (default: UTF8)]' - '--encodingmode[set the charset encoding mode (default: strict)]' - '--lsprof[print improved command execution profile]' - '--traceback[print traceback on exception]' - '--time[time how long the command takes]' - '--profile[profile]' - '--version[output version information and exit]' -) - -_hg_pat_opts=( - '*'{-I+,--include}'[include names matching the given patterns]:dir:_files -W $(_hg_cmd root) -/' - '*'{-X+,--exclude}'[exclude names matching the given patterns]:dir:_files -W $(_hg_cmd root) -/') - -_hg_diff_opts=( - '(--text -a)'{-a,--text}'[treat all files as text]' - '(--git -g)'{-g,--git}'[use git extended diff format]' - "--nodates[don't include dates in diff headers]") - -_hg_dryrun_opts=( - '(--dry-run -n)'{-n,--dry-run}'[do not perform actions, just print output]') - -_hg_style_opts=( - '--style[display using template map file]:' - '--template[display with template]:') - -_hg_commit_opts=( - '(-m --message -l --logfile --edit -e)'{-e,--edit}'[edit commit message]' - '(-e --edit -l --logfile --message -m)'{-m+,--message}'[use <text> as commit message]:message:' - '(-e --edit -m --message --logfile -l)'{-l+,--logfile}'[read the commit message from <file>]:log file:_files') - -_hg_remote_opts=( - '(--ssh -e)'{-e+,--ssh}'[specify ssh command to use]:' - '--remotecmd[specify hg command to run on the remote side]:') - -_hg_cmd() { - _call_program hg hg --config ui.verbose=0 --config defaults."$1"= \ - "$_hg_cmd_globals[@]" "$@" 2> /dev/null -} - -_hg_cmd_add() { - _arguments -s -w : $_hg_global_opts $_hg_pat_opts $_hg_dryrun_opts \ - '*:unknown files:_hg_unknown' -} - -_hg_cmd_addremove() { - _arguments -s -w : $_hg_global_opts $_hg_pat_opts $_hg_dryrun_opts \ - '(--similarity -s)'{-s+,--similarity}'[guess renamed files by similarity (0<=s<=100)]:' \ - '*:unknown or missing files:_hg_addremove' -} - -_hg_cmd_annotate() { - _arguments -s -w : $_hg_global_opts $_hg_pat_opts \ - '(--rev -r)'{-r+,--rev}'[annotate the specified revision]:revision:_hg_tags' \ - '(--follow -f)'{-f,--follow}'[follow file copies and renames]' \ - '(--text -a)'{-a,--text}'[treat all files as text]' \ - '(--user -u)'{-u,--user}'[list the author]' \ - '(--date -d)'{-d,--date}'[list the date]' \ - '(--number -n)'{-n,--number}'[list the revision number (default)]' \ - '(--changeset -c)'{-c,--changeset}'[list the changeset]' \ - '*:files:_hg_files' -} - -_hg_cmd_archive() { - _arguments -s -w : $_hg_global_opts $_hg_pat_opts \ - '--no-decode[do not pass files through decoders]' \ - '(--prefix -p)'{-p+,--prefix}'[directory prefix for files in archive]:' \ - '(--rev -r)'{-r+,--rev}'[revision to distribute]:revision:_hg_tags' \ - '(--type -t)'{-t+,--type}'[type of distribution to create]:archive type:(files tar tbz2 tgz uzip zip)' \ - '*:destination:_files' -} - -_hg_cmd_backout() { - _arguments -s -w : $_hg_global_opts $_hg_pat_opts \ - '--merge[merge with old dirstate parent after backout]' \ - '(--date -d)'{-d+,--date}'[record datecode as commit date]:date code:' \ - '--parent[parent to choose when backing out merge]' \ - '(--user -u)'{-u+,--user}'[record user as commiter]:user:' \ - '(--rev -r)'{-r+,--rev}'[revision]:revision:_hg_tags' \ - '(--message -m)'{-m+,--message}'[use <text> as commit message]:text:' \ - '(--logfile -l)'{-l+,--logfile}'[read commit message from <file>]:log file:_files -g \*.txt' -} - -_hg_cmd_bisect() { - _arguments -s -w : $_hg_global_opts \ - '(-)'{-r,--reset}'[reset bisect state]' \ - '(--good -g --bad -b --skip -s --reset -r)'{-g,--good}'[mark changeset good]'::revision:_hg_tags \ - '(--good -g --bad -b --skip -s --reset -r)'{-b,--bad}'[mark changeset bad]'::revision:_hg_tags \ - '(--good -g --bad -b --skip -s --reset -r)'{-s,--skip}'[skip testing changeset]' \ - '(--command -c --noupdate -U)'{-c+,--command}'[use command to check changeset state]':commands:_command_names \ - '(--command -c --noupdate -U)'{-U,--noupdate}'[do not update to target]' -} - -_hg_cmd_branch() { - _arguments -s -w : $_hg_global_opts \ - '(--force -f)'{-f,--force}'[set branch name even if it shadows an existing branch]' \ - '(--clean -C)'{-C,--clean}'[reset branch name to parent branch name]' -} - -_hg_cmd_branches() { - _arguments -s -w : $_hg_global_opts \ - '(--active -a)'{-a,--active}'[show only branches that have unmerge heads]' -} - -_hg_cmd_bundle() { - _arguments -s -w : $_hg_global_opts $_hg_remote_opts \ - '(--force -f)'{-f,--force}'[run even when remote repository is unrelated]' \ - '(2)*--base[a base changeset to specify instead of a destination]:revision:_hg_tags' \ - ':output file:_files' \ - ':destination repository:_files -/' -} - -_hg_cmd_cat() { - _arguments -s -w : $_hg_global_opts $_hg_pat_opts \ - '(--output -o)'{-o+,--output}'[print output to file with formatted name]:filespec:' \ - '(--rev -r)'{-r+,--rev}'[revision]:revision:_hg_tags' \ - '*:file:_hg_files' -} - -_hg_cmd_clone() { - _arguments -s -w : $_hg_global_opts $_hg_remote_opts \ - '(--noupdate -U)'{-U,--noupdate}'[do not update the new working directory]' \ - '(--rev -r)'{-r+,--rev}'[a changeset you would like to have after cloning]:' \ - '--uncompressed[use uncompressed transfer (fast over LAN)]' \ - ':source repository:_hg_remote' \ - ':destination:_hg_clone_dest' -} - -_hg_cmd_commit() { - _arguments -s -w : $_hg_global_opts $_hg_pat_opts \ - '(--addremove -A)'{-A,--addremove}'[mark new/missing files as added/removed before committing]' \ - '(--message -m)'{-m+,--message}'[use <text> as commit message]:text:' \ - '(--logfile -l)'{-l+,--logfile}'[read commit message from <file>]:log file:_files -g \*.txt' \ - '(--date -d)'{-d+,--date}'[record datecode as commit date]:date code:' \ - '(--user -u)'{-u+,--user}'[record user as commiter]:user:' \ - '*:file:_hg_files' -} - -_hg_cmd_copy() { - _arguments -s -w : $_hg_global_opts $_hg_pat_opts $_hg_dryrun_opts \ - '(--after -A)'{-A,--after}'[record a copy that has already occurred]' \ - '(--force -f)'{-f,--force}'[forcibly copy over an existing managed file]' \ - '*:file:_hg_files' -} - -_hg_cmd_diff() { - typeset -A opt_args - _arguments -s -w : $_hg_global_opts $_hg_pat_opts $_hg_diff_opts \ - '*'{-r,--rev}'+[revision]:revision:_hg_revrange' \ - '(--show-function -p)'{-p,--show-function}'[show which function each change is in]' \ - '(--ignore-all-space -w)'{-w,--ignore-all-space}'[ignore white space when comparing lines]' \ - '(--ignore-space-change -b)'{-b,--ignore-space-change}'[ignore changes in the amount of white space]' \ - '(--ignore-blank-lines -B)'{-B,--ignore-blank-lines}'[ignore changes whose lines are all blank]' \ - '*:file:->diff_files' - - if [[ $state == 'diff_files' ]] - then - if [[ -n $opt_args[-r] ]] - then - _hg_files - else - _hg_modified - fi - fi -} - -_hg_cmd_export() { - _arguments -s -w : $_hg_global_opts $_hg_diff_opts \ - '(--outout -o)'{-o+,--output}'[print output to file with formatted name]:filespec:' \ - '--switch-parent[diff against the second parent]' \ - '*:revision:_hg_tags' -} - -_hg_cmd_grep() { - _arguments -s -w : $_hg_global_opts $_hg_pat_opts \ - '(--print0 -0)'{-0,--print0}'[end filenames with NUL]' \ - '--all[print all revisions with matches]' \ - '(--follow -f)'{-f,--follow}'[follow changeset or file history]' \ - '(--ignore-case -i)'{-i,--ignore-case}'[ignore case when matching]' \ - '(--files-with-matches -l)'{-l,--files-with-matches}'[print only filenames and revs that match]' \ - '(--line-number -n)'{-n,--line-number}'[print matching line numbers]' \ - '*'{-r+,--rev}'[search in given revision range]:revision:_hg_revrange' \ - '(--user -u)'{-u,--user}'[print user who committed change]' \ - '1:search pattern:' \ - '*:files:_hg_files' -} - -_hg_cmd_heads() { - _arguments -s -w : $_hg_global_opts $_hg_style_opts \ - '(--rev -r)'{-r+,--rev}'[show only heads which are descendants of rev]:revision:_hg_tags' -} - -_hg_cmd_help() { - _arguments -s -w : $_hg_global_opts \ - '*:mercurial command:_hg_commands' -} - -_hg_cmd_identify() { - _arguments -s -w : $_hg_global_opts \ - '(--rev -r)'{-r+,--rev}'[identify the specified rev]:revision:_hg_tags' \ - '(--num -n)'{-n+,--num}'[show local revision number]' \ - '(--id -i)'{-i+,--id}'[show global revision id]' \ - '(--branch -b)'{-b+,--branch}'[show branch]' \ - '(--tags -t)'{-t+,--tags}'[show tags]' -} - -_hg_cmd_import() { - _arguments -s -w : $_hg_global_opts \ - '(--strip -p)'{-p+,--strip}'[directory strip option for patch (default: 1)]:count:' \ - '(--message -m)'{-m+,--message}'[use <text> as commit message]:text:' \ - '(--force -f)'{-f,--force}'[skip check for outstanding uncommitted changes]' \ - '*:patch:_files' -} - -_hg_cmd_incoming() { - _arguments -s -w : $_hg_global_opts $_hg_remote_opts $_hg_style_opts \ - '(--no-merges -M)'{-M,--no-merges}'[do not show merge revisions]' \ - '(--force -f)'{-f,--force}'[run even when the remote repository is unrelated]' \ - '(--patch -p)'{-p,--patch}'[show patch]' \ - '(--rev -r)'{-r+,--rev}'[a specific revision up to which you would like to pull]:revision:_hg_tags' \ - '(--newest-first -n)'{-n,--newest-first}'[show newest record first]' \ - '--bundle[file to store the bundles into]:bundle file:_files' \ - ':source:_hg_remote' -} - -_hg_cmd_init() { - _arguments -s -w : $_hg_global_opts $_hg_remote_opts \ - ':dir:_files -/' -} - -_hg_cmd_locate() { - _arguments -s -w : $_hg_global_opts $_hg_pat_opts \ - '(--rev -r)'{-r+,--rev}'[search repository as it stood at revision]:revision:_hg_tags' \ - '(--print0 -0)'{-0,--print0}'[end filenames with NUL, for use with xargs]' \ - '(--fullpath -f)'{-f,--fullpath}'[print complete paths]' \ - '*:search pattern:_hg_files' -} - -_hg_cmd_log() { - _arguments -s -w : $_hg_global_opts $_hg_pat_opts $_hg_style_opts \ - '(--follow --follow-first -f)'{-f,--follow}'[follow changeset or history]' \ - '(-f --follow)--follow-first[only follow the first parent of merge changesets]' \ - '(--copies -C)'{-C,--copies}'[show copied files]' \ - '(--keyword -k)'{-k+,--keyword}'[search for a keyword]:' \ - '(--limit -l)'{-l+,--limit}'[limit number of changes displayed]:' \ - '*'{-r,--rev}'[show the specified revision or range]:revision:_hg_revrange' \ - '(--no-merges -M)'{-M,--no-merges}'[do not show merges]' \ - '(--only-merges -m)'{-m,--only-merges}'[show only merges]' \ - '(--patch -p)'{-p,--patch}'[show patch]' \ - '(--prune -P)'{-P+,--prune}'[do not display revision or any of its ancestors]:revision:_hg_tags' \ - '*:files:_hg_files' -} - -_hg_cmd_manifest() { - _arguments -s -w : $_hg_global_opts \ - ':revision:_hg_tags' -} - -_hg_cmd_merge() { - _arguments -s -w : $_hg_global_opts \ - '(--force -f)'{-f,--force}'[force a merge with outstanding changes]' \ - '(--rev -r 1)'{-r,--rev}'[revision to merge]:revision:_hg_mergerevs' \ - '(--preview -P)'{-P,--preview}'[review revisions to merge (no merge is performed)]' \ - ':revision:_hg_mergerevs' -} - -_hg_cmd_outgoing() { - _arguments -s -w : $_hg_global_opts $_hg_remote_opts $_hg_style_opts \ - '(--no-merges -M)'{-M,--no-merges}'[do not show merge revisions]' \ - '(--force -f)'{-f,--force}'[run even when the remote repository is unrelated]' \ - '(--patch -p)'{-p,--patch}'[show patch]' \ - '(--rev -r)'{-r+,--rev}'[a specific revision you would like to push]' \ - '(--newest-first -n)'{-n,--newest-first}'[show newest record first]' \ - ':destination:_hg_remote' -} - -_hg_cmd_parents() { - _arguments -s -w : $_hg_global_opts $_hg_style_opts \ - '(--rev -r)'{-r+,--rev}'[show parents of the specified rev]:revision:_hg_tags' \ - ':last modified file:_hg_files' -} - -_hg_cmd_paths() { - _arguments -s -w : $_hg_global_opts \ - ':path:_hg_paths' -} - -_hg_cmd_pull() { - _arguments -s -w : $_hg_global_opts $_hg_remote_opts \ - '(--force -f)'{-f,--force}'[run even when the remote repository is unrelated]' \ - '(--update -u)'{-u,--update}'[update to new tip if changesets were pulled]' \ - '(--rev -r)'{-r+,--rev}'[a specific revision up to which you would like to pull]:revision:' \ - ':source:_hg_remote' -} - -_hg_cmd_push() { - _arguments -s -w : $_hg_global_opts $_hg_remote_opts \ - '(--force -f)'{-f,--force}'[force push]' \ - '(--rev -r)'{-r+,--rev}'[a specific revision you would like to push]:revision:_hg_tags' \ - ':destination:_hg_remote' -} - -_hg_cmd_remove() { - _arguments -s -w : $_hg_global_opts $_hg_pat_opts \ - '(--after -A)'{-A,--after}'[record remove that has already occurred]' \ - '(--force -f)'{-f,--force}'[remove file even if modified]' \ - '*:file:_hg_files' -} - -_hg_cmd_rename() { - _arguments -s -w : $_hg_global_opts $_hg_pat_opts $_hg_dryrun_opts \ - '(--after -A)'{-A,--after}'[record a rename that has already occurred]' \ - '(--force -f)'{-f,--force}'[forcibly copy over an existing managed file]' \ - '*:file:_hg_files' -} - -_hg_cmd_resolve() { - local context state line - typeset -A opt_args - - _arguments -s -w : $_hg_global_opts \ - '(--list -l --mark -m --unmark -u)'{-l,--list}'[list state of files needing merge]:*:merged files:->resolve_files' \ - '(--mark -m --list -l --unmark -u)'{-m,--mark}'[mark files as resolved]:*:unresolved files:_hg_unresolved' \ - '(--unmark -u --list -l --mark -m)'{-u,--unmark}'[unmark files as resolved]:*:resolved files:_hg_resolved' \ - '*:file:_hg_unresolved' - - if [[ $state == 'resolve_files' ]] - then - _alternative 'files:resolved files:_hg_resolved' \ - 'files:unresolved files:_hg_unresolved' - fi -} - -_hg_cmd_revert() { - local context state line - typeset -A opt_args - - _arguments -s -w : $_hg_global_opts $_hg_pat_opts $_hg_dryrun_opts \ - '(--all -a :)'{-a,--all}'[revert all changes when no arguments given]' \ - '(--rev -r)'{-r+,--rev}'[revision to revert to]:revision:_hg_tags' \ - '--no-backup[do not save backup copies of files]' \ - '*:file:->diff_files' - - if [[ $state == 'diff_files' ]] - then - if [[ -n $opt_args[-r] ]] - then - _hg_files - else - typeset -a status_files - _hg_status mard - _wanted files expl 'modified, added, removed or deleted file' _multi_parts / status_files - fi - fi -} - -_hg_cmd_serve() { - _arguments -s -w : $_hg_global_opts \ - '(--accesslog -A)'{-A+,--accesslog}'[name of access log file]:log file:_files' \ - '(--errorlog -E)'{-E+,--errorlog}'[name of error log file]:log file:_files' \ - '(--daemon -d)'{-d,--daemon}'[run server in background]' \ - '(--port -p)'{-p+,--port}'[listen port]:listen port:' \ - '(--address -a)'{-a+,--address}'[interface address]:interface address:' \ - '(--name -n)'{-n+,--name}'[name to show in web pages]:repository name:' \ - '(--templates -t)'{-t,--templates}'[web template directory]:template dir:_files -/' \ - '--style[web template style]:style' \ - '--stdio[for remote clients]' \ - '(--ipv6 -6)'{-6,--ipv6}'[use IPv6 in addition to IPv4]' -} - -_hg_cmd_showconfig() { - _arguments -s -w : $_hg_global_opts \ - '(--untrusted -u)'{-u+,--untrusted}'[show untrusted configuration options]' \ - ':config item:_hg_config' -} - -_hg_cmd_status() { - _arguments -s -w : $_hg_global_opts $_hg_pat_opts \ - '(--all -A)'{-A,--all}'[show status of all files]' \ - '(--modified -m)'{-m,--modified}'[show only modified files]' \ - '(--added -a)'{-a,--added}'[show only added files]' \ - '(--removed -r)'{-r,--removed}'[show only removed files]' \ - '(--deleted -d)'{-d,--deleted}'[show only deleted (but tracked) files]' \ - '(--clean -c)'{-c,--clean}'[show only files without changes]' \ - '(--unknown -u)'{-u,--unknown}'[show only unknown files]' \ - '(--ignored -i)'{-i,--ignored}'[show ignored files]' \ - '(--no-status -n)'{-n,--no-status}'[hide status prefix]' \ - '(--copies -C)'{-C,--copies}'[show source of copied files]' \ - '(--print0 -0)'{-0,--print0}'[end filenames with NUL, for use with xargs]' \ - '--rev[show difference from revision]:revision:_hg_tags' \ - '*:files:_files' -} - -_hg_cmd_tag() { - _arguments -s -w : $_hg_global_opts \ - '(--local -l)'{-l,--local}'[make the tag local]' \ - '(--message -m)'{-m+,--message}'[message for tag commit log entry]:message:' \ - '(--date -d)'{-d+,--date}'[record datecode as commit date]:date code:' \ - '(--user -u)'{-u+,--user}'[record user as commiter]:user:' \ - '(--rev -r)'{-r+,--rev}'[revision to tag]:revision:_hg_tags' \ - ':tag name:' -} - -_hg_cmd_tip() { - _arguments -s -w : $_hg_global_opts $_hg_style_opts \ - '(--patch -p)'{-p,--patch}'[show patch]' -} - -_hg_cmd_unbundle() { - _arguments -s -w : $_hg_global_opts \ - '(--update -u)'{-u,--update}'[update to new tip if changesets were unbundled]' \ - ':files:_files' -} - -_hg_cmd_update() { - _arguments -s -w : $_hg_global_opts \ - '(--clean -C)'{-C,--clean}'[overwrite locally modified files]' \ - '(--rev -r)'{-r+,--rev}'[revision]:revision:_hg_tags' \ - ':revision:_hg_tags' -} - -# HGK -_hg_cmd_view() { - _arguments -s -w : $_hg_global_opts \ - '(--limit -l)'{-l+,--limit}'[limit number of changes displayed]:' \ - ':revision range:_hg_tags' -} - -# MQ -_hg_qseries() { - typeset -a patches - patches=(${(f)"$(_hg_cmd qseries)"}) - (( $#patches )) && _describe -t hg-patches 'patches' patches -} - -_hg_qapplied() { - typeset -a patches - patches=(${(f)"$(_hg_cmd qapplied)"}) - if (( $#patches )) - then - patches+=(qbase qtip) - _describe -t hg-applied-patches 'applied patches' patches - fi -} - -_hg_qunapplied() { - typeset -a patches - patches=(${(f)"$(_hg_cmd qunapplied)"}) - (( $#patches )) && _describe -t hg-unapplied-patches 'unapplied patches' patches -} - -# unapplied, including guarded patches -_hg_qdeletable() { - typeset -a unapplied - unapplied=(${(f)"$(_hg_cmd qseries)"}) - for p in $(_hg_cmd qapplied) - do - unapplied=(${unapplied:#$p}) - done - - (( $#unapplied )) && _describe -t hg-allunapplied-patches 'all unapplied patches' unapplied -} - -_hg_qguards() { - typeset -a guards - local guard - compset -P "+|-" - _hg_cmd qselect -s | while read guard - do - guards+=(${guard#(+|-)}) - done - (( $#guards )) && _describe -t hg-guards 'guards' guards -} - -_hg_qseries_opts=( - '(--summary -s)'{-s,--summary}'[print first line of patch header]') - -_hg_cmd_qapplied() { - _arguments -s -w : $_hg_global_opts $_hg_qseries_opts -} - -_hg_cmd_qdelete() { - _arguments -s -w : $_hg_global_opts \ - '(--keep -k)'{-k,--keep}'[keep patch file]' \ - '*'{-r+,--rev}'[stop managing a revision]:applied patch:_hg_revrange' \ - '*:unapplied patch:_hg_qdeletable' -} - -_hg_cmd_qdiff() { - _arguments -s -w : $_hg_global_opts $_hg_pat_opts \ - '*:pattern:_hg_files' -} - -_hg_cmd_qfold() { - _arguments -s -w : $_hg_global_opts $_h_commit_opts \ - '(--keep,-k)'{-k,--keep}'[keep folded patch files]' \ - '*:unapplied patch:_hg_qunapplied' -} - -_hg_cmd_qgoto() { - _arguments -s -w : $_hg_global_opts \ - '(--force -f)'{-f,--force}'[overwrite any local changes]' \ - ':patch:_hg_qseries' -} - -_hg_cmd_qguard() { - _arguments -s -w : $_hg_global_opts \ - '(--list -l)'{-l,--list}'[list all patches and guards]' \ - '(--none -n)'{-n,--none}'[drop all guards]' \ - ':patch:_hg_qseries' \ - '*:guards:_hg_qguards' -} - -_hg_cmd_qheader() { - _arguments -s -w : $_hg_global_opts \ - ':patch:_hg_qseries' -} - -_hg_cmd_qimport() { - _arguments -s -w : $_hg_global_opts \ - '(--existing -e)'{-e,--existing}'[import file in patch dir]' \ - '(--name -n 2)'{-n+,--name}'[patch file name]:name:' \ - '(--force -f)'{-f,--force}'[overwrite existing files]' \ - '*'{-r+,--rev}'[place existing revisions under mq control]:revision:_hg_revrange' \ - '*:patch:_files' -} - -_hg_cmd_qnew() { - _arguments -s -w : $_hg_global_opts $_hg_commit_opts \ - '(--force -f)'{-f,--force}'[import uncommitted changes into patch]' \ - ':patch:' -} - -_hg_cmd_qnext() { - _arguments -s -w : $_hg_global_opts $_hg_qseries_opts -} - -_hg_cmd_qpop() { - _arguments -s -w : $_hg_global_opts \ - '(--all -a :)'{-a,--all}'[pop all patches]' \ - '(--name -n)'{-n+,--name}'[queue name to pop]:' \ - '(--force -f)'{-f,--force}'[forget any local changes]' \ - ':patch:_hg_qapplied' -} - -_hg_cmd_qprev() { - _arguments -s -w : $_hg_global_opts $_hg_qseries_opts -} - -_hg_cmd_qpush() { - _arguments -s -w : $_hg_global_opts \ - '(--all -a :)'{-a,--all}'[apply all patches]' \ - '(--list -l)'{-l,--list}'[list patch name in commit text]' \ - '(--merge -m)'{-m+,--merge}'[merge from another queue]:' \ - '(--name -n)'{-n+,--name}'[merge queue name]:' \ - '(--force -f)'{-f,--force}'[apply if the patch has rejects]' \ - ':patch:_hg_qunapplied' -} - -_hg_cmd_qrefresh() { - _arguments -s -w : $_hg_global_opts $_hg_pat_opts $_hg_commit_opts \ - '(--git -g)'{-g,--git}'[use git extended diff format]' \ - '(--short -s)'{-s,--short}'[short refresh]' \ - '*:files:_hg_files' -} - -_hg_cmd_qrename() { - _arguments -s -w : $_hg_global_opts \ - ':patch:_hg_qseries' \ - ':destination:' -} - -_hg_cmd_qselect() { - _arguments -s -w : $_hg_global_opts \ - '(--none -n :)'{-n,--none}'[disable all guards]' \ - '(--series -s :)'{-s,--series}'[list all guards in series file]' \ - '--pop[pop to before first guarded applied patch]' \ - '--reapply[pop and reapply patches]' \ - '*:guards:_hg_qguards' -} - -_hg_cmd_qseries() { - _arguments -s -w : $_hg_global_opts $_hg_qseries_opts \ - '(--missing -m)'{-m,--missing}'[print patches not in series]' -} - -_hg_cmd_qunapplied() { - _arguments -s -w : $_hg_global_opts $_hg_qseries_opts -} - -_hg_cmd_qtop() { - _arguments -s -w : $_hg_global_opts $_hg_qseries_opts -} - -_hg_cmd_strip() { - _arguments -s -w : $_hg_global_opts \ - '(--force -f)'{-f,--force}'[force multi-head removal]' \ - '(--backup -b)'{-b,--backup}'[bundle unrelated changesets]' \ - '(--nobackup -n)'{-n,--nobackup}'[no backups]' \ - ':revision:_hg_tags' -} - -_hg "$@"
--- a/doc/Makefile Tue Dec 08 23:23:59 2009 +0100 +++ b/doc/Makefile Tue Dec 08 23:36:06 2009 +0100 @@ -1,7 +1,7 @@ SOURCES=$(wildcard *.[0-9].txt) MAN=$(SOURCES:%.txt=%) HTML=$(SOURCES:%.txt=%.html) -GENDOC=gendoc.py ../mercurial/commands.py ../mercurial/help.py ../help/*.txt +GENDOC=gendoc.py ../mercurial/commands.py ../mercurial/help.py ../mercurial/help/*.txt PREFIX=/usr/local MANDIR=$(PREFIX)/share/man INSTALL=install -c -m 644
--- a/doc/rst2man.py Tue Dec 08 23:23:59 2009 +0100 +++ b/doc/rst2man.py Tue Dec 08 23:36:06 2009 +0100 @@ -228,7 +228,7 @@ 'problematic' : ('\n.nf\n', '\n.fi\n'), } - # NOTE dont specify the newline before a dot-command, but ensure + # NOTE don't specify the newline before a dot-command, but ensure # it is there. def comment_begin(self, text): @@ -763,6 +763,7 @@ def visit_line_block(self, node): self._line_block += 1 if self._line_block == 1: + self.body.append('.sp\n') self.body.append('.nf\n') else: self.body.append('.in +2\n')
--- a/help/config.txt Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ -Mercurial reads configuration data from several files, if they exist. -Below we list the most specific file first. - -On Windows, these configuration files are read: - -- ``<repo>\.hg\hgrc`` -- ``%USERPROFILE%\.hgrc`` -- ``%USERPROFILE%\Mercurial.ini`` -- ``%HOME%\.hgrc`` -- ``%HOME%\Mercurial.ini`` -- ``C:\Mercurial\Mercurial.ini`` -- ``HKEY_LOCAL_MACHINE\SOFTWARE\Mercurial`` -- ``<install-dir>\Mercurial.ini`` - -On Unix, these files are read: - -- ``<repo>/.hg/hgrc`` -- ``$HOME/.hgrc`` -- ``/etc/mercurial/hgrc`` -- ``/etc/mercurial/hgrc.d/*.rc`` -- ``<install-root>/etc/mercurial/hgrc`` -- ``<install-root>/etc/mercurial/hgrc.d/*.rc`` - -The configuration files for Mercurial use a simple ini-file format. A -configuration file consists of sections, led by a ``[section]`` header -and followed by ``name = value`` entries:: - - [ui] - username = Firstname Lastname <firstname.lastname@example.net> - verbose = True - -This above entries will be referred to as ``ui.username`` and -``ui.verbose``, respectively. Please see the hgrc man page for a full -description of the possible configuration values: - -- on Unix-like systems: ``man hgrc`` -- online: http://www.selenic.com/mercurial/hgrc.5.html
--- a/help/dates.txt Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -Some commands allow the user to specify a date, e.g.: - -- backout, commit, import, tag: Specify the commit date. -- log, revert, update: Select revision(s) by date. - -Many date formats are valid. Here are some examples: - -- ``Wed Dec 6 13:18:29 2006`` (local timezone assumed) -- ``Dec 6 13:18 -0600`` (year assumed, time offset provided) -- ``Dec 6 13:18 UTC`` (UTC and GMT are aliases for +0000) -- ``Dec 6`` (midnight) -- ``13:18`` (today assumed) -- ``3:39`` (3:39AM assumed) -- ``3:39pm`` (15:39) -- ``2006-12-06 13:18:29`` (ISO 8601 format) -- ``2006-12-6 13:18`` -- ``2006-12-6`` -- ``12-6`` -- ``12/6`` -- ``12/6/6`` (Dec 6 2006) - -Lastly, there is Mercurial's internal format: - -- ``1165432709 0`` (Wed Dec 6 13:18:29 2006 UTC) - -This is the internal representation format for dates. unixtime is the -number of seconds since the epoch (1970-01-01 00:00 UTC). offset is -the offset of the local timezone, in seconds west of UTC (negative if -the timezone is east of UTC). - -The log command also accepts date ranges: - -- ``<{datetime}`` - at or before a given date/time -- ``>{datetime}`` - on or after a given date/time -- ``{datetime} to {datetime}`` - a date range, inclusive -- ``-{days}`` - within a given number of days of today
--- a/help/diffs.txt Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,29 +0,0 @@ -Mercurial's default format for showing changes between two versions of -a file is compatible with the unified format of GNU diff, which can be -used by GNU patch and many other standard tools. - -While this standard format is often enough, it does not encode the -following information: - -- executable status and other permission bits -- copy or rename information -- changes in binary files -- creation or deletion of empty files - -Mercurial also supports the extended diff format from the git VCS -which addresses these limitations. The git diff format is not produced -by default because a few widespread tools still do not understand this -format. - -This means that when generating diffs from a Mercurial repository -(e.g. with "hg export"), you should be careful about things like file -copies and renames or other things mentioned above, because when -applying a standard diff to a different repository, this extra -information is lost. Mercurial's internal operations (like push and -pull) are not affected by this, because they use an internal binary -format for communicating changes. - -To make Mercurial produce the git extended diff format, use the --git -option available for many commands, or set 'git = True' in the [diff] -section of your hgrc. You do not need to set this option when -importing diffs in this format or using them in the mq extension.
--- a/help/environment.txt Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,76 +0,0 @@ -HG - Path to the 'hg' executable, automatically passed when running - hooks, extensions or external tools. If unset or empty, this is - the hg executable's name if it's frozen, or an executable named - 'hg' (with %PATHEXT% [defaulting to COM/EXE/BAT/CMD] extensions on - Windows) is searched. - -HGEDITOR - This is the name of the editor to run when committing. See EDITOR. - - (deprecated, use .hgrc) - -HGENCODING - This overrides the default locale setting detected by Mercurial. - This setting is used to convert data including usernames, - changeset descriptions, tag names, and branches. This setting can - be overridden with the --encoding command-line option. - -HGENCODINGMODE - This sets Mercurial's behavior for handling unknown characters - while transcoding user input. The default is "strict", which - causes Mercurial to abort if it can't map a character. Other - settings include "replace", which replaces unknown characters, and - "ignore", which drops them. This setting can be overridden with - the --encodingmode command-line option. - -HGMERGE - An executable to use for resolving merge conflicts. The program - will be executed with three arguments: local file, remote file, - ancestor file. - - (deprecated, use .hgrc) - -HGRCPATH - A list of files or directories to search for hgrc files. Item - separator is ":" on Unix, ";" on Windows. If HGRCPATH is not set, - platform default search path is used. If empty, only the .hg/hgrc - from the current repository is read. - - For each element in HGRCPATH: - - - if it's a directory, all files ending with .rc are added - - otherwise, the file itself will be added - -HGUSER - This is the string used as the author of a commit. If not set, - available values will be considered in this order: - - - HGUSER (deprecated) - - hgrc files from the HGRCPATH - - EMAIL - - interactive prompt - - LOGNAME (with ``@hostname`` appended) - - (deprecated, use .hgrc) - -EMAIL - May be used as the author of a commit; see HGUSER. - -LOGNAME - May be used as the author of a commit; see HGUSER. - -VISUAL - This is the name of the editor to use when committing. See EDITOR. - -EDITOR - Sometimes Mercurial needs to open a text file in an editor for a - user to modify, for example when writing commit messages. The - editor it uses is determined by looking at the environment - variables HGEDITOR, VISUAL and EDITOR, in that order. The first - non-empty one is chosen. If all of them are empty, the editor - defaults to 'vi'. - -PYTHONPATH - This is used by Python to find imported modules and may need to be - set appropriately if this Mercurial is not installed system-wide.
--- a/help/extensions.txt Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,33 +0,0 @@ -Mercurial has the ability to add new features through the use of -extensions. Extensions may add new commands, add options to -existing commands, change the default behavior of commands, or -implement hooks. - -Extensions are not loaded by default for a variety of reasons: -they can increase startup overhead; they may be meant for advanced -usage only; they may provide potentially dangerous abilities (such -as letting you destroy or modify history); they might not be ready -for prime time; or they may alter some usual behaviors of stock -Mercurial. It is thus up to the user to activate extensions as -needed. - -To enable the "foo" extension, either shipped with Mercurial or in -the Python search path, create an entry for it in your hgrc, like -this:: - - [extensions] - foo = - -You may also specify the full path to an extension:: - - [extensions] - myfeature = ~/.hgext/myfeature.py - -To explicitly disable an extension enabled in an hgrc of broader -scope, prepend its path with !:: - - [extensions] - # disabling extension bar residing in /path/to/extension/bar.py - hgext.bar = !/path/to/extension/bar.py - # ditto, but no path was supplied for extension baz - hgext.baz = !
--- a/help/multirevs.txt Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,13 +0,0 @@ -When Mercurial accepts more than one revision, they may be specified -individually, or provided as a topologically continuous range, -separated by the ":" character. - -The syntax of range notation is [BEGIN]:[END], where BEGIN and END are -revision identifiers. Both BEGIN and END are optional. If BEGIN is not -specified, it defaults to revision number 0. If END is not specified, -it defaults to the tip. The range ":" thus means "all revisions". - -If BEGIN is greater than END, revisions are treated in reverse order. - -A range acts as a closed interval. This means that a range of 3:5 -gives 3, 4 and 5. Similarly, a range of 9:6 gives 9, 8, 7, and 6.
--- a/help/patterns.txt Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,41 +0,0 @@ -Mercurial accepts several notations for identifying one or more files -at a time. - -By default, Mercurial treats filenames as shell-style extended glob -patterns. - -Alternate pattern notations must be specified explicitly. - -To use a plain path name without any pattern matching, start it with -``path:``. These path names must completely match starting at the -current repository root. - -To use an extended glob, start a name with ``glob:``. Globs are rooted -at the current directory; a glob such as ``*.c`` will only match files -in the current directory ending with ``.c``. - -The supported glob syntax extensions are ``**`` to match any string -across path separators and ``{a,b}`` to mean "a or b". - -To use a Perl/Python regular expression, start a name with ``re:``. -Regexp pattern matching is anchored at the root of the repository. - -Plain examples:: - - path:foo/bar a name bar in a directory named foo in the root - of the repository - path:path:name a file or directory named "path:name" - -Glob examples:: - - glob:*.c any name ending in ".c" in the current directory - *.c any name ending in ".c" in the current directory - **.c any name ending in ".c" in any subdirectory of the - current directory including itself. - foo/*.c any name ending in ".c" in the directory foo - foo/**.c any name ending in ".c" in any subdirectory of foo - including itself. - -Regexp examples:: - - re:.*\.c$ any name ending in ".c", anywhere in the repository
--- a/help/revisions.txt Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,29 +0,0 @@ -Mercurial supports several ways to specify individual revisions. - -A plain integer is treated as a revision number. Negative integers are -treated as sequential offsets from the tip, with -1 denoting the tip, --2 denoting the revision prior to the tip, and so forth. - -A 40-digit hexadecimal string is treated as a unique revision -identifier. - -A hexadecimal string less than 40 characters long is treated as a -unique revision identifier and is referred to as a short-form -identifier. A short-form identifier is only valid if it is the prefix -of exactly one full-length identifier. - -Any other string is treated as a tag or branch name. A tag name is a -symbolic name associated with a revision identifier. A branch name -denotes the tipmost revision of that branch. Tag and branch names must -not contain the ":" character. - -The reserved name "tip" is a special tag that always identifies the -most recent revision. - -The reserved name "null" indicates the null revision. This is the -revision of an empty repository, and the parent of revision 0. - -The reserved name "." indicates the working directory parent. If no -working directory is checked out, it is equivalent to null. If an -uncommitted merge is in progress, "." is the revision of the first -parent.
--- a/help/templates.txt Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,113 +0,0 @@ -Mercurial allows you to customize output of commands through -templates. You can either pass in a template from the command -line, via the --template option, or select an existing -template-style (--style). - -You can customize output for any "log-like" command: log, -outgoing, incoming, tip, parents, heads and glog. - -Three styles are packaged with Mercurial: default (the style used -when no explicit preference is passed), compact and changelog. -Usage:: - - $ hg log -r1 --style changelog - -A template is a piece of text, with markup to invoke variable -expansion:: - - $ hg log -r1 --template "{node}\n" - b56ce7b07c52de7d5fd79fb89701ea538af65746 - -Strings in curly braces are called keywords. The availability of -keywords depends on the exact context of the templater. These -keywords are usually available for templating a log-like command: - -:author: String. The unmodified author of the changeset. -:branches: String. The name of the branch on which the changeset - was committed. Will be empty if the branch name was - default. -:date: Date information. The date when the changeset was - committed. -:desc: String. The text of the changeset description. -:diffstat: String. Statistics of changes with the following - format: "modified files: +added/-removed lines" -:files: List of strings. All files modified, added, or removed - by this changeset. -:file_adds: List of strings. Files added by this changeset. -:file_mods: List of strings. Files modified by this changeset. -:file_dels: List of strings. Files removed by this changeset. -:node: String. The changeset identification hash, as a - 40-character hexadecimal string. -:parents: List of strings. The parents of the changeset. -:rev: Integer. The repository-local changeset revision - number. -:tags: List of strings. Any tags associated with the - changeset. -:latesttag: String. Most recent global tag in the ancestors of this - changeset. -:latesttagdistance: Integer. Longest path to the latest tag. - -The "date" keyword does not produce human-readable output. If you -want to use a date in your output, you can use a filter to process -it. Filters are functions which return a string based on the input -variable. You can also use a chain of filters to get the desired -output:: - - $ hg tip --template "{date|isodate}\n" - 2008-08-21 18:22 +0000 - -List of filters: - -:addbreaks: Any text. Add an XHTML "<br />" tag before the end of - every line except the last. -:age: Date. Returns a human-readable date/time difference - between the given date/time and the current - date/time. -:basename: Any text. Treats the text as a path, and returns the - last component of the path after splitting by the - path separator (ignoring trailing separators). For - example, "foo/bar/baz" becomes "baz" and "foo/bar//" - becomes "bar". -:stripdir: Treat the text as path and strip a directory level, - if possible. For example, "foo" and "foo/bar" becomes - "foo". -:date: Date. Returns a date in a Unix date format, including - the timezone: "Mon Sep 04 15:13:13 2006 0700". -:domain: Any text. Finds the first string that looks like an - email address, and extracts just the domain - component. Example: ``User <user@example.com>`` becomes - ``example.com``. -:email: Any text. Extracts the first string that looks like - an email address. Example: ``User <user@example.com>`` - becomes ``user@example.com``. -:escape: Any text. Replaces the special XML/XHTML characters - "&", "<" and ">" with XML entities. -:fill68: Any text. Wraps the text to fit in 68 columns. -:fill76: Any text. Wraps the text to fit in 76 columns. -:firstline: Any text. Returns the first line of text. -:nonempty: Any text. Returns '(none)' if the string is empty. -:hgdate: Date. Returns the date as a pair of numbers: - "1157407993 25200" (Unix timestamp, timezone offset). -:isodate: Date. Returns the date in ISO 8601 format: - "2009-08-18 13:00 +0200". -:isodatesec: Date. Returns the date in ISO 8601 format, including - seconds: "2009-08-18 13:00:13 +0200". See also the - rfc3339date filter. -:localdate: Date. Converts a date to local date. -:obfuscate: Any text. Returns the input text rendered as a - sequence of XML entities. -:person: Any text. Returns the text before an email address. -:rfc822date: Date. Returns a date using the same format used in - email headers: "Tue, 18 Aug 2009 13:00:13 +0200". -:rfc3339date: Date. Returns a date using the Internet date format - specified in RFC 3339: "2009-08-18T13:00:13+02:00". -:short: Changeset hash. Returns the short form of a changeset - hash, i.e. a 12-byte hexadecimal string. -:shortdate: Date. Returns a date like "2006-09-18". -:strip: Any text. Strips all leading and trailing whitespace. -:tabindent: Any text. Returns the text, with every line except - the first starting with a tab character. -:urlescape: Any text. Escapes all "special" characters. For - example, "foo bar" becomes "foo%20bar". -:user: Any text. Returns the user portion of an email - address.
--- a/help/urls.txt Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,63 +0,0 @@ -Valid URLs are of the form:: - - local/filesystem/path[#revision] - file://local/filesystem/path[#revision] - http://[user[:pass]@]host[:port]/[path][#revision] - https://[user[:pass]@]host[:port]/[path][#revision] - ssh://[user[:pass]@]host[:port]/[path][#revision] - -Paths in the local filesystem can either point to Mercurial -repositories or to bundle files (as created by 'hg bundle' or 'hg -incoming --bundle'). - -An optional identifier after # indicates a particular branch, tag, or -changeset to use from the remote repository. See also 'hg help -revisions'. - -Some features, such as pushing to http:// and https:// URLs are only -possible if the feature is explicitly enabled on the remote Mercurial -server. - -Some notes about using SSH with Mercurial: - -- SSH requires an accessible shell account on the destination machine - and a copy of hg in the remote path or specified with as remotecmd. -- path is relative to the remote user's home directory by default. Use - an extra slash at the start of a path to specify an absolute path:: - - ssh://example.com//tmp/repository - -- Mercurial doesn't use its own compression via SSH; the right thing - to do is to configure it in your ~/.ssh/config, e.g.:: - - Host *.mylocalnetwork.example.com - Compression no - Host * - Compression yes - - Alternatively specify "ssh -C" as your ssh command in your hgrc or - with the --ssh command line option. - -These URLs can all be stored in your hgrc with path aliases under the -[paths] section like so:: - - [paths] - alias1 = URL1 - alias2 = URL2 - ... - -You can then use the alias for any command that uses a URL (for -example 'hg pull alias1' will be treated as 'hg pull URL1'). - -Two path aliases are special because they are used as defaults when -you do not provide the URL to a command: - -default: - When you create a repository with hg clone, the clone command saves - the location of the source repository as the new repository's - 'default' path. This is then used when you omit path from push- and - pull-like commands (including incoming and outgoing). - -default-push: - The push command will look for a path named 'default-push', and - prefer it over 'default' if both are defined.
--- a/hgext/color.py Tue Dec 08 23:23:59 2009 +0100 +++ b/hgext/color.py Tue Dec 08 23:36:06 2009 +0100 @@ -213,6 +213,16 @@ finally: ui.write = oldwrite +def colorchurn(orig, ui, repo, *pats, **opts): + '''run the churn command with colored output''' + if not opts.get('diffstat'): + return orig(ui, repo, *pats, **opts) + oldwrite = extensions.wrapfunction(ui, 'write', colordiffstat) + try: + orig(ui, repo, *pats, **opts) + finally: + ui.write = oldwrite + _diff_prefixes = [('diff', 'diffline'), ('copy', 'extended'), ('rename', 'extended'), @@ -259,7 +269,11 @@ if mq and rec: _setupcmd(ui, 'qrecord', rec.cmdtable, colordiff, _diff_effects) - + try: + churn = extensions.find('churn') + _setupcmd(ui, 'churn', churn.cmdtable, colorchurn, _diff_effects) + except KeyError: + churn = None def _setupcmd(ui, cmd, table, func, effectsmap): '''patch in command to command table and load effect map'''
--- a/hgext/convert/convcmd.py Tue Dec 08 23:23:59 2009 +0100 +++ b/hgext/convert/convcmd.py Tue Dec 08 23:36:06 2009 +0100 @@ -48,6 +48,8 @@ def convertsource(ui, path, type, rev): exceptions = [] + if type and type not in [s[0] for s in source_converters]: + raise util.Abort(_('%s: invalid source repository type') % type) for name, source, sortmode in source_converters: try: if not type or name == type: @@ -60,6 +62,8 @@ raise util.Abort(_('%s: missing or unsupported repository') % path) def convertsink(ui, path, type): + if type and type not in [s[0] for s in sink_converters]: + raise util.Abort(_('%s: invalid destination repository type') % type) for name, sink in sink_converters: try: if not type or name == type:
--- a/hgext/convert/filemap.py Tue Dec 08 23:23:59 2009 +0100 +++ b/hgext/convert/filemap.py Tue Dec 08 23:36:06 2009 +0100 @@ -10,11 +10,11 @@ from common import SKIPREV, converter_source def rpairs(name): - yield '.', name e = len(name) while e != -1: yield name[:e], name[e+1:] e = name.rfind('/', 0, e) + yield '.', name class filemapper(object): '''Map and filter filenames when importing. @@ -82,7 +82,7 @@ exc = self.lookup(name, self.exclude)[0] else: exc = '' - if not inc or exc: + if (not self.include and exc) or (len(inc) <= len(exc)): return None newpre, pre, suf = self.lookup(name, self.rename) if newpre:
--- a/hgext/extdiff.py Tue Dec 08 23:23:59 2009 +0100 +++ b/hgext/extdiff.py Tue Dec 08 23:36:06 2009 +0100 @@ -146,10 +146,10 @@ if node2: dir2 = snapshot(ui, repo, modadd, node2, tmproot)[0] elif len(common) > 1: - #we only actually need to get the files to copy back to the working - #dir in this case (because the other cases are: diffing 2 revisions - #or single file -- in which case the file is already directly passed - #to the diff tool). + #we only actually need to get the files to copy back to + #the working dir in this case (because the other cases + #are: diffing 2 revisions or single file -- in which case + #the file is already directly passed to the diff tool). dir2, fns_and_mtime = snapshot(ui, repo, modadd, None, tmproot) else: # This lets the diff tool open the changed file directly @@ -169,8 +169,9 @@ dir1b = os.devnull dir2 = os.path.join(dir2root, dir2, common_file) - # Function to quote file/dir names in the argument string - # When not operating in 3-way mode, an empty string is returned for parent2 + # Function to quote file/dir names in the argument string. + # When not operating in 3-way mode, an empty string is + # returned for parent2 replace = dict(parent=dir1a, parent1=dir1a, parent2=dir1b, child=dir2) def quote(match): key = match.group()[1:] @@ -258,13 +259,14 @@ doc = _('''\ use %(path)s to diff repository (or selected files) - Show differences between revisions for the specified files, using the - %(path)s program. + Show differences between revisions for the specified files, using + the %(path)s program. - When two revision arguments are given, then changes are shown between - those revisions. If only one revision is specified then that revision is - compared to the working directory, and, when no revisions are specified, - the working directory files are compared to its parent.\ + When two revision arguments are given, then changes are shown + between those revisions. If only one revision is specified then + that revision is compared to the working directory, and, when no + revisions are specified, the working directory files are compared + to its parent.\ ''') % dict(path=util.uirepr(path)) # We must translate the docstring right away since it is
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/hgext/inotify/linuxserver.py Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,429 @@ +# linuxserver.py - inotify status server for linux +# +# Copyright 2006, 2007, 2008 Bryan O'Sullivan <bos@serpentine.com> +# Copyright 2007, 2008 Brendan Cully <brendan@kublai.com> +# +# This software may be used and distributed according to the terms of the +# GNU General Public License version 2, incorporated herein by reference. + +from mercurial.i18n import _ +from mercurial import osutil, util +import common +import server +import errno, os, select, stat, sys, time + +try: + import linux as inotify + from linux import watcher +except ImportError: + raise + +def walkrepodirs(dirstate, absroot): + '''Iterate over all subdirectories of this repo. + Exclude the .hg directory, any nested repos, and ignored dirs.''' + def walkit(dirname, top): + fullpath = server.join(absroot, dirname) + try: + for name, kind in osutil.listdir(fullpath): + if kind == stat.S_IFDIR: + if name == '.hg': + if not top: + return + else: + d = server.join(dirname, name) + if dirstate._ignore(d): + continue + for subdir in walkit(d, False): + yield subdir + except OSError, err: + if err.errno not in server.walk_ignored_errors: + raise + yield fullpath + + return walkit('', True) + +def _explain_watch_limit(ui, dirstate, rootabs): + path = '/proc/sys/fs/inotify/max_user_watches' + try: + limit = int(file(path).read()) + except IOError, err: + if err.errno != errno.ENOENT: + raise + raise util.Abort(_('this system does not seem to ' + 'support inotify')) + ui.warn(_('*** the current per-user limit on the number ' + 'of inotify watches is %s\n') % limit) + ui.warn(_('*** this limit is too low to watch every ' + 'directory in this repository\n')) + ui.warn(_('*** counting directories: ')) + ndirs = len(list(walkrepodirs(dirstate, rootabs))) + ui.warn(_('found %d\n') % ndirs) + newlimit = min(limit, 1024) + while newlimit < ((limit + ndirs) * 1.1): + newlimit *= 2 + ui.warn(_('*** to raise the limit from %d to %d (run as root):\n') % + (limit, newlimit)) + ui.warn(_('*** echo %d > %s\n') % (newlimit, path)) + raise util.Abort(_('cannot watch %s until inotify watch limit is raised') + % rootabs) + +class pollable(object): + """ + Interface to support polling. + The file descriptor returned by fileno() is registered to a polling + object. + Usage: + Every tick, check if an event has happened since the last tick: + * If yes, call handle_events + * If no, call handle_timeout + """ + poll_events = select.POLLIN + instances = {} + poll = select.poll() + + def fileno(self): + raise NotImplementedError + + def handle_events(self, events): + raise NotImplementedError + + def handle_timeout(self): + raise NotImplementedError + + def shutdown(self): + raise NotImplementedError + + def register(self, timeout): + fd = self.fileno() + + pollable.poll.register(fd, pollable.poll_events) + pollable.instances[fd] = self + + self.registered = True + self.timeout = timeout + + def unregister(self): + pollable.poll.unregister(self) + self.registered = False + + @classmethod + def run(cls): + while True: + timeout = None + timeobj = None + for obj in cls.instances.itervalues(): + if obj.timeout is not None and (timeout is None or obj.timeout < timeout): + timeout, timeobj = obj.timeout, obj + try: + events = cls.poll.poll(timeout) + except select.error, err: + if err[0] == errno.EINTR: + continue + raise + if events: + by_fd = {} + for fd, event in events: + by_fd.setdefault(fd, []).append(event) + + for fd, events in by_fd.iteritems(): + cls.instances[fd].handle_pollevents(events) + + elif timeobj: + timeobj.handle_timeout() + +def eventaction(code): + """ + Decorator to help handle events in repowatcher + """ + def decorator(f): + def wrapper(self, wpath): + if code == 'm' and wpath in self.lastevent and \ + self.lastevent[wpath] in 'cm': + return + self.lastevent[wpath] = code + self.timeout = 250 + + f(self, wpath) + + wrapper.func_name = f.func_name + return wrapper + return decorator + +class repowatcher(server.repowatcher, pollable): + """ + Watches inotify events + """ + mask = ( + inotify.IN_ATTRIB | + inotify.IN_CREATE | + inotify.IN_DELETE | + inotify.IN_DELETE_SELF | + inotify.IN_MODIFY | + inotify.IN_MOVED_FROM | + inotify.IN_MOVED_TO | + inotify.IN_MOVE_SELF | + inotify.IN_ONLYDIR | + inotify.IN_UNMOUNT | + 0) + + def __init__(self, ui, dirstate, root): + server.repowatcher.__init__(self, ui, dirstate, root) + + self.lastevent = {} + try: + self.watcher = watcher.watcher() + except OSError, err: + raise util.Abort(_('inotify service not available: %s') % + err.strerror) + self.threshold = watcher.threshold(self.watcher) + self.fileno = self.watcher.fileno + self.register(timeout=None) + + self.handle_timeout() + self.scan() + + def event_time(self): + last = self.last_event + now = time.time() + self.last_event = now + + if last is None: + return 'start' + delta = now - last + if delta < 5: + return '+%.3f' % delta + if delta < 50: + return '+%.2f' % delta + return '+%.1f' % delta + + def add_watch(self, path, mask): + if not path: + return + if self.watcher.path(path) is None: + if self.ui.debugflag: + self.ui.note(_('watching %r\n') % path[self.prefixlen:]) + try: + self.watcher.add(path, mask) + except OSError, err: + if err.errno in (errno.ENOENT, errno.ENOTDIR): + return + if err.errno != errno.ENOSPC: + raise + _explain_watch_limit(self.ui, self.dirstate, self.wprefix) + + def setup(self): + self.ui.note(_('watching directories under %r\n') % self.wprefix) + self.add_watch(self.wprefix + '.hg', inotify.IN_DELETE) + self.check_dirstate() + + def scan(self, topdir=''): + ds = self.dirstate._map.copy() + self.add_watch(server.join(self.wprefix, topdir), self.mask) + for root, dirs, files in server.walk(self.dirstate, self.wprefix, + topdir): + for d in dirs: + self.add_watch(server.join(root, d), self.mask) + wroot = root[self.prefixlen:] + for fn in files: + wfn = server.join(wroot, fn) + self.updatefile(wfn, self.getstat(wfn)) + ds.pop(wfn, None) + wtopdir = topdir + if wtopdir and wtopdir[-1] != '/': + wtopdir += '/' + for wfn, state in ds.iteritems(): + if not wfn.startswith(wtopdir): + continue + try: + st = self.stat(wfn) + except OSError: + status = state[0] + self.deletefile(wfn, status) + else: + self.updatefile(wfn, st) + self.check_deleted('!') + self.check_deleted('r') + + @eventaction('c') + def created(self, wpath): + if wpath == '.hgignore': + self.update_hgignore() + try: + st = self.stat(wpath) + if stat.S_ISREG(st[0]): + self.updatefile(wpath, st) + except OSError: + pass + + @eventaction('m') + def modified(self, wpath): + if wpath == '.hgignore': + self.update_hgignore() + try: + st = self.stat(wpath) + if stat.S_ISREG(st[0]): + if self.dirstate[wpath] in 'lmn': + self.updatefile(wpath, st) + except OSError: + pass + + @eventaction('d') + def deleted(self, wpath): + if wpath == '.hgignore': + self.update_hgignore() + elif wpath.startswith('.hg/'): + if wpath == '.hg/wlock': + self.check_dirstate() + return + + self.deletefile(wpath, self.dirstate[wpath]) + + def process_create(self, wpath, evt): + if self.ui.debugflag: + self.ui.note(_('%s event: created %s\n') % + (self.event_time(), wpath)) + + if evt.mask & inotify.IN_ISDIR: + self.scan(wpath) + else: + self.created(wpath) + + def process_delete(self, wpath, evt): + if self.ui.debugflag: + self.ui.note(_('%s event: deleted %s\n') % + (self.event_time(), wpath)) + + if evt.mask & inotify.IN_ISDIR: + tree = self.tree.dir(wpath) + todelete = [wfn for wfn, ignore in tree.walk('?')] + for fn in todelete: + self.deletefile(fn, '?') + self.scan(wpath) + else: + self.deleted(wpath) + + def process_modify(self, wpath, evt): + if self.ui.debugflag: + self.ui.note(_('%s event: modified %s\n') % + (self.event_time(), wpath)) + + if not (evt.mask & inotify.IN_ISDIR): + self.modified(wpath) + + def process_unmount(self, evt): + self.ui.warn(_('filesystem containing %s was unmounted\n') % + evt.fullpath) + sys.exit(0) + + def handle_pollevents(self, events): + if self.ui.debugflag: + self.ui.note(_('%s readable: %d bytes\n') % + (self.event_time(), self.threshold.readable())) + if not self.threshold(): + if self.registered: + if self.ui.debugflag: + self.ui.note(_('%s below threshold - unhooking\n') % + (self.event_time())) + self.unregister() + self.timeout = 250 + else: + self.read_events() + + def read_events(self, bufsize=None): + events = self.watcher.read(bufsize) + if self.ui.debugflag: + self.ui.note(_('%s reading %d events\n') % + (self.event_time(), len(events))) + for evt in events: + assert evt.fullpath.startswith(self.wprefix) + wpath = evt.fullpath[self.prefixlen:] + + # paths have been normalized, wpath never ends with a '/' + + if wpath.startswith('.hg/') and evt.mask & inotify.IN_ISDIR: + # ignore subdirectories of .hg/ (merge, patches...) + continue + + if evt.mask & inotify.IN_UNMOUNT: + self.process_unmount(wpath, evt) + elif evt.mask & (inotify.IN_MODIFY | inotify.IN_ATTRIB): + self.process_modify(wpath, evt) + elif evt.mask & (inotify.IN_DELETE | inotify.IN_DELETE_SELF | + inotify.IN_MOVED_FROM): + self.process_delete(wpath, evt) + elif evt.mask & (inotify.IN_CREATE | inotify.IN_MOVED_TO): + self.process_create(wpath, evt) + + self.lastevent.clear() + + def handle_timeout(self): + if not self.registered: + if self.ui.debugflag: + self.ui.note(_('%s hooking back up with %d bytes readable\n') % + (self.event_time(), self.threshold.readable())) + self.read_events(0) + self.register(timeout=None) + + self.timeout = None + + def shutdown(self): + self.watcher.close() + + def debug(self): + """ + Returns a sorted list of relatives paths currently watched, + for debugging purposes. + """ + return sorted(tuple[0][self.prefixlen:] for tuple in self.watcher) + +class socketlistener(server.socketlistener, pollable): + """ + Listens for client queries on unix socket inotify.sock + """ + def __init__(self, ui, root, repowatcher, timeout): + server.socketlistener.__init__(self, ui, root, repowatcher, timeout) + self.register(timeout=timeout) + + def handle_timeout(self): + pass + + def handle_pollevents(self, events): + for e in events: + self.accept_connection() + + def shutdown(self): + self.sock.close() + try: + os.unlink(self.sockpath) + if self.realsockpath: + os.unlink(self.realsockpath) + os.rmdir(os.path.dirname(self.realsockpath)) + except OSError, err: + if err.errno != errno.ENOENT: + raise + + def answer_stat_query(self, cs): + if self.repowatcher.timeout: + # We got a query while a rescan is pending. Make sure we + # rescan before responding, or we could give back a wrong + # answer. + self.repowatcher.handle_timeout() + return server.socketlistener.answer_stat_query(self, cs) + +class master(object): + def __init__(self, ui, dirstate, root, timeout=None): + self.ui = ui + self.repowatcher = repowatcher(ui, dirstate, root) + self.socketlistener = socketlistener(ui, root, self.repowatcher, + timeout) + + def shutdown(self): + for obj in pollable.instances.itervalues(): + obj.shutdown() + + def run(self): + self.repowatcher.setup() + self.ui.note(_('finished setup\n')) + if os.getenv('TIME_STARTUP'): + sys.exit(0) + pollable.run()
--- a/hgext/inotify/server.py Tue Dec 08 23:23:59 2009 +0100 +++ b/hgext/inotify/server.py Tue Dec 08 23:36:06 2009 +0100 @@ -1,7 +1,6 @@ -# server.py - inotify status server +# server.py - common entry point for inotify status server # -# Copyright 2006, 2007, 2008 Bryan O'Sullivan <bos@serpentine.com> -# Copyright 2007, 2008 Brendan Cully <brendan@kublai.com> +# Copyright 2009 Nicolas Dumazet <nicdumz@gmail.com> # # This software may be used and distributed according to the terms of the # GNU General Public License version 2, incorporated herein by reference. @@ -9,13 +8,14 @@ from mercurial.i18n import _ from mercurial import cmdutil, osutil, util import common -import errno, os, select, socket, stat, struct, sys, tempfile, time -try: - import linux as inotify - from linux import watcher -except ImportError: - raise +import errno +import os +import socket +import stat +import struct +import sys +import tempfile class AlreadyStartedException(Exception): pass @@ -34,30 +34,6 @@ walk_ignored_errors = (errno.ENOENT, errno.ENAMETOOLONG) -def walkrepodirs(dirstate, absroot): - '''Iterate over all subdirectories of this repo. - Exclude the .hg directory, any nested repos, and ignored dirs.''' - def walkit(dirname, top): - fullpath = join(absroot, dirname) - try: - for name, kind in osutil.listdir(fullpath): - if kind == stat.S_IFDIR: - if name == '.hg': - if not top: - return - else: - d = join(dirname, name) - if dirstate._ignore(d): - continue - for subdir in walkit(d, False): - yield subdir - except OSError, err: - if err.errno not in walk_ignored_errors: - raise - yield fullpath - - return walkit('', True) - def walk(dirstate, absroot, root): '''Like os.walk, but only yields regular files.''' @@ -94,113 +70,6 @@ return walkit(root, root == '') -def _explain_watch_limit(ui, dirstate, rootabs): - path = '/proc/sys/fs/inotify/max_user_watches' - try: - limit = int(file(path).read()) - except IOError, err: - if err.errno != errno.ENOENT: - raise - raise util.Abort(_('this system does not seem to ' - 'support inotify')) - ui.warn(_('*** the current per-user limit on the number ' - 'of inotify watches is %s\n') % limit) - ui.warn(_('*** this limit is too low to watch every ' - 'directory in this repository\n')) - ui.warn(_('*** counting directories: ')) - ndirs = len(list(walkrepodirs(dirstate, rootabs))) - ui.warn(_('found %d\n') % ndirs) - newlimit = min(limit, 1024) - while newlimit < ((limit + ndirs) * 1.1): - newlimit *= 2 - ui.warn(_('*** to raise the limit from %d to %d (run as root):\n') % - (limit, newlimit)) - ui.warn(_('*** echo %d > %s\n') % (newlimit, path)) - raise util.Abort(_('cannot watch %s until inotify watch limit is raised') - % rootabs) - -class pollable(object): - """ - Interface to support polling. - The file descriptor returned by fileno() is registered to a polling - object. - Usage: - Every tick, check if an event has happened since the last tick: - * If yes, call handle_events - * If no, call handle_timeout - """ - poll_events = select.POLLIN - instances = {} - poll = select.poll() - - def fileno(self): - raise NotImplementedError - - def handle_events(self, events): - raise NotImplementedError - - def handle_timeout(self): - raise NotImplementedError - - def shutdown(self): - raise NotImplementedError - - def register(self, timeout): - fd = self.fileno() - - pollable.poll.register(fd, pollable.poll_events) - pollable.instances[fd] = self - - self.registered = True - self.timeout = timeout - - def unregister(self): - pollable.poll.unregister(self) - self.registered = False - - @classmethod - def run(cls): - while True: - timeout = None - timeobj = None - for obj in cls.instances.itervalues(): - if obj.timeout is not None and (timeout is None or obj.timeout < timeout): - timeout, timeobj = obj.timeout, obj - try: - events = cls.poll.poll(timeout) - except select.error, err: - if err[0] == errno.EINTR: - continue - raise - if events: - by_fd = {} - for fd, event in events: - by_fd.setdefault(fd, []).append(event) - - for fd, events in by_fd.iteritems(): - cls.instances[fd].handle_pollevents(events) - - elif timeobj: - timeobj.handle_timeout() - -def eventaction(code): - """ - Decorator to help handle events in repowatcher - """ - def decorator(f): - def wrapper(self, wpath): - if code == 'm' and wpath in self.lastevent and \ - self.lastevent[wpath] in 'cm': - return - self.lastevent[wpath] = code - self.timeout = 250 - - f(self, wpath) - - wrapper.func_name = f.func_name - return wrapper - return decorator - class directory(object): """ Representing a directory @@ -293,23 +162,11 @@ # path is not tracked pass -class repowatcher(pollable): +class repowatcher(object): """ Watches inotify events """ statuskeys = 'almr!?' - mask = ( - inotify.IN_ATTRIB | - inotify.IN_CREATE | - inotify.IN_DELETE | - inotify.IN_DELETE_SELF | - inotify.IN_MODIFY | - inotify.IN_MOVED_FROM | - inotify.IN_MOVED_TO | - inotify.IN_MOVE_SELF | - inotify.IN_ONLYDIR | - inotify.IN_UNMOUNT | - 0) def __init__(self, ui, dirstate, root): self.ui = ui @@ -317,41 +174,18 @@ self.wprefix = join(root, '') self.prefixlen = len(self.wprefix) - try: - self.watcher = watcher.watcher() - except OSError, err: - raise util.Abort(_('inotify service not available: %s') % - err.strerror) - self.threshold = watcher.threshold(self.watcher) - self.fileno = self.watcher.fileno self.tree = directory() self.statcache = {} self.statustrees = dict([(s, directory()) for s in self.statuskeys]) + self.ds_info = self.dirstate_info() + self.last_event = None - self.lastevent = {} - self.register(timeout=None) - - self.ds_info = self.dirstate_info() - self.handle_timeout() - self.scan() - - def event_time(self): - last = self.last_event - now = time.time() - self.last_event = now - - if last is None: - return 'start' - delta = now - last - if delta < 5: - return '+%.3f' % delta - if delta < 50: - return '+%.2f' % delta - return '+%.1f' % delta + def handle_timeout(self): + pass def dirstate_info(self): try: @@ -362,26 +196,6 @@ raise return 0, 0 - def add_watch(self, path, mask): - if not path: - return - if self.watcher.path(path) is None: - if self.ui.debugflag: - self.ui.note(_('watching %r\n') % path[self.prefixlen:]) - try: - self.watcher.add(path, mask) - except OSError, err: - if err.errno in (errno.ENOENT, errno.ENOTDIR): - return - if err.errno != errno.ENOSPC: - raise - _explain_watch_limit(self.ui, self.dirstate, self.wprefix) - - def setup(self): - self.ui.note(_('watching directories under %r\n') % self.wprefix) - self.add_watch(self.wprefix + '.hg', inotify.IN_DELETE) - self.check_dirstate() - def filestatus(self, fn, st): try: type_, mode, size, time = self.dirstate._map[fn][:4] @@ -455,7 +269,6 @@ if newstatus != 'n': self.statustrees[newstatus].dir(root).files[fn] = newstatus - def check_deleted(self, key): # Files that had been deleted but were present in the dirstate # may have vanished from the dirstate; we must clean them up. @@ -468,33 +281,6 @@ del self.statustrees[key].dir(root).files[fn] del self.tree.dir(root).files[fn] - def scan(self, topdir=''): - ds = self.dirstate._map.copy() - self.add_watch(join(self.wprefix, topdir), self.mask) - for root, dirs, files in walk(self.dirstate, self.wprefix, topdir): - for d in dirs: - self.add_watch(join(root, d), self.mask) - wroot = root[self.prefixlen:] - for fn in files: - wfn = join(wroot, fn) - self.updatefile(wfn, self.getstat(wfn)) - ds.pop(wfn, None) - wtopdir = topdir - if wtopdir and wtopdir[-1] != '/': - wtopdir += '/' - for wfn, state in ds.iteritems(): - if not wfn.startswith(wtopdir): - continue - try: - st = self.stat(wfn) - except OSError: - status = state[0] - self.deletefile(wfn, status) - else: - self.updatefile(wfn, st) - self.check_deleted('!') - self.check_deleted('r') - def check_dirstate(self): ds_info = self.dirstate_info() if ds_info == self.ds_info: @@ -502,11 +288,9 @@ self.ds_info = ds_info if not self.ui.debugflag: self.last_event = None - self.ui.note(_('%s dirstate reload\n') % self.event_time()) self.dirstate.invalidate() self.handle_timeout() self.scan() - self.ui.note(_('%s end dirstate reload\n') % self.event_time()) def update_hgignore(self): # An update of the ignore file can potentially change the @@ -545,139 +329,7 @@ self.statcache.pop(wpath, None) raise - @eventaction('c') - def created(self, wpath): - if wpath == '.hgignore': - self.update_hgignore() - try: - st = self.stat(wpath) - if stat.S_ISREG(st[0]): - self.updatefile(wpath, st) - except OSError: - pass - - @eventaction('m') - def modified(self, wpath): - if wpath == '.hgignore': - self.update_hgignore() - try: - st = self.stat(wpath) - if stat.S_ISREG(st[0]): - if self.dirstate[wpath] in 'lmn': - self.updatefile(wpath, st) - except OSError: - pass - - @eventaction('d') - def deleted(self, wpath): - if wpath == '.hgignore': - self.update_hgignore() - elif wpath.startswith('.hg/'): - if wpath == '.hg/wlock': - self.check_dirstate() - return - - self.deletefile(wpath, self.dirstate[wpath]) - - def process_create(self, wpath, evt): - if self.ui.debugflag: - self.ui.note(_('%s event: created %s\n') % - (self.event_time(), wpath)) - - if evt.mask & inotify.IN_ISDIR: - self.scan(wpath) - else: - self.created(wpath) - - def process_delete(self, wpath, evt): - if self.ui.debugflag: - self.ui.note(_('%s event: deleted %s\n') % - (self.event_time(), wpath)) - - if evt.mask & inotify.IN_ISDIR: - tree = self.tree.dir(wpath) - todelete = [wfn for wfn, ignore in tree.walk('?')] - for fn in todelete: - self.deletefile(fn, '?') - self.scan(wpath) - else: - self.deleted(wpath) - - def process_modify(self, wpath, evt): - if self.ui.debugflag: - self.ui.note(_('%s event: modified %s\n') % - (self.event_time(), wpath)) - - if not (evt.mask & inotify.IN_ISDIR): - self.modified(wpath) - - def process_unmount(self, evt): - self.ui.warn(_('filesystem containing %s was unmounted\n') % - evt.fullpath) - sys.exit(0) - - def handle_pollevents(self, events): - if self.ui.debugflag: - self.ui.note(_('%s readable: %d bytes\n') % - (self.event_time(), self.threshold.readable())) - if not self.threshold(): - if self.registered: - if self.ui.debugflag: - self.ui.note(_('%s below threshold - unhooking\n') % - (self.event_time())) - self.unregister() - self.timeout = 250 - else: - self.read_events() - - def read_events(self, bufsize=None): - events = self.watcher.read(bufsize) - if self.ui.debugflag: - self.ui.note(_('%s reading %d events\n') % - (self.event_time(), len(events))) - for evt in events: - assert evt.fullpath.startswith(self.wprefix) - wpath = evt.fullpath[self.prefixlen:] - - # paths have been normalized, wpath never ends with a '/' - - if wpath.startswith('.hg/') and evt.mask & inotify.IN_ISDIR: - # ignore subdirectories of .hg/ (merge, patches...) - continue - - if evt.mask & inotify.IN_UNMOUNT: - self.process_unmount(wpath, evt) - elif evt.mask & (inotify.IN_MODIFY | inotify.IN_ATTRIB): - self.process_modify(wpath, evt) - elif evt.mask & (inotify.IN_DELETE | inotify.IN_DELETE_SELF | - inotify.IN_MOVED_FROM): - self.process_delete(wpath, evt) - elif evt.mask & (inotify.IN_CREATE | inotify.IN_MOVED_TO): - self.process_create(wpath, evt) - - self.lastevent.clear() - - def handle_timeout(self): - if not self.registered: - if self.ui.debugflag: - self.ui.note(_('%s hooking back up with %d bytes readable\n') % - (self.event_time(), self.threshold.readable())) - self.read_events(0) - self.register(timeout=None) - - self.timeout = None - - def shutdown(self): - self.watcher.close() - - def debug(self): - """ - Returns a sorted list of relatives paths currently watched, - for debugging purposes. - """ - return sorted(tuple[0][self.prefixlen:] for tuple in self.watcher) - -class server(pollable): +class socketlistener(object): """ Listens for client queries on unix socket inotify.sock """ @@ -718,10 +370,6 @@ raise self.sock.listen(5) self.fileno = self.sock.fileno - self.register(timeout=timeout) - - def handle_timeout(self): - pass def answer_stat_query(self, cs): names = cs.read().split('\0') @@ -730,12 +378,6 @@ self.ui.note(_('answering query for %r\n') % states) - if self.repowatcher.timeout: - # We got a query while a rescan is pending. Make sure we - # rescan before responding, or we could give back a wrong - # answer. - self.repowatcher.handle_timeout() - visited = set() if not names: def genresult(states, tree): @@ -764,11 +406,7 @@ def answer_dbug_query(self): return ['\0'.join(self.repowatcher.debug())] - def handle_pollevents(self, events): - for e in events: - self.handle_pollevent() - - def handle_pollevent(self): + def accept_connection(self): sock, addr = self.sock.accept() cs = common.recvcs(sock) @@ -808,33 +446,12 @@ if err[0] != errno.EPIPE: raise - def shutdown(self): - self.sock.close() - try: - os.unlink(self.sockpath) - if self.realsockpath: - os.unlink(self.realsockpath) - os.rmdir(os.path.dirname(self.realsockpath)) - except OSError, err: - if err.errno != errno.ENOENT: - raise +if sys.platform == 'linux2': + import linuxserver as _server +else: + raise ImportError -class master(object): - def __init__(self, ui, dirstate, root, timeout=None): - self.ui = ui - self.repowatcher = repowatcher(ui, dirstate, root) - self.server = server(ui, root, self.repowatcher, timeout) - - def shutdown(self): - for obj in pollable.instances.itervalues(): - obj.shutdown() - - def run(self): - self.repowatcher.setup() - self.ui.note(_('finished setup\n')) - if os.getenv('TIME_STARTUP'): - sys.exit(0) - pollable.run() +master = _server.master def start(ui, dirstate, root, opts): timeout = opts.get('timeout') @@ -865,5 +482,8 @@ service = service() logfile = ui.config('inotify', 'log') + + appendpid = ui.configbool('inotify', 'appendpid', False) + cmdutil.service(opts, initfn=service.init, runfn=service.run, - logfile=logfile, runargs=runargs) + logfile=logfile, runargs=runargs, appendpid=appendpid)
--- a/hgext/keyword.py Tue Dec 08 23:23:59 2009 +0100 +++ b/hgext/keyword.py Tue Dec 08 23:36:06 2009 +0100 @@ -112,7 +112,8 @@ 'Author': '{author|user}', 'Date': '{date|utcdate}', 'RCSfile': '{file|basename},v', - 'RCSFile': '{file|basename},v', # kept only for backwards compatibility + 'RCSFile': '{file|basename},v', # kept for backwards compatibility + # with hg-keyword 'Source': '{root}/{file},v', 'Id': '{file|basename},v {node|short} {date|utcdate} {author|user}', 'Header': '{root}/{file},v {node|short} {date|utcdate} {author|user}',
--- a/hgext/patchbomb.py Tue Dec 08 23:23:59 2009 +0100 +++ b/hgext/patchbomb.py Tue Dec 08 23:36:06 2009 +0100 @@ -381,20 +381,21 @@ else: msgs = getpatchmsgs(list(getpatches(revs))) - def getaddrs(opt, prpt, default = None): - addrs = opts.get(opt) or (ui.config('email', opt) or - ui.config('patchbomb', opt) or - prompt(ui, prpt, default)).split(',') - return [mail.addressencode(ui, a.strip(), _charsets, opts.get('test')) - for a in addrs if a.strip()] + def getaddrs(opt, prpt=None, default=None): + if opts.get(opt): + return mail.addrlistencode(ui, opts.get(opt), _charsets, + opts.get('test')) + + addrs = (ui.config('email', opt) or + ui.config('patchbomb', opt) or '') + if not addrs and prpt: + addrs = prompt(ui, prpt, default) + + return mail.addrlistencode(ui, [addrs], _charsets, opts.get('test')) to = getaddrs('to', 'To') cc = getaddrs('cc', 'Cc', '') - - bcc = opts.get('bcc') or (ui.config('email', 'bcc') or - ui.config('patchbomb', 'bcc') or '').split(',') - bcc = [mail.addressencode(ui, a.strip(), _charsets, opts.get('test')) - for a in bcc if a.strip()] + bcc = getaddrs('bcc') ui.write('\n')
--- a/hgext/relink.py Tue Dec 08 23:23:59 2009 +0100 +++ b/hgext/relink.py Tue Dec 08 23:36:06 2009 +0100 @@ -14,25 +14,27 @@ def relink(ui, repo, origin=None, **opts): """recreate hardlinks between two repositories - When repositories are cloned locally, their data files will be hardlinked - so that they only use the space of a single repository. + When repositories are cloned locally, their data files will be + hardlinked so that they only use the space of a single repository. - Unfortunately, subsequent pulls into either repository will break hardlinks - for any files touched by the new changesets, even if both repositories end - up pulling the same changes. + Unfortunately, subsequent pulls into either repository will break + hardlinks for any files touched by the new changesets, even if + both repositories end up pulling the same changes. - Similarly, passing --rev to "hg clone" will fail to use - any hardlinks, falling back to a complete copy of the source repository. + Similarly, passing --rev to "hg clone" will fail to use any + hardlinks, falling back to a complete copy of the source + repository. - This command lets you recreate those hardlinks and reclaim that wasted - space. + This command lets you recreate those hardlinks and reclaim that + wasted space. - This repository will be relinked to share space with ORIGIN, which must be - on the same local disk. If ORIGIN is omitted, looks for "default-relink", - then "default", in [paths]. + This repository will be relinked to share space with ORIGIN, which + must be on the same local disk. If ORIGIN is omitted, looks for + "default-relink", then "default", in [paths]. - Do not attempt any read operations on this repository while the command is - running. (Both repositories will be locked against writes.) + Do not attempt any read operations on this repository while the + command is running. (Both repositories will be locked against + writes.) """ src = hg.repository( cmdutil.remoteui(repo, opts),
--- a/i18n/da.po Tue Dec 08 23:23:59 2009 +0100 +++ b/i18n/da.po Tue Dec 08 23:36:06 2009 +0100 @@ -17,8 +17,8 @@ msgstr "" "Project-Id-Version: Mercurial\n" "Report-Msgid-Bugs-To: <mercurial-devel@selenic.com>\n" -"POT-Creation-Date: 2009-11-10 20:42+0100\n" -"PO-Revision-Date: 2009-11-11 22:54+0100\n" +"POT-Creation-Date: 2009-11-29 20:24+0100\n" +"PO-Revision-Date: 2009-11-29 20:27+0100\n" "Last-Translator: <mg@lazybytes.net>\n" "Language-Team: Danish\n" "MIME-Version: 1.0\n" @@ -135,37 +135,37 @@ "- backout, commit, import, tag: Specify the commit date.\n" "- log, revert, update: Select revision(s) by date.\n" "\n" -"Many date formats are valid. Here are some examples::\n" -"\n" -" \"Wed Dec 6 13:18:29 2006\" (local timezone assumed)\n" -" \"Dec 6 13:18 -0600\" (year assumed, time offset provided)\n" -" \"Dec 6 13:18 UTC\" (UTC and GMT are aliases for +0000)\n" -" \"Dec 6\" (midnight)\n" -" \"13:18\" (today assumed)\n" -" \"3:39\" (3:39AM assumed)\n" -" \"3:39pm\" (15:39)\n" -" \"2006-12-06 13:18:29\" (ISO 8601 format)\n" -" \"2006-12-6 13:18\"\n" -" \"2006-12-6\"\n" -" \"12-6\"\n" -" \"12/6\"\n" -" \"12/6/6\" (Dec 6 2006)\n" -"\n" -"Lastly, there is Mercurial's internal format::\n" -"\n" -" \"1165432709 0\" (Wed Dec 6 13:18:29 2006 UTC)\n" +"Many date formats are valid. Here are some examples:\n" +"\n" +"- ``Wed Dec 6 13:18:29 2006`` (local timezone assumed)\n" +"- ``Dec 6 13:18 -0600`` (year assumed, time offset provided)\n" +"- ``Dec 6 13:18 UTC`` (UTC and GMT are aliases for +0000)\n" +"- ``Dec 6`` (midnight)\n" +"- ``13:18`` (today assumed)\n" +"- ``3:39`` (3:39AM assumed)\n" +"- ``3:39pm`` (15:39)\n" +"- ``2006-12-06 13:18:29`` (ISO 8601 format)\n" +"- ``2006-12-6 13:18``\n" +"- ``2006-12-6``\n" +"- ``12-6``\n" +"- ``12/6``\n" +"- ``12/6/6`` (Dec 6 2006)\n" +"\n" +"Lastly, there is Mercurial's internal format:\n" +"\n" +"- ``1165432709 0`` (Wed Dec 6 13:18:29 2006 UTC)\n" "\n" "This is the internal representation format for dates. unixtime is the\n" "number of seconds since the epoch (1970-01-01 00:00 UTC). offset is\n" "the offset of the local timezone, in seconds west of UTC (negative if\n" "the timezone is east of UTC).\n" "\n" -"The log command also accepts date ranges::\n" -"\n" -" \"<{datetime}\" - at or before a given date/time\n" -" \">{datetime}\" - on or after a given date/time\n" -" \"{datetime} to {datetime}\" - a date range, inclusive\n" -" \"-{days}\" - within a given number of days of today\n" +"The log command also accepts date ranges:\n" +"\n" +"- ``<{datetime}`` - at or before a given date/time\n" +"- ``>{datetime}`` - on or after a given date/time\n" +"- ``{datetime} to {datetime}`` - a date range, inclusive\n" +"- ``-{days}`` - within a given number of days of today\n" msgstr "" "Nogle kommandoer tillader brugeren at specificere en dato, f.eks.:\n" "\n" @@ -174,23 +174,23 @@ "\n" "Der er mange gyldige datoformater. Her er nogle eksempler::\n" "\n" -" \"Wed Dec 6 13:18:29 2006\" (antager lokal tidszone)\n" -" \"Dec 6 13:18 -0600\" (antager år, tidszone er angivet)\n" -" \"Dec 6 13:18 UTC\" (UTC og GMT er aliaser for +0000)\n" -" \"Dec 6\" (midnat)\n" -" \"13:18\" (antager dags dato)\n" -" \"3:39\"\n" -" \"3:39pm\" (15:39)\n" -" \"2006-12-06 13:18:29\" (ISO 8601 format)\n" -" \"2006-12-6 13:18\"\n" -" \"2006-12-6\"\n" -" \"12-6\"\n" -" \"12/6\"\n" -" \"12/6/6\" (6. dec. 2006)\n" +"- ``Wed Dec 6 13:18:29 2006`` (antager lokal tidszone)\n" +"- ``Dec 6 13:18 -0600`` (antager år, tidszone er angivet)\n" +"- ``Dec 6 13:18 UTC`` (UTC og GMT er aliaser for +0000)\n" +"- ``Dec 6`` (midnat)\n" +"- ``13:18`` (antager dags dato)\n" +"- ``3:39``\n" +"- ``3:39pm`` (15:39)\n" +"- ``2006-12-06 13:18:29`` (ISO 8601 format)\n" +"- ``2006-12-6 13:18``\n" +"- ``2006-12-6``\n" +"- ``12-6``\n" +"- ``12/6``\n" +"- ``12/6/6`` (6. dec. 2006)\n" "\n" "Endelig er der Mercurials interne format::\n" "\n" -" \"1165432709 0\" (Ons 6. dec. 13:18:29 2006 UTC)\n" +"- ``1165432709 0`` (Ons 6. dec. 13:18:29 2006 UTC)\n" "\n" "Dette er den interne repræsentation af datoer. unixtime er\n" "antallet af sekunder siden begyndelsen af epoken (1970-01-01 00:00\n" @@ -199,10 +199,10 @@ "\n" "Kommandoen log accepterer også datointervaller::\n" "\n" -" \"<{date}\" - på eller før den angivne dato/tidspunkt\n" -" \">{date}\" - på eller efter den angivne dato/tidspunkt\n" -" \"{date} to {date}\" - et datointerval, inklusiv endepunkterne\n" -" \"-{days}\" - indenfor et angivet antal dage, fra dags dato\n" +"- ``<{date}`` - på eller før den angivne dato/tidspunkt\n" +"- ``>{date}`` - på eller efter den angivne dato/tidspunkt\n" +"- ``{date} to {date}`` - et datointerval, inklusiv endepunkterne\n" +"- ``-{days}`` - indenfor et angivet antal dage, fra dags dato\n" msgid "" "Mercurial's default format for showing changes between two versions of\n" @@ -1813,6 +1813,11 @@ msgid "Mercurial failed to run itself, check hg executable is in PATH" msgstr "Mercurial kunne ikke køre sig selv, kontroller om hg er i PATH" +msgid "" +"svn: cannot probe remote repository, assume it could be a subversion " +"repository. Use --source-type if you know better.\n" +msgstr "" + msgid "Subversion python bindings could not be loaded" msgstr "Subversion python bindingerne kunne ikke indlæses" @@ -1981,15 +1986,14 @@ msgid "" "use %(path)s to diff repository (or selected files)\n" "\n" -" Show differences between revisions for the specified files, using the\n" -" %(path)s program.\n" -"\n" -" When two revision arguments are given, then changes are shown between\n" -" those revisions. If only one revision is specified then that revision " -"is\n" -" compared to the working directory, and, when no revisions are " -"specified,\n" -" the working directory files are compared to its parent." +" Show differences between revisions for the specified files, using\n" +" the %(path)s program.\n" +"\n" +" When two revision arguments are given, then changes are shown\n" +" between those revisions. If only one revision is specified then\n" +" that revision is compared to the working directory, and, when no\n" +" revisions are specified, the working directory files are compared\n" +" to its parent." msgstr "" #, python-format @@ -2449,23 +2453,23 @@ msgid "hg inserve [OPTION]..." msgstr "hg inserve [TILVALG]..." -msgid "(found dead inotify server socket; removing it)\n" -msgstr "(fandt død inotify server sokkel; fjerner den)\n" - -#, python-format -msgid "could not start inotify server: %s\n" -msgstr "kunne ikke starte inotify server: %s\n" - -#, python-format -msgid "could not talk to new inotify server: %s\n" -msgstr "kunne ikke snakke med ny inotify server: %s\n" - -#, python-format -msgid "failed to contact inotify server: %s\n" -msgstr "kontakt med inotify server miskykkedes: %s\n" - -msgid "received empty answer from inotify server" -msgstr "modtog tomt svar fra inotify server" +msgid "inotify-client: found dead inotify server socket; removing it\n" +msgstr "inotify-klient: fandt død inotify server sokkel; fjerner den\n" + +#, python-format +msgid "inotify-client: could not start inotify server: %s\n" +msgstr "inotify-klient: kunne ikke starte inotify server: %s\n" + +#, python-format +msgid "inotify-client: could not talk to new inotify server: %s\n" +msgstr "inotify-klient: kunne ikke snakke med ny inotify server: %s\n" + +#, python-format +msgid "inotify-client: failed to contact inotify server: %s\n" +msgstr "inotify-klient: kontakt med inotify server mislykkedes: %s\n" + +msgid "inotify-client: received empty answer from inotify server" +msgstr "inotify-klient: modtog tomt svar fra inotify server" #, python-format msgid "(inotify: received response from incompatible server version %d)\n" @@ -2521,21 +2525,6 @@ msgstr "overvåger kataloger under %r\n" #, python-format -msgid "status: %r %s -> %s\n" -msgstr "status: %r %s -> %s\n" - -#, python-format -msgid "%s dirstate reload\n" -msgstr "%s genindlæsning af dirstate\n" - -#, python-format -msgid "%s end dirstate reload\n" -msgstr "%s genindlæsning af dirstate afsluttet\n" - -msgid "rescanning due to .hgignore change\n" -msgstr "genskanner på grund af ændring af .hgignore\n" - -#, python-format msgid "%s event: created %s\n" msgstr "%s hændelse: oprettede %s\n" @@ -2567,9 +2556,23 @@ msgid "%s hooking back up with %d bytes readable\n" msgstr "" -#, python-format -msgid "could not start server: %s" -msgstr "kunne ikke starte server: %s" +msgid "finished setup\n" +msgstr "afsluttede opsætning\n" + +#, python-format +msgid "status: %r %s -> %s\n" +msgstr "status: %r %s -> %s\n" + +msgid "rescanning due to .hgignore change\n" +msgstr "genskanner på grund af ændring af .hgignore\n" + +msgid "cannot start: socket is already bound" +msgstr "" + +msgid "" +"cannot start: tried linking .hg/inotify.sock to a temporary socket but .hg/" +"inotify.sock already exists" +msgstr "" #, python-format msgid "answering query for %r\n" @@ -2583,9 +2586,6 @@ msgid "unrecognized query type: %s\n" msgstr "genkendte ikke forespørgselstype: %s\n" -msgid "finished setup\n" -msgstr "afsluttede opsætning\n" - msgid "" "expand expressions into changelog and summaries\n" "\n" @@ -3507,7 +3507,8 @@ " With arguments, set guards for the named patch.\n" " NOTE: Specifying negative guards now requires '--'.\n" "\n" -" To set guards on another patch:\n" +" To set guards on another patch::\n" +"\n" " hg qguard -- other.patch +2.6.17 -stable\n" " " msgstr "" @@ -3640,7 +3641,7 @@ " qselect to tell mq which guards to use. A patch will be pushed if\n" " it has no guards or any positive guards match the currently\n" " selected guard, but will not be pushed if any negative guards\n" -" match the current guard. For example:\n" +" match the current guard. For example::\n" "\n" " qguard foo.patch -stable (negative guard)\n" " qguard bar.patch +stable (positive guard)\n" @@ -3708,11 +3709,14 @@ #, python-format msgid "number of unguarded, unapplied patches has changed from %d to %d\n" -msgstr "antallet af ufiltrerede og ikke-anvendte rettelser har ændret sig fra %dtil %d\n" +msgstr "" +"antallet af ufiltrerede og ikke-anvendte rettelser har ændret sig fra %dtil %" +"d\n" #, python-format msgid "number of guarded, applied patches has changed from %d to %d\n" -msgstr "antallet af filtrerede og anvendte rettelser har ændret sig fra %d til %d\n" +msgstr "" +"antallet af filtrerede og anvendte rettelser har ændret sig fra %d til %d\n" msgid "guards in series file:\n" msgstr "filtre i seriefilen:\n" @@ -4132,10 +4136,13 @@ " ignore = version, help, update\n" "\n" "You can also enable the pager only for certain commands using\n" -"pager.attend::\n" +"pager.attend. Below is the default list of commands to be paged::\n" "\n" " [pager]\n" -" attend = log\n" +" attend = annotate, cat, diff, export, glog, log, qdiff\n" +"\n" +"Setting pager.attend to an empty value will cause all commands to be\n" +"paged.\n" "\n" "If pager.attend is present, pager.ignore will be ignored.\n" "\n" @@ -4661,9 +4668,6 @@ msgid " and " msgstr " og " -msgid "y" -msgstr "j" - #, python-format msgid "record this change to %r?" msgstr "optag denne ændring i %r?" @@ -4744,32 +4748,27 @@ msgid "" "recreate hardlinks between two repositories\n" "\n" -" When repositories are cloned locally, their data files will be " -"hardlinked\n" -" so that they only use the space of a single repository.\n" -"\n" -" Unfortunately, subsequent pulls into either repository will break " -"hardlinks\n" -" for any files touched by the new changesets, even if both repositories " -"end\n" -" up pulling the same changes.\n" -"\n" -" Similarly, passing --rev to \"hg clone\" will fail to use\n" -" any hardlinks, falling back to a complete copy of the source " -"repository.\n" -"\n" -" This command lets you recreate those hardlinks and reclaim that wasted\n" -" space.\n" -"\n" -" This repository will be relinked to share space with ORIGIN, which must " -"be\n" -" on the same local disk. If ORIGIN is omitted, looks for \"default-relink" -"\",\n" -" then \"default\", in [paths].\n" -"\n" -" Do not attempt any read operations on this repository while the command " -"is\n" -" running. (Both repositories will be locked against writes.)\n" +" When repositories are cloned locally, their data files will be\n" +" hardlinked so that they only use the space of a single repository.\n" +"\n" +" Unfortunately, subsequent pulls into either repository will break\n" +" hardlinks for any files touched by the new changesets, even if\n" +" both repositories end up pulling the same changes.\n" +"\n" +" Similarly, passing --rev to \"hg clone\" will fail to use any\n" +" hardlinks, falling back to a complete copy of the source\n" +" repository.\n" +"\n" +" This command lets you recreate those hardlinks and reclaim that\n" +" wasted space.\n" +"\n" +" This repository will be relinked to share space with ORIGIN, which\n" +" must be on the same local disk. If ORIGIN is omitted, looks for\n" +" \"default-relink\", then \"default\", in [paths].\n" +"\n" +" Do not attempt any read operations on this repository while the\n" +" command is running. (Both repositories will be locked against\n" +" writes.)\n" " " msgstr "" @@ -5458,14 +5457,14 @@ " directory; use -r/--rev to specify a different revision.\n" "\n" " To specify the type of archive to create, use -t/--type. Valid\n" -" types are::\n" -"\n" -" \"files\" (default): a directory full of files\n" -" \"tar\": tar archive, uncompressed\n" -" \"tbz2\": tar archive, compressed using bzip2\n" -" \"tgz\": tar archive, compressed using gzip\n" -" \"uzip\": zip archive, uncompressed\n" -" \"zip\": zip archive, compressed using deflate\n" +" types are:\n" +"\n" +" :``files``: a directory full of files (default)\n" +" :``tar``: tar archive, uncompressed\n" +" :``tbz2``: tar archive, compressed using bzip2\n" +" :``tgz``: tar archive, compressed using gzip\n" +" :``uzip``: zip archive, uncompressed\n" +" :``zip``: zip archive, compressed using deflate\n" "\n" " The exact name of the destination archive or directory is given\n" " using a format string; see 'hg help export' for details.\n" @@ -5742,11 +5741,11 @@ "\n" " Output may be to a file, in which case the name of the file is\n" " given using a format string. The formatting rules are the same as\n" -" for the export command, with the following additions::\n" -"\n" -" %s basename of file being printed\n" -" %d dirname of file being printed, or '.' if in repository root\n" -" %p root-relative path name of file being printed\n" +" for the export command, with the following additions:\n" +"\n" +" :``%s``: basename of file being printed\n" +" :``%d``: dirname of file being printed, or '.' if in repository root\n" +" :``%p``: root-relative path name of file being printed\n" " " msgstr "" "udskriv den aktuelle eller en given revision af filer\n" @@ -5758,12 +5757,12 @@ "\n" " Output kan gemmes i en fil hvis navn angives med et formatstreng.\n" " Reglerne for formatteringen er de samme som for export-kommandoen\n" -" med følgende tilføjelser::\n" -"\n" -" %s grundnavn for filen som udskrives\n" -" %d katalognavn for filen som blvier udskrevet\n" -" eller '.' hvis filen er i katalogets rod\n" -" %p rod-relativ sti for filen som bliver udkrevet\n" +" med følgende tilføjelser:\n" +"\n" +" :``%s``: grundnavn for filen som udskrives\n" +" :``%d``: katalognavn for filen som blvier udskrevet\n" +" eller '.' hvis filen er i katalogets rod\n" +" :``%p``: rod-relativ sti for filen som bliver udkrevet\n" " " msgid "" @@ -5788,9 +5787,9 @@ " will be the null changeset). Otherwise, clone will initially check\n" " out (in order of precedence):\n" "\n" -" a) the changeset, tag or branch specified with -u/--updaterev\n" -" b) the changeset, tag or branch given with the first -r/--rev\n" -" c) the head of the default branch\n" +" a) the changeset, tag or branch specified with -u/--updaterev\n" +" b) the changeset, tag or branch given with the first -r/--rev\n" +" c) the head of the default branch\n" "\n" " Use 'hg clone -u . src dst' to checkout the source repository's\n" " parent changeset (applicable for local source repositories only).\n" @@ -5799,8 +5798,8 @@ " by listing each changeset (tag, or branch name) with -r/--rev.\n" " If -r/--rev is used, the cloned repository will contain only a subset\n" " of the changesets of the source repository. Only the set of changesets\n" -" defined by all -r/--rev options (including their direct and indirect\n" -" parent changesets) will be pulled into the destination repository.\n" +" defined by all -r/--rev options (including all their ancestors)\n" +" will be pulled into the destination repository.\n" " No subsequent changesets (including subsequent tags) will be present\n" " in the destination.\n" "\n" @@ -5848,11 +5847,11 @@ " et depot (.hg) og intet arbejdskatalog (arbejdskatalogets forælder\n" " er sat til nul revisionen). Ellers vil clone kommandoen hente\n" "\n" -" a) ændringen, mærkaten eller grenen specificeret med\n" -" -u/--updaterev\n" -" b) ændringen, mærkaten eller grenen angivet med den første\n" -" -r/--rev\n" -" c) hovedet af default grenen\n" +" a) ændringen, mærkaten eller grenen specificeret med\n" +" -u/--updaterev\n" +" b) ændringen, mærkaten eller grenen angivet med den første\n" +" -r/--rev\n" +" c) hovedet af default grenen\n" "\n" " Brug 'hg clone -u . kilde destination' for at hente ændringen i\n" " kildedepotet ud i destinations depotet (kan kun anvendes ved\n" @@ -5863,10 +5862,9 @@ " grennavn) med -r/--rev. Hvis -r/--rev tilvalget bruges, så vil det\n" " klonede depot kun indeholde en delmængde af ændringerne i\n" " kildedepotet. Det er kun mængden af ændringer defineret af alle\n" -" -r/--rev tilvalgene (inklusiv deres direkte og indirekte forfædre)\n" -" som vil blive hevet ind i destinationsdepotet. Ingen efterfølgende\n" -" revisioner (inklusiv efterfølgende mærkater) vil findes i\n" -" destinationen.\n" +" -r/--rev tilvalgene (inklusiv alle deres forfædre) som vil blive\n" +" hevet ind i destinationsdepotet. Ingen efterfølgende revisioner\n" +" (inklusiv efterfølgende mærkater) vil findes i destinationen.\n" "\n" " Brug af -r/--rev (eller 'clone kilde#rev destination') medfører\n" " --pull, selv ved lokale depoter.\n" @@ -6193,16 +6191,16 @@ " first parent only.\n" "\n" " Output may be to a file, in which case the name of the file is\n" -" given using a format string. The formatting rules are as follows::\n" -"\n" -" %% literal \"%\" character\n" -" %H changeset hash (40 bytes of hexadecimal)\n" -" %N number of patches being generated\n" -" %R changeset revision number\n" -" %b basename of the exporting repository\n" -" %h short-form changeset hash (12 bytes of hexadecimal)\n" -" %n zero-padded sequence number, starting at 1\n" -" %r zero-padded changeset revision number\n" +" given using a format string. The formatting rules are as follows:\n" +"\n" +" :``%%``: literal \"%\" character\n" +" :``%H``: changeset hash (40 bytes of hexadecimal)\n" +" :``%N``: number of patches being generated\n" +" :``%R``: changeset revision number\n" +" :``%b``: basename of the exporting repository\n" +" :``%h``: short-form changeset hash (12 bytes of hexadecimal)\n" +" :``%n``: zero-padded sequence number, starting at 1\n" +" :``%r``: zero-padded changeset revision number\n" "\n" " Without the -a/--text option, export will avoid generating diffs\n" " of files it detects as binary. With -a, export will generate a\n" @@ -6230,14 +6228,14 @@ " Uddata kan gemmes i en fil, og filnavnet er givet ved en\n" " format-streng. Formatteringsreglerne er som følger::\n" "\n" -" %% litteral % tegn\n" -" %H ændringshash (40 byte heksadecimal)\n" -" %N antallet af rettelser som bliver genereret\n" -" %R revisionnummer for ændringen\n" -" %b grundnavn for det eksporterede depot\n" -" %h kortform ændringshash (12 byte heksadecimal)\n" -" %n nul-fyldt sekvensnummer, startende ved 1\n" -" %r nul-fyldt revisionsnummer for ændringen\n" +" :``%%``: litteral \"%\" tegn\n" +" :``%H``: ændringshash (40 byte heksadecimal)\n" +" :``%N``: antallet af rettelser som bliver genereret\n" +" :``%R``: revisionnummer for ændringen\n" +" :``%b``: grundnavn for det eksporterede depot\n" +" :``%h``: kortform ændringshash (12 byte heksadecimal)\n" +" :``%n``: nul-fyldt sekvensnummer, startende ved 1\n" +" :``%r``: nul-fyldt revisionsnummer for ændringen\n" "\n" " Uden -a/--text tilvalget vil annotate undgå at behandle filer som\n" " den detekterer som binære. Med -a vil annotate generere en\n" @@ -6408,9 +6406,6 @@ msgid "no commands defined\n" msgstr "ingen kommandoer defineret\n" -msgid "enabled extensions:" -msgstr "aktiverede udvidelser:" - msgid "no help text available" msgstr "ingen hjælpetekst tilgængelig" @@ -6432,6 +6427,9 @@ "basale kommandoer:\n" "\n" +msgid "enabled extensions:" +msgstr "aktiverede udvidelser:" + msgid "DEPRECATED" msgstr "" @@ -7047,13 +7045,13 @@ " Transactions are used to encapsulate the effects of all commands\n" " that create new changesets or propagate existing changesets into a\n" " repository. For example, the following commands are transactional,\n" -" and their effects can be rolled back::\n" -"\n" -" commit\n" -" import\n" -" pull\n" -" push (with this repository as destination)\n" -" unbundle\n" +" and their effects can be rolled back:\n" +"\n" +" - commit\n" +" - import\n" +" - pull\n" +" - push (with this repository as destination)\n" +" - unbundle\n" "\n" " This command is not intended for use on public repositories. Once\n" " changes are visible for pull by other users, rolling a transaction\n" @@ -7352,13 +7350,13 @@ " The following rules apply when the working directory contains\n" " uncommitted changes:\n" "\n" -" 1. If neither -c/--check nor -C/--clean is specified, uncommitted\n" -" changes are merged into the requested changeset, and the merged " -"result\n" -" is left uncommitted. Updating and merging will occur only if the\n" -" requested changeset is an ancestor or descendant of the parent\n" -" changeset. Otherwise, the update is aborted and the uncommitted " -"changes\n" +" 1. If neither -c/--check nor -C/--clean is specified, and if\n" +" the requested changeset is an ancestor or descendant of\n" +" the working directory's parent, the uncommitted changes\n" +" are merged into the requested changeset and the merged\n" +" result is left uncommitted. If the requested changeset is\n" +" not an ancestor or descendant (that is, it is on another\n" +" branch), the update is aborted and the uncommitted changes\n" " are preserved.\n" "\n" " 2. With the -c/--check option, the update is aborted and the\n" @@ -7388,13 +7386,14 @@ " De følgende regler gælder når arbejdskataloget indeholder\n" " udeponerede ændringer:\n" "\n" -" 1. Hvis hverken -c/--check eler -C/--clean er angivet, så bliver\n" -" udeponerede ændringer føjet ind i den ønskede ændring og det\n" -" sammenføjne resultat bliver efterlad udeponeret. Opdateringen\n" -" eller sammenføjningen vil kun finde sted hvis den ønskede\n" -" ændring er forfar til eller nedstammer fra forældreændringen.\n" -" Ellers vil opdateringen blive afbrudt og de udeponerede\n" -" ændringer bliver bevaret.\n" +" 1. Hvis hverken -c/--check eller -C/--clean er angivet og hvis den\n" +" ønskede ændring er en forfar til eller nedstammer fra\n" +" arbejdskatalogets forældre, så bliver udeponerede ændringer\n" +" føjet ind i den ønskede ændring og det sammenføjne resultat\n" +" bliver efterlad udeponeret. Hvis den ønskede ændring ikke er\n" +" forfar til eller nedstammer fra forældreændringen (det vil\n" +" sige, den er på en anden gren), så vil opdateringen blive\n" +" afbrudt og de udeponerede ændringer bliver bevaret.\n" "\n" " 2. Med -c/--check tilvalget vil opdateringen blive afbrudt og de\n" " udeponerede ændringer bliver bevaret.\n" @@ -7696,8 +7695,8 @@ msgid "revision, tag or branch to check out" msgstr "revision, mærkat eller gren som skal hentes ud" -msgid "a changeset you would like to have after cloning" -msgstr "en ændringer du gerne vil have efter kloningen" +msgid "clone only the specified revisions and ancestors" +msgstr "klon kun de specificerede revisioner og deres forfædre" msgid "[OPTION]... SOURCE [DEST]" msgstr "[TILVALG]... KILDE [MÅL]" @@ -8266,6 +8265,16 @@ msgstr "ingen definition for alias '%s'\n" #, python-format +msgid "" +"alias for: hg %s\n" +"\n" +"%s" +msgstr "" +"alias for: hg %s\n" +"\n" +"%s" + +#, python-format msgid "alias '%s' resolves to unknown command '%s'\n" msgstr "alias '%s' oversætter til ukendt kommando '%s'\n" @@ -8274,8 +8283,8 @@ msgstr "alias '%s' oversætter til tvetydig kommando '%s'\n" #, python-format -msgid "malformed --config option: %s" -msgstr "misdannet --config tilvalg: %s" +msgid "malformed --config option: %r (use --config section.name=value)" +msgstr "misdannet --config tilvalg: %r (brug --config sektion.navn=værdi)" #, python-format msgid "extension '%s' overrides commands: %s\n" @@ -8490,6 +8499,12 @@ msgid "%s hook is invalid (\"%s\" not in a module)" msgstr "" +msgid "exception from first failed import attempt:\n" +msgstr "fejltekst fra første fejlede import-forsøg:\n" + +msgid "exception from second failed import attempt:\n" +msgstr "fejltekst fra andet fejlede import-forsøg:\n" + #, python-format msgid "%s hook is invalid (import of \"%s\" failed)" msgstr "" @@ -8632,7 +8647,7 @@ msgstr "ukendt revision '%s'" msgid "abandoned transaction found - run hg recover" -msgstr "" +msgstr "fandt en efterladt transaktion - kør hg recover" msgid "rolling back interrupted transaction\n" msgstr "ruller afbrudt transaktion tilbage\n" @@ -8665,6 +8680,8 @@ msgid "cannot partially commit a merge (do not specify files or patterns)" msgstr "" +"kan ikke deponere en sammenføjning partielt (undgå at specificere filer " +"eller mønstre)" msgid "file not found!" msgstr "filen blev ikke fundet!" @@ -8683,6 +8700,10 @@ msgstr "deponerer underdepot %s\n" #, python-format +msgid "note: commit message saved in %s\n" +msgstr "bemærk: deponeringsbesked er gemt i %s\n" + +#, python-format msgid "trouble committing %s!\n" msgstr "problem ved deponering %s!\n" @@ -8695,6 +8716,8 @@ "%s: files over 10MB may cause memory and performance problems\n" "(use 'hg revert %s' to unadd the file)\n" msgstr "" +"%s: filer på over 10 MB kan skabe hukommelses- og ydelsesproblemer\n" +"(brug 'hg revert %s' for at u-tilføje filen)\n" #, python-format msgid "%s not added: only files and symlinks supported currently\n" @@ -8756,7 +8779,7 @@ msgstr "(glemte du at sammenføje? brug push -f for at gennemtvinge)\n" msgid "note: unsynced remote changes!\n" -msgstr "" +msgstr "bemærk: usynkroniserede ændringer i fjernsystemet!\n" #, python-format msgid "%d changesets found\n" @@ -8799,10 +8822,10 @@ msgstr "låsning af fjerndepotet fejlede" msgid "the server sent an unknown error code" -msgstr "" +msgstr "serveren sendte en ukendt fejlkode" msgid "streaming all changes\n" -msgstr "" +msgstr "streamer alle ændringer\n" #, python-format msgid "%d files to transfer, %s of data\n" @@ -8817,7 +8840,7 @@ #, python-format msgid "sending mail: smtp host %s, port %s\n" -msgstr "" +msgstr "sender mail: smtp host %s, port %s\n" msgid "can't use TLS: Python SSL support not installed" msgstr "kan ikke bruge TLS: Python SSL support er ikke installeret" @@ -8842,7 +8865,7 @@ #, python-format msgid "ignoring invalid sendcharset: %s\n" -msgstr "" +msgstr "ignorerer ugyldigt sendcharset: %s\n" #, python-format msgid "invalid email address: %s"
--- a/i18n/sv.po Tue Dec 08 23:23:59 2009 +0100 +++ b/i18n/sv.po Tue Dec 08 23:36:06 2009 +0100 @@ -13,8 +13,8 @@ msgstr "" "Project-Id-Version: Mercurial\n" "Report-Msgid-Bugs-To: <mercurial-devel@selenic.com>\n" -"POT-Creation-Date: 2009-11-10 20:01+0100\n" -"PO-Revision-Date: 2009-11-10 20:06+0100\n" +"POT-Creation-Date: 2009-11-22 19:02+0100\n" +"PO-Revision-Date: 2009-11-22 19:37+0100\n" "Last-Translator: Jens Bäckman <jens.backman@gmail.com>\n" "Language-Team: Swedish\n" "MIME-Version: 1.0\n" @@ -85,6 +85,43 @@ "- on Unix-like systems: ``man hgrc``\n" "- online: http://www.selenic.com/mercurial/hgrc.5.html\n" msgstr "" +"Mercurial läser konfigurationsdata från flera filer, om de existerar.\n" +"Nedan listar vi den mest specifika filen först.\n" +"\n" +"Under Windows läses dessa konfigurationsfiler:\n" +"\n" +"- ``<arkiv>\\.hg\\hgrc``\n" +"- ``%USERPROFILE%\\.hgrc``\n" +"- ``%USERPROFILE%\\Mercurial.ini``\n" +"- ``%HOME%\\.hgrc``\n" +"- ``%HOME%\\Mercurial.ini``\n" +"- ``C:\\Mercurial\\Mercurial.ini``\n" +"- ``HKEY_LOCAL_MACHINE\\SOFTWARE\\Mercurial``\n" +"- ``<installationskatalog>\\Mercurial.ini``\n" +"\n" +"Under Unix läses dessa filer:\n" +"\n" +"- ``<arkiv>/.hg/hgrc``\n" +"- ``$HOME/.hgrc``\n" +"- ``/etc/mercurial/hgrc``\n" +"- ``/etc/mercurial/hgrc.d/*.rc``\n" +"- ``<installationsrot>/etc/mercurial/hgrc``\n" +"- ``<installationsrot>/etc/mercurial/hgrc.d/*.rc``\n" +"\n" +"Konfigurationsfilerna för Mercurial använder ett enkelt ini-filformat. En\n" +"file består av sektioner, som inleds av en rubrik (ex ``[sektion]``) och\n" +"följs av rader med ``namn = värde``::\n" +"\n" +" [ui]\n" +" username = Förnamn Efternamn <fornamn.efternamn@example.net>\n" +" verbose = True\n" +"\n" +"Raderna ovanför refereras till som ``ui.username`` och\n" +"``ui.verbose``. Läs man-sidan för hgrc för en full beskrivning av alla\n" +"möjliga konfigurationsvärden:\n" +"\n" +"- under Unix-liknande system: ``man hgrc``\n" +"- online: http://www.selenic.com/mercurial/hgrc.5.html\n" msgid "" "Some commands allow the user to specify a date, e.g.:\n" @@ -92,37 +129,37 @@ "- backout, commit, import, tag: Specify the commit date.\n" "- log, revert, update: Select revision(s) by date.\n" "\n" -"Many date formats are valid. Here are some examples::\n" -"\n" -" \"Wed Dec 6 13:18:29 2006\" (local timezone assumed)\n" -" \"Dec 6 13:18 -0600\" (year assumed, time offset provided)\n" -" \"Dec 6 13:18 UTC\" (UTC and GMT are aliases for +0000)\n" -" \"Dec 6\" (midnight)\n" -" \"13:18\" (today assumed)\n" -" \"3:39\" (3:39AM assumed)\n" -" \"3:39pm\" (15:39)\n" -" \"2006-12-06 13:18:29\" (ISO 8601 format)\n" -" \"2006-12-6 13:18\"\n" -" \"2006-12-6\"\n" -" \"12-6\"\n" -" \"12/6\"\n" -" \"12/6/6\" (Dec 6 2006)\n" -"\n" -"Lastly, there is Mercurial's internal format::\n" -"\n" -" \"1165432709 0\" (Wed Dec 6 13:18:29 2006 UTC)\n" +"Many date formats are valid. Here are some examples:\n" +"\n" +"- ``Wed Dec 6 13:18:29 2006`` (local timezone assumed)\n" +"- ``Dec 6 13:18 -0600`` (year assumed, time offset provided)\n" +"- ``Dec 6 13:18 UTC`` (UTC and GMT are aliases for +0000)\n" +"- ``Dec 6`` (midnight)\n" +"- ``13:18`` (today assumed)\n" +"- ``3:39`` (3:39AM assumed)\n" +"- ``3:39pm`` (15:39)\n" +"- ``2006-12-06 13:18:29`` (ISO 8601 format)\n" +"- ``2006-12-6 13:18``\n" +"- ``2006-12-6``\n" +"- ``12-6``\n" +"- ``12/6``\n" +"- ``12/6/6`` (Dec 6 2006)\n" +"\n" +"Lastly, there is Mercurial's internal format:\n" +"\n" +"- ``1165432709 0`` (Wed Dec 6 13:18:29 2006 UTC)\n" "\n" "This is the internal representation format for dates. unixtime is the\n" "number of seconds since the epoch (1970-01-01 00:00 UTC). offset is\n" "the offset of the local timezone, in seconds west of UTC (negative if\n" "the timezone is east of UTC).\n" "\n" -"The log command also accepts date ranges::\n" -"\n" -" \"<{datetime}\" - at or before a given date/time\n" -" \">{datetime}\" - on or after a given date/time\n" -" \"{datetime} to {datetime}\" - a date range, inclusive\n" -" \"-{days}\" - within a given number of days of today\n" +"The log command also accepts date ranges:\n" +"\n" +"- ``<{datetime}`` - at or before a given date/time\n" +"- ``>{datetime}`` - on or after a given date/time\n" +"- ``{datetime} to {datetime}`` - a date range, inclusive\n" +"- ``-{days}`` - within a given number of days of today\n" msgstr "" msgid "" @@ -1599,6 +1636,11 @@ msgid "Mercurial failed to run itself, check hg executable is in PATH" msgstr "" +msgid "" +"svn: cannot probe remote repository, assume it could be a subversion " +"repository. Use --source-type if you know better.\n" +msgstr "" + msgid "Subversion python bindings could not be loaded" msgstr "" @@ -3118,7 +3160,8 @@ " With arguments, set guards for the named patch.\n" " NOTE: Specifying negative guards now requires '--'.\n" "\n" -" To set guards on another patch:\n" +" To set guards on another patch::\n" +"\n" " hg qguard -- other.patch +2.6.17 -stable\n" " " msgstr "" @@ -3213,7 +3256,7 @@ " qselect to tell mq which guards to use. A patch will be pushed if\n" " it has no guards or any positive guards match the currently\n" " selected guard, but will not be pushed if any negative guards\n" -" match the current guard. For example:\n" +" match the current guard. For example::\n" "\n" " qguard foo.patch -stable (negative guard)\n" " qguard bar.patch +stable (positive guard)\n" @@ -3663,10 +3706,13 @@ " ignore = version, help, update\n" "\n" "You can also enable the pager only for certain commands using\n" -"pager.attend::\n" +"pager.attend. Below is the default list of commands to be paged::\n" "\n" " [pager]\n" -" attend = log\n" +" attend = annotate, cat, diff, export, glog, log, qdiff\n" +"\n" +"Setting pager.attend to an empty value will cause all commands to be\n" +"paged.\n" "\n" "If pager.attend is present, pager.ignore will be ignored.\n" "\n" @@ -4161,9 +4207,6 @@ msgid " and " msgstr "" -msgid "y" -msgstr "" - #, python-format msgid "record this change to %r?" msgstr "" @@ -4222,32 +4265,27 @@ msgid "" "recreate hardlinks between two repositories\n" "\n" -" When repositories are cloned locally, their data files will be " -"hardlinked\n" -" so that they only use the space of a single repository.\n" -"\n" -" Unfortunately, subsequent pulls into either repository will break " -"hardlinks\n" -" for any files touched by the new changesets, even if both repositories " -"end\n" -" up pulling the same changes.\n" -"\n" -" Similarly, passing --rev to \"hg clone\" will fail to use\n" -" any hardlinks, falling back to a complete copy of the source " -"repository.\n" -"\n" -" This command lets you recreate those hardlinks and reclaim that wasted\n" -" space.\n" -"\n" -" This repository will be relinked to share space with ORIGIN, which must " -"be\n" -" on the same local disk. If ORIGIN is omitted, looks for \"default-relink" -"\",\n" -" then \"default\", in [paths].\n" -"\n" -" Do not attempt any read operations on this repository while the command " -"is\n" -" running. (Both repositories will be locked against writes.)\n" +" When repositories are cloned locally, their data files will be\n" +" hardlinked so that they only use the space of a single repository.\n" +"\n" +" Unfortunately, subsequent pulls into either repository will break\n" +" hardlinks for any files touched by the new changesets, even if\n" +" both repositories end up pulling the same changes.\n" +"\n" +" Similarly, passing --rev to \"hg clone\" will fail to use any\n" +" hardlinks, falling back to a complete copy of the source\n" +" repository.\n" +"\n" +" This command lets you recreate those hardlinks and reclaim that\n" +" wasted space.\n" +"\n" +" This repository will be relinked to share space with ORIGIN, which\n" +" must be on the same local disk. If ORIGIN is omitted, looks for\n" +" \"default-relink\", then \"default\", in [paths].\n" +"\n" +" Do not attempt any read operations on this repository while the\n" +" command is running. (Both repositories will be locked against\n" +" writes.)\n" " " msgstr "" @@ -4863,12 +4901,27 @@ " can be expensive.\n" " " msgstr "" +"lägg till alla nya nya filer, radera alla saknade filer\n" +"\n" +" Lägg till alla nya filer och radera alla saknade filer från arkivet.\n" +"\n" +" Nya filer ignoreras om de överrensstämmer något av mönstren i\n" +" .hgignore. Precis som med add, kommer ändringarna att träda i kraft vid\n" +" nästa arkivering.\n" +"\n" +" Använd flaggan -s/--similarity för att upptäcka omdöpta filer. Med en\n" +" parameter större än 0, kommer varje borttagen fil att jämföras med\n" +" varje tillagd fil och lagrar de som är tillräckligt lika som ett\n" +" namnbyte. Flaggan tar ett procentvärde mellan 0 (deaktiverad) och 100\n" +" (filer måste vara identiska) som parameter. Att upptäcka omdöpta filer\n" +" på det här sättet kan ta lång tid.\n" +" " msgid "similarity must be a number" -msgstr "" +msgstr "likhet måste vara ett nummer" msgid "similarity must be between 0 and 100" -msgstr "" +msgstr "likhet måste vara mellan 0 och 100" msgid "" "show changeset information by line for each file\n" @@ -4914,14 +4967,14 @@ " directory; use -r/--rev to specify a different revision.\n" "\n" " To specify the type of archive to create, use -t/--type. Valid\n" -" types are::\n" -"\n" -" \"files\" (default): a directory full of files\n" -" \"tar\": tar archive, uncompressed\n" -" \"tbz2\": tar archive, compressed using bzip2\n" -" \"tgz\": tar archive, compressed using gzip\n" -" \"uzip\": zip archive, uncompressed\n" -" \"zip\": zip archive, compressed using deflate\n" +" types are:\n" +"\n" +" :``files``: a directory full of files (default)\n" +" :``tar``: tar archive, uncompressed\n" +" :``tbz2``: tar archive, compressed using bzip2\n" +" :``tgz``: tar archive, compressed using gzip\n" +" :``uzip``: zip archive, uncompressed\n" +" :``zip``: zip archive, compressed using deflate\n" "\n" " The exact name of the destination archive or directory is given\n" " using a format string; see 'hg help export' for details.\n" @@ -4932,15 +4985,37 @@ " removed.\n" " " msgstr "" +"skapa ett icke versionshanterat arkiv från en arkivresision\n" +"\n" +" Som standard används revisonen för arbetskatalogens förälder; använd\n" +" -r/--rev för att specificera en annan revision.\n" +"\n" +" För att definiera vilken typ av arkiv som ska skapas, använd -t/--type.\n" +" Giltiga typer är::\n" +"\n" +" :``files``: en katalog fylld med filer (standard)\n" +" :``tar``: tar-arkiv, okomprimerad\n" +" :``tbz2``: tar-arkiv, komprimerad med bzip2\n" +" :``tgz``: tar-arkiv, komprimerad med gzip\n" +" :``uzip``: zip-arkiv, okomprimerad\n" +" :``zip``: zip-arkiv, komprimerad med deflate\n" +"\n" +" Det exakta namnet på destinationsarkivet eller -katalogen anges med en\n" +" formatsträng; se 'hg help export' för detaljer.\n" +"\n" +" Varje fil som läggs till en arkivfil har ett katalogprefix. Använd\n" +" -p/--prefix för att specificera en formatsträn för prefixet. Som\n" +" standard används basnamnet för arkivet, med suffix borttagna.\n" +" " msgid "no working directory: please specify a revision" -msgstr "" +msgstr "ingen arbetskatalog: specificera en revision" msgid "repository root cannot be destination" -msgstr "" +msgstr "arkivroten kan inte vara destinationen" msgid "cannot archive plain files to stdout" -msgstr "" +msgstr "kan inte arkivera rena filer till stdout" msgid "" "reverse effect of earlier changeset\n" @@ -4960,42 +5035,59 @@ " See 'hg help dates' for a list of formats valid for -d/--date.\n" " " msgstr "" +"omvänd effekten från en tidigare ändring\n" +"\n" +" Arkivera de återkallade ändringarna som en ny ändring. Den nya\n" +" ändringen är ett barn till den återkallade ändringen.\n" +"\n" +" Om du återkallar en annan ändring än toppen, skapas ett nytt huvud.\n" +" Detta huvud kommer att vara en nya toppen och du bör sammanfoga den med\n" +" ett annat huvud.\n" +"\n" +" Flaggan --merge kommer ihåg arbetskatalogens förälder innan\n" +" återkallningen påbörjas, och sammanfogar sedan det nya huvudet med den\n" +" ändringen efteråt. Detta gör att du inte behöver göra sammanfogningen\n" +" manuellt. Resultatet av sammanfogningen arkiveras inte, precis som en\n" +" vanlig sammanfogning.\n" +"\n" +" Se 'hg help dates' för en lista med giltiga format för -d/--date.\n" +" " msgid "please specify just one revision" -msgstr "" +msgstr "specificera bara en revision" msgid "please specify a revision to backout" -msgstr "" +msgstr "specificera en revision att återkalla" msgid "cannot backout change on a different branch" -msgstr "" +msgstr "kan inte återkalla en ändring på en annan gren" msgid "cannot backout a change with no parents" -msgstr "" +msgstr "kan inte återkalla en ändring utan föräldrar" msgid "cannot backout a merge changeset without --parent" -msgstr "" +msgstr "kan inte återkalla en sammanfogande ändring utan --parent" #, python-format msgid "%s is not a parent of %s" -msgstr "" +msgstr "%s är inte en förälder till %s" msgid "cannot use --parent on non-merge changeset" -msgstr "" +msgstr "kan inte använda --parent på icke-sammanfogande ändring" #, python-format msgid "changeset %s backs out changeset %s\n" -msgstr "" +msgstr "ändringen %s återkallar ändringen %s\n" #, python-format msgid "merging with changeset %s\n" -msgstr "" +msgstr "sammanfogar med ändring %s\n" msgid "the backout changeset is a new head - do not forget to merge\n" -msgstr "" +msgstr "återkallningsändringen är ett nytt huvud - glöm inte att sammanfoga\n" msgid "(use \"backout --merge\" if you want to auto-merge)\n" -msgstr "" +msgstr "(använd \"backout --merge\" om du vill auto-sammanfoga)\n" msgid "" "subdivision search of changesets\n" @@ -5146,11 +5238,11 @@ "\n" " Output may be to a file, in which case the name of the file is\n" " given using a format string. The formatting rules are the same as\n" -" for the export command, with the following additions::\n" -"\n" -" %s basename of file being printed\n" -" %d dirname of file being printed, or '.' if in repository root\n" -" %p root-relative path name of file being printed\n" +" for the export command, with the following additions:\n" +"\n" +" :``%s``: basename of file being printed\n" +" :``%d``: dirname of file being printed, or '.' if in repository root\n" +" :``%p``: root-relative path name of file being printed\n" " " msgstr "" @@ -5176,9 +5268,9 @@ " will be the null changeset). Otherwise, clone will initially check\n" " out (in order of precedence):\n" "\n" -" a) the changeset, tag or branch specified with -u/--updaterev\n" -" b) the changeset, tag or branch given with the first -r/--rev\n" -" c) the head of the default branch\n" +" a) the changeset, tag or branch specified with -u/--updaterev\n" +" b) the changeset, tag or branch given with the first -r/--rev\n" +" c) the head of the default branch\n" "\n" " Use 'hg clone -u . src dst' to checkout the source repository's\n" " parent changeset (applicable for local source repositories only).\n" @@ -5187,8 +5279,8 @@ " by listing each changeset (tag, or branch name) with -r/--rev.\n" " If -r/--rev is used, the cloned repository will contain only a subset\n" " of the changesets of the source repository. Only the set of changesets\n" -" defined by all -r/--rev options (including their direct and indirect\n" -" parent changesets) will be pulled into the destination repository.\n" +" defined by all -r/--rev options (including all their ancestors)\n" +" will be pulled into the destination repository.\n" " No subsequent changesets (including subsequent tags) will be present\n" " in the destination.\n" "\n" @@ -5236,9 +5328,9 @@ " förälder kommer att vara null-ändringen). Annars kommer klonen initialt\n" " att hämta ut (i prioritetsordning):\n" "\n" -" a) ändringen, taggen eller grenen specificerad med -u/--updaterev\n" -" b) ändringen, taggen eller grenen given med den första -r/--rev\n" -" c) huvudet på grenen 'default'\n" +" a) ändringen, taggen eller grenen specificerad med -u/--updaterev\n" +" b) ändringen, taggen eller grenen given med den första -r/--rev\n" +" c) huvudet på grenen 'default'\n" "\n" " Använd 'hg clone -u . källa dst' för att hämta ut källkodsarkivets\n" " föräldraänrding (gäller bara för lokala arkiv).\n" @@ -5247,9 +5339,9 @@ " genom att lista varje ändring (märke, eller grennamn) med -r/--rev.\n" " Om -r/--rev används, kommer det klonade arkivet bara att innehålla en\n" " delmängd av ändringarna i källarkivet. Bara ändringarna definierade med\n" -" -r/--rev (inklusive direkta och indirekta föräldrar) kommer att dras in\n" -" i destinationsarkivet. Inga efterföljande ändringar (inklusive\n" -" efterföljande märken) kommer att finnas i destinationen.\n" +" -r/--rev (och alla föräldrar) kommer att dras in i destinationsarkivet.\n" +" Inga efterföljande ändringar (inklusive efterföljande märken) kommer\n" +" att finnas i destinationen.\n" "\n" " Användande av -r/--rev (eller 'clone källa#rev dest') aktiverar också\n" " --pull, även för lokala arkiv.\n" @@ -5574,16 +5666,16 @@ " first parent only.\n" "\n" " Output may be to a file, in which case the name of the file is\n" -" given using a format string. The formatting rules are as follows::\n" -"\n" -" %% literal \"%\" character\n" -" %H changeset hash (40 bytes of hexadecimal)\n" -" %N number of patches being generated\n" -" %R changeset revision number\n" -" %b basename of the exporting repository\n" -" %h short-form changeset hash (12 bytes of hexadecimal)\n" -" %n zero-padded sequence number, starting at 1\n" -" %r zero-padded changeset revision number\n" +" given using a format string. The formatting rules are as follows:\n" +"\n" +" :``%%``: literal \"%\" character\n" +" :``%H``: changeset hash (40 bytes of hexadecimal)\n" +" :``%N``: number of patches being generated\n" +" :``%R``: changeset revision number\n" +" :``%b``: basename of the exporting repository\n" +" :``%h``: short-form changeset hash (12 bytes of hexadecimal)\n" +" :``%n``: zero-padded sequence number, starting at 1\n" +" :``%r``: zero-padded changeset revision number\n" "\n" " Without the -a/--text option, export will avoid generating diffs\n" " of files it detects as binary. With -a, export will generate a\n" @@ -5610,14 +5702,14 @@ " Utmatning kan vara till en fil, och då anges namnet på filen med en\n" " formatsträng. Formateringsreglerna är som följer::\n" "\n" -" %% ett \"%\"-tecken\n" -" %H ändringshash (40 hexadecimala bytes)\n" -" %N antal genererade patchar\n" -" %R ändringens revisionsnummer\n" -" %b basnamn för det exporterande arkivet\n" -" %h kort ändringshash (12 hexadecimala bytes)\n" -" %n nollpaddat sekvensnummer, börjar med 1\n" -" %r nollpaddat ändringsrevisionsnummer\n" +" :``%%``: ett \"%\"-tecken\n" +" :``%H``: ändringshash (40 hexadecimala bytes)\n" +" :``%N``: antal genererade patchar\n" +" :``%R``: ändringens revisionsnummer\n" +" :``%b``: basnamn för det exporterande arkivet\n" +" :``%h``: kort ändringshash (12 hexadecimala bytes)\n" +" :``%n``: nollpaddat sekvensnummer, börjar med 1\n" +" :``%r``: nollpaddat ändringsrevisionsnummer\n" "\n" " Utan flaggan -a/--text, kommer export att undvika skapandet av diffar\n" " av filer som upptäcks vara binära. Med -a, kommer filen att exporteras\n" @@ -5783,25 +5875,24 @@ "alias: %s\n" msgid "(no help text available)" -msgstr "" +msgstr "(ingen hjälptext tillgänglig)" msgid "options:\n" msgstr "flaggor:\n" msgid "no commands defined\n" -msgstr "" - -msgid "enabled extensions:" -msgstr "aktiverade utökningar:" +msgstr "inga kommandon definierade\n" msgid "no help text available" -msgstr "" +msgstr "ingen hjälptext tillgänglig" #, python-format msgid "" "%s extension - %s\n" "\n" msgstr "" +"%s-utökning - %s\n" +"\n" msgid "Mercurial Distributed SCM\n" msgstr "Mercurial Distribuerad SCM\n" @@ -5813,6 +5904,9 @@ "grundläggande kommandon:\n" "\n" +msgid "enabled extensions:" +msgstr "aktiverade utökningar:" + msgid "DEPRECATED" msgstr "FÖRLEGAD" @@ -6417,13 +6511,13 @@ " Transactions are used to encapsulate the effects of all commands\n" " that create new changesets or propagate existing changesets into a\n" " repository. For example, the following commands are transactional,\n" -" and their effects can be rolled back::\n" -"\n" -" commit\n" -" import\n" -" pull\n" -" push (with this repository as destination)\n" -" unbundle\n" +" and their effects can be rolled back:\n" +"\n" +" - commit\n" +" - import\n" +" - pull\n" +" - push (with this repository as destination)\n" +" - unbundle\n" "\n" " This command is not intended for use on public repositories. Once\n" " changes are visible for pull by other users, rolling a transaction\n" @@ -6706,6 +6800,11 @@ " bundle command.\n" " " msgstr "" +"applicera en eller flera filer med ändringar\n" +"\n" +" Applicera en eller flera komprimerade filer med ändringar genererade\n" +" av bundle-kommandot.\n" +" " msgid "" "update working directory\n" @@ -6720,13 +6819,13 @@ " The following rules apply when the working directory contains\n" " uncommitted changes:\n" "\n" -" 1. If neither -c/--check nor -C/--clean is specified, uncommitted\n" -" changes are merged into the requested changeset, and the merged " -"result\n" -" is left uncommitted. Updating and merging will occur only if the\n" -" requested changeset is an ancestor or descendant of the parent\n" -" changeset. Otherwise, the update is aborted and the uncommitted " -"changes\n" +" 1. If neither -c/--check nor -C/--clean is specified, and if\n" +" the requested changeset is an ancestor or descendant of\n" +" the working directory's parent, the uncommitted changes\n" +" are merged into the requested changeset and the merged\n" +" result is left uncommitted. If the requested changeset is\n" +" not an ancestor or descendant (that is, it is on another\n" +" branch), the update is aborted and the uncommitted changes\n" " are preserved.\n" "\n" " 2. With the -c/--check option, the update is aborted and the\n" @@ -6755,12 +6854,13 @@ " Följande regler gäller när arbetskatalogen innehåller oarkiverade\n" " ändringar:\n" "\n" -" 1. Om varken -c/--check eller -C/--clean specificeras, kommer\n" -" oarkiverade ändringar att sammanfogas med den begärda ändringen,\n" -" och det sammanfogade resultatet lämnas oarkiverat. Uppdatering och\n" -" sammanfogning kommer bara att göras om den begärda ändringen är en\n" -" anfader eller ättling till föräldraändringen. Om inte, avbryts\n" -" uppdateringen och de oarkiverade ändringarna lämnas.\n" +" 1. Om varken -c/--check eller -C/--clean specificeras, och om den\n" +" begärda ändringen är en anfader eller ättling till arbetskatalogens\n" +" förälder, kommer oarkiverade ändringar att sammanfogas med den\n" +" begärda ändringen och det sammanfogade resultatet lämnas oarkiverat.\n" +" Om den begärda ändringen inte är en anfader eller ättling (dvs är i\n" +" en annan gren), avbryts uppdateringen och de oarkiverade ändringarna\n" +" bevaras.\n" "\n" " 2. Med flaggan -c/--check avbryts uppdateringen och de oarkiverade\n" " ändringarna lämnas.\n" @@ -6794,13 +6894,21 @@ " integrity of their crosslinks and indices.\n" " " msgstr "" +"verifiera arkivets integritet\n" +"\n" +" Verifiera det aktuella arkivets integritet.\n" +"\n" +" Detta genomför en omfattande kontroll av arkivets integritet, validerar\n" +" hash- och checksummor för varje notering i ändringsloggen, manifestet,\n" +" och spårade filer, såväl som integriteten av korslänkar och indexar.\n" +" " msgid "output version and copyright information" -msgstr "" +msgstr "visa version och copyright-information" #, python-format msgid "Mercurial Distributed SCM (version %s)\n" -msgstr "" +msgstr "Mercurial Distribuerad SCM (version %s)\n" msgid "" "\n" @@ -6808,6 +6916,10 @@ "This is free software; see the source for copying conditions. There is NO\n" "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" msgstr "" +"\n" +"Copyright (C) 2005-2009 Matt Mackall <mpm@selenic.com> och andra\n" +"Detta är fri mjukvara; se källkoden för kopieringsvillkor. Det ges INGEN\n" +"garanti; inte ens för SÄLJBARHET eller ATT PASSA FÖR ETT VISST ÄNDAMÅL.\n" msgid "repository root directory or name of overlay bundle file" msgstr "arkivrotkatalog eller namn på påläggsbuntfil" @@ -6918,7 +7030,7 @@ msgstr "visa sammanfattning av ändringar i diffstat-stil" msgid "guess renamed files by similarity (0<=s<=100)" -msgstr "" +msgstr "gissa omdöpta filer efter likhet (0<=s<=100)" msgid "[OPTION]... [FILE]..." msgstr "[FLAGGA]... [FIL]..." @@ -6948,31 +7060,31 @@ msgstr "[-r REV] [-f] [-a] [-u] [-d] [-n] [-c] [-l] FIL..." msgid "do not pass files through decoders" -msgstr "" +msgstr "passera inte filer genom dekoders" msgid "directory prefix for files in archive" -msgstr "" +msgstr "katalogprefix för filer i arkiv" msgid "revision to distribute" -msgstr "" +msgstr "revision att distribuera" msgid "type of distribution to create" -msgstr "" +msgstr "distributionstyp att skapa" msgid "[OPTION]... DEST" -msgstr "" +msgstr "[FLAGGA]... DEST" msgid "merge with old dirstate parent after backout" -msgstr "" +msgstr "sammanfoga med gamla dirstate-föräldern efter återkallning" msgid "parent to choose when backing out merge" -msgstr "" +msgstr "förälder att välja när en sammanfogning återkallas" msgid "revision to backout" -msgstr "" +msgstr "revision att återkalla" msgid "[OPTION]... [-r] REV" -msgstr "" +msgstr "[FLAGGA]... [-r] REV" msgid "reset bisect state" msgstr "" @@ -7029,7 +7141,7 @@ msgstr "" msgid "[-f] [-a] [-r REV]... [--base REV]... FILE [DEST]" -msgstr "" +msgstr "[-f] [-a] [-r REV]... [--base REV]... FIL [DEST]" msgid "print output to file with formatted name" msgstr "skriv utmatning till fil med formatterat namn" @@ -7049,8 +7161,8 @@ msgid "revision, tag or branch to check out" msgstr "revision, märke eller gren att hämta ut" -msgid "a changeset you would like to have after cloning" -msgstr "en ändring du skulle vilja ha efter kloning" +msgid "clone only the specified revisions and ancestors" +msgstr "klona bara specificerade revisioner och anfäder" msgid "[OPTION]... SOURCE [DEST]" msgstr "[FLAGGA]... KÄLLA [DEST]" @@ -7068,7 +7180,7 @@ msgstr "" msgid "[OPTION]... [SOURCE]... DEST" -msgstr "" +msgstr "[FLAGGA]... [KÄLLA]... DEST" msgid "[INDEX] REV1 REV2" msgstr "" @@ -7449,10 +7561,10 @@ msgstr "" msgid "update to new tip if changesets were unbundled" -msgstr "" +msgstr "uppdatera till ny topp om ändringas packades upp" msgid "[-u] FILE..." -msgstr "" +msgstr "[-u] FIL..." msgid "discard uncommitted changes (no backup)" msgstr "kassera oarkiverade ändringar (ingen backup)" @@ -7516,7 +7628,7 @@ #, python-format msgid "abort: %s\n" -msgstr "" +msgstr "avbryter: %s\n" #, python-format msgid "hg: %s\n" @@ -7616,6 +7728,16 @@ msgstr "" #, python-format +msgid "" +"alias for: hg %s\n" +"\n" +"%s" +msgstr "" +"alias för: hg %s\n" +"\n" +"%s" + +#, python-format msgid "alias '%s' resolves to unknown command '%s'\n" msgstr "" @@ -7624,7 +7746,7 @@ msgstr "" #, python-format -msgid "malformed --config option: %s" +msgid "malformed --config option: %r (use --config section.name=value)" msgstr "" #, python-format @@ -7734,7 +7856,7 @@ msgstr "" msgid "Configuration Files" -msgstr "" +msgstr "Konfigurationsfiler" msgid "Date Formats" msgstr "" @@ -7834,6 +7956,12 @@ msgid "%s hook is invalid (\"%s\" not in a module)" msgstr "" +msgid "exception from first failed import attempt:\n" +msgstr "" + +msgid "exception from second failed import attempt:\n" +msgstr "" + #, python-format msgid "%s hook is invalid (import of \"%s\" failed)" msgstr "" @@ -8579,7 +8707,7 @@ msgstr "" msgid "no username supplied (see \"hg help config\")" -msgstr "" +msgstr "inget användarnamn angivet (se \"hg help config\")" #, python-format msgid "username %s contains a newline\n"
--- a/mercurial/ancestor.py Tue Dec 08 23:23:59 2009 +0100 +++ b/mercurial/ancestor.py Tue Dec 08 23:36:06 2009 +0100 @@ -9,10 +9,11 @@ def ancestor(a, b, pfunc): """ - return the least common ancestor of nodes a and b or None if there - is no such ancestor. + return a minimal-distance ancestor of nodes a and b, or None if there is no + such ancestor. Note that there can be several ancestors with the same + (minimal) distance, and the one returned is arbitrary. - pfunc must return a list of parent vertices + pfunc must return a list of parent vertices for a given vertex """ if a == b:
--- a/mercurial/cmdutil.py Tue Dec 08 23:23:59 2009 +0100 +++ b/mercurial/cmdutil.py Tue Dec 08 23:36:06 2009 +0100 @@ -270,31 +270,42 @@ def findrenames(repo, added, removed, threshold): '''find renamed files -- yields (before, after, score) tuples''' + copies = {} ctx = repo['.'] - for a in added: - aa = repo.wread(a) - bestname, bestscore = None, threshold - for r in removed: - if r not in ctx: - continue - rr = ctx.filectx(r).data() + for r in removed: + if r not in ctx: + continue + fctx = ctx.filectx(r) + def score(text): + if not len(text): + return 0.0 + if not fctx.cmp(text): + return 1.0 + if threshold == 1.0: + return 0.0 + orig = fctx.data() # bdiff.blocks() returns blocks of matching lines # count the number of bytes in each equal = 0 - alines = mdiff.splitnewlines(aa) - matches = bdiff.blocks(aa, rr) - for x1,x2,y1,y2 in matches: + alines = mdiff.splitnewlines(text) + matches = bdiff.blocks(text, orig) + for x1, x2, y1, y2 in matches: for line in alines[x1:x2]: equal += len(line) - lengths = len(aa) + len(rr) - if lengths: - myscore = equal*2.0 / lengths - if myscore >= bestscore: - bestname, bestscore = r, myscore - if bestname: - yield bestname, a, bestscore + lengths = len(text) + len(orig) + return equal * 2.0 / lengths + + for a in added: + bestscore = copies.get(a, (None, threshold))[1] + myscore = score(repo.wread(a)) + if myscore >= bestscore: + copies[a] = (r, myscore) + + for dest, v in copies.iteritems(): + source, score = v + yield source, dest, score def addremove(repo, pats=[], opts={}, dry_run=None, similarity=None): if dry_run is None: @@ -547,7 +558,7 @@ return errors def service(opts, parentfn=None, initfn=None, runfn=None, logfile=None, - runargs=None): + runargs=None, appendpid=False): '''Run a command as a service.''' if opts['daemon'] and not opts['daemon_pipefds']: @@ -577,7 +588,8 @@ initfn() if opts['pid_file']: - fp = open(opts['pid_file'], 'w') + mode = appendpid and 'a' or 'w' + fp = open(opts['pid_file'], mode) fp.write(str(os.getpid()) + '\n') fp.close() @@ -744,7 +756,8 @@ cache={ 'parent': '{rev}:{node|formatnode} ', 'manifest': '{rev}:{node|formatnode}', - 'filecopy': '{name} ({source})'}) + 'filecopy': '{name} ({source})', + 'extra': '{key}={value|stringescape}'}) # Cache mapping from rev to a tuple with tag date, tag # distance and tag name self._latesttagcache = {-1: (0, 0, 'null')}
--- a/mercurial/commands.py Tue Dec 08 23:23:59 2009 +0100 +++ b/mercurial/commands.py Tue Dec 08 23:36:06 2009 +0100 @@ -1161,6 +1161,7 @@ With the --switch-parent option, the diff will be against the second parent. It can be useful to review a merge. """ + changesets += tuple(opts.get('rev', [])) if not changesets: raise util.Abort(_("export requires at least one changeset")) revs = cmdutil.revrange(repo, changesets) @@ -1476,7 +1477,7 @@ ui.write('\n') try: - aliases, i = cmdutil.findcmd(name, table, False) + aliases, entry = cmdutil.findcmd(name, table, False) except error.AmbiguousCommand, inst: # py3k fix: except vars can't be used outside the scope of the # except block, nor can be used inside a lambda. python issue4617 @@ -1485,12 +1486,17 @@ helplist(_('list of commands:\n\n'), select) return + # check if it's an invalid alias and display its error if it is + if getattr(entry[0], 'badalias', False): + entry[0](ui) + return + # synopsis - if len(i) > 2: - if i[2].startswith('hg'): - ui.write("%s\n" % i[2]) + if len(entry) > 2: + if entry[2].startswith('hg'): + ui.write("%s\n" % entry[2]) else: - ui.write('hg %s %s\n' % (aliases[0], i[2])) + ui.write('hg %s %s\n' % (aliases[0], entry[2])) else: ui.write('hg %s\n' % aliases[0]) @@ -1499,7 +1505,7 @@ ui.write(_("\naliases: %s\n") % ', '.join(aliases[1:])) # description - doc = gettext(i[0].__doc__) + doc = gettext(entry[0].__doc__) if not doc: doc = _("(no help text available)") if ui.quiet: @@ -1508,8 +1514,8 @@ if not ui.quiet: # options - if i[1]: - option_lists.append((_("options:\n"), i[1])) + if entry[1]: + option_lists.append((_("options:\n"), entry[1])) addglobalopts(False) @@ -2017,7 +2023,6 @@ else: endrev = len(repo) rcache = {} - ncache = {} def getrenamed(fn, rev): '''looks up all renames for a file (up to endrev) the first time the file is given. It indexes on the changerev and only @@ -2025,15 +2030,11 @@ Returns rename info for fn at changerev rev.''' if fn not in rcache: rcache[fn] = {} - ncache[fn] = {} fl = repo.file(fn) for i in fl: - node = fl.node(i) lr = fl.linkrev(i) - renamed = fl.renamed(node) + renamed = fl.renamed(fl.node(i)) rcache[fn][lr] = renamed - if renamed: - ncache[fn][node] = renamed if lr >= endrev: break if rev in rcache[fn]: @@ -2041,12 +2042,10 @@ # If linkrev != rev (i.e. rev not found in rcache) fallback to # filectx logic. - try: return repo[rev][fn].renamed() except error.LookupError: - pass - return None + return None df = False if opts["date"]: @@ -2849,7 +2848,8 @@ If one revision is given, it is used as the base revision. If two revisions are given, the differences between them are - shown. + shown. The --change option can also be used as a shortcut to list + the changed files of a revision from its first parent. The codes used to show the status of files are:: @@ -2863,7 +2863,18 @@ = origin of the previous file listed as A (added) """ - node1, node2 = cmdutil.revpair(repo, opts.get('rev')) + revs = opts.get('rev') + change = opts.get('change') + + if revs and change: + msg = _('cannot specify --rev and --change at the same time') + raise util.Abort(msg) + elif change: + node2 = repo.lookup(change) + node1 = repo[node2].parents()[0].node() + else: + node1, node2 = cmdutil.revpair(repo, revs) + cwd = (pats and repo.getcwd()) or '' end = opts.get('print0') and '\0' or '\n' copy = {} @@ -3451,7 +3462,8 @@ "^export": (export, [('o', 'output', '', _('print output to file with formatted name')), - ('', 'switch-parent', None, _('diff against the second parent')) + ('', 'switch-parent', None, _('diff against the second parent')), + ('r', 'rev', [], _('revisions to export')), ] + diffopts, _('[OPTION]... [-o OUTFILESPEC] REV...')), "^forget": @@ -3667,6 +3679,7 @@ ('0', 'print0', None, _('end filenames with NUL, for use with xargs')), ('', 'rev', [], _('show difference from revision')), + ('', 'change', '', _('list the changed files of a revision')), ] + walkopts, _('[OPTION]... [FILE]...')), "tag":
--- a/mercurial/context.py Tue Dec 08 23:23:59 2009 +0100 +++ b/mercurial/context.py Tue Dec 08 23:36:06 2009 +0100 @@ -433,19 +433,17 @@ # sort by revision (per file) which is a topological order visit = [] for f in files: - fn = [(n.rev(), n) for n in needed if n._path == f] - visit.extend(fn) + visit.extend(n for n in needed if n._path == f) hist = {} - for r, f in sorted(visit): + for f in sorted(visit, key=lambda x: x.rev()): curr = decorate(f.data(), f) for p in parents(f): - if p != nullid: - curr = pair(hist[p], curr) - # trim the history of unneeded revs - needed[p] -= 1 - if not needed[p]: - del hist[p] + curr = pair(hist[p], curr) + # trim the history of unneeded revs + needed[p] -= 1 + if not needed[p]: + del hist[p] hist[f] = curr return zip(hist[f][0], hist[f][1].splitlines(True))
--- a/mercurial/dispatch.py Tue Dec 08 23:23:59 2009 +0100 +++ b/mercurial/dispatch.py Tue Dec 08 23:36:06 2009 +0100 @@ -177,6 +177,7 @@ self.opts = [] self.help = '' self.norepo = True + self.badalias = False try: cmdutil.findcmd(self.name, cmdtable, True) @@ -189,6 +190,7 @@ ui.warn(_("no definition for alias '%s'\n") % self.name) return 1 self.fn = fn + self.badalias = True return @@ -205,18 +207,26 @@ self.args = aliasargs(self.fn) + args if cmd not in commands.norepo.split(' '): self.norepo = False + if self.help.startswith("hg " + cmd): + # drop prefix in old-style help lines so hg shows the alias + self.help = self.help[4 + len(cmd):] + self.__doc__ = _("alias for: hg %s\n\n%s") \ + % (definition, self.fn.__doc__) + except error.UnknownCommand: def fn(ui, *args): ui.warn(_("alias '%s' resolves to unknown command '%s'\n") \ % (self.name, cmd)) return 1 self.fn = fn + self.badalias = True except error.AmbiguousCommand: def fn(ui, *args): ui.warn(_("alias '%s' resolves to ambiguous command '%s'\n") \ % (self.name, cmd)) return 1 self.fn = fn + self.badalias = True def __call__(self, ui, *args, **opts): if self.shadows: @@ -245,14 +255,14 @@ if args: cmd, args = args[0], args[1:] - aliases, i = cmdutil.findcmd(cmd, commands.table, + aliases, entry = cmdutil.findcmd(cmd, commands.table, ui.config("ui", "strict")) cmd = aliases[0] - args = aliasargs(i[0]) + args + args = aliasargs(entry[0]) + args defaults = ui.config("defaults", cmd) if defaults: args = map(util.expandpath, shlex.split(defaults)) + args - c = list(i[1]) + c = list(entry[1]) else: cmd = None c = [] @@ -272,7 +282,7 @@ options[n] = cmdoptions[n] del cmdoptions[n] - return (cmd, cmd and i[0] or None, args, options, cmdoptions) + return (cmd, cmd and entry[0] or None, args, options, cmdoptions) def _parseconfig(ui, config): """parse the --config options from the command line"""
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/help/config.txt Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,37 @@ +Mercurial reads configuration data from several files, if they exist. +Below we list the most specific file first. + +On Windows, these configuration files are read: + +- ``<repo>\.hg\hgrc`` +- ``%USERPROFILE%\.hgrc`` +- ``%USERPROFILE%\Mercurial.ini`` +- ``%HOME%\.hgrc`` +- ``%HOME%\Mercurial.ini`` +- ``C:\Mercurial\Mercurial.ini`` +- ``HKEY_LOCAL_MACHINE\SOFTWARE\Mercurial`` +- ``<install-dir>\Mercurial.ini`` + +On Unix, these files are read: + +- ``<repo>/.hg/hgrc`` +- ``$HOME/.hgrc`` +- ``/etc/mercurial/hgrc`` +- ``/etc/mercurial/hgrc.d/*.rc`` +- ``<install-root>/etc/mercurial/hgrc`` +- ``<install-root>/etc/mercurial/hgrc.d/*.rc`` + +The configuration files for Mercurial use a simple ini-file format. A +configuration file consists of sections, led by a ``[section]`` header +and followed by ``name = value`` entries:: + + [ui] + username = Firstname Lastname <firstname.lastname@example.net> + verbose = True + +This above entries will be referred to as ``ui.username`` and +``ui.verbose``, respectively. Please see the hgrc man page for a full +description of the possible configuration values: + +- on Unix-like systems: ``man hgrc`` +- online: http://www.selenic.com/mercurial/hgrc.5.html
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/help/dates.txt Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,36 @@ +Some commands allow the user to specify a date, e.g.: + +- backout, commit, import, tag: Specify the commit date. +- log, revert, update: Select revision(s) by date. + +Many date formats are valid. Here are some examples: + +- ``Wed Dec 6 13:18:29 2006`` (local timezone assumed) +- ``Dec 6 13:18 -0600`` (year assumed, time offset provided) +- ``Dec 6 13:18 UTC`` (UTC and GMT are aliases for +0000) +- ``Dec 6`` (midnight) +- ``13:18`` (today assumed) +- ``3:39`` (3:39AM assumed) +- ``3:39pm`` (15:39) +- ``2006-12-06 13:18:29`` (ISO 8601 format) +- ``2006-12-6 13:18`` +- ``2006-12-6`` +- ``12-6`` +- ``12/6`` +- ``12/6/6`` (Dec 6 2006) + +Lastly, there is Mercurial's internal format: + +- ``1165432709 0`` (Wed Dec 6 13:18:29 2006 UTC) + +This is the internal representation format for dates. unixtime is the +number of seconds since the epoch (1970-01-01 00:00 UTC). offset is +the offset of the local timezone, in seconds west of UTC (negative if +the timezone is east of UTC). + +The log command also accepts date ranges: + +- ``<{datetime}`` - at or before a given date/time +- ``>{datetime}`` - on or after a given date/time +- ``{datetime} to {datetime}`` - a date range, inclusive +- ``-{days}`` - within a given number of days of today
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/help/diffs.txt Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,29 @@ +Mercurial's default format for showing changes between two versions of +a file is compatible with the unified format of GNU diff, which can be +used by GNU patch and many other standard tools. + +While this standard format is often enough, it does not encode the +following information: + +- executable status and other permission bits +- copy or rename information +- changes in binary files +- creation or deletion of empty files + +Mercurial also supports the extended diff format from the git VCS +which addresses these limitations. The git diff format is not produced +by default because a few widespread tools still do not understand this +format. + +This means that when generating diffs from a Mercurial repository +(e.g. with "hg export"), you should be careful about things like file +copies and renames or other things mentioned above, because when +applying a standard diff to a different repository, this extra +information is lost. Mercurial's internal operations (like push and +pull) are not affected by this, because they use an internal binary +format for communicating changes. + +To make Mercurial produce the git extended diff format, use the --git +option available for many commands, or set 'git = True' in the [diff] +section of your hgrc. You do not need to set this option when +importing diffs in this format or using them in the mq extension.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/help/environment.txt Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,76 @@ +HG + Path to the 'hg' executable, automatically passed when running + hooks, extensions or external tools. If unset or empty, this is + the hg executable's name if it's frozen, or an executable named + 'hg' (with %PATHEXT% [defaulting to COM/EXE/BAT/CMD] extensions on + Windows) is searched. + +HGEDITOR + This is the name of the editor to run when committing. See EDITOR. + + (deprecated, use .hgrc) + +HGENCODING + This overrides the default locale setting detected by Mercurial. + This setting is used to convert data including usernames, + changeset descriptions, tag names, and branches. This setting can + be overridden with the --encoding command-line option. + +HGENCODINGMODE + This sets Mercurial's behavior for handling unknown characters + while transcoding user input. The default is "strict", which + causes Mercurial to abort if it can't map a character. Other + settings include "replace", which replaces unknown characters, and + "ignore", which drops them. This setting can be overridden with + the --encodingmode command-line option. + +HGMERGE + An executable to use for resolving merge conflicts. The program + will be executed with three arguments: local file, remote file, + ancestor file. + + (deprecated, use .hgrc) + +HGRCPATH + A list of files or directories to search for hgrc files. Item + separator is ":" on Unix, ";" on Windows. If HGRCPATH is not set, + platform default search path is used. If empty, only the .hg/hgrc + from the current repository is read. + + For each element in HGRCPATH: + + - if it's a directory, all files ending with .rc are added + - otherwise, the file itself will be added + +HGUSER + This is the string used as the author of a commit. If not set, + available values will be considered in this order: + + - HGUSER (deprecated) + - hgrc files from the HGRCPATH + - EMAIL + - interactive prompt + - LOGNAME (with ``@hostname`` appended) + + (deprecated, use .hgrc) + +EMAIL + May be used as the author of a commit; see HGUSER. + +LOGNAME + May be used as the author of a commit; see HGUSER. + +VISUAL + This is the name of the editor to use when committing. See EDITOR. + +EDITOR + Sometimes Mercurial needs to open a text file in an editor for a + user to modify, for example when writing commit messages. The + editor it uses is determined by looking at the environment + variables HGEDITOR, VISUAL and EDITOR, in that order. The first + non-empty one is chosen. If all of them are empty, the editor + defaults to 'vi'. + +PYTHONPATH + This is used by Python to find imported modules and may need to be + set appropriately if this Mercurial is not installed system-wide.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/help/extensions.txt Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,33 @@ +Mercurial has the ability to add new features through the use of +extensions. Extensions may add new commands, add options to +existing commands, change the default behavior of commands, or +implement hooks. + +Extensions are not loaded by default for a variety of reasons: +they can increase startup overhead; they may be meant for advanced +usage only; they may provide potentially dangerous abilities (such +as letting you destroy or modify history); they might not be ready +for prime time; or they may alter some usual behaviors of stock +Mercurial. It is thus up to the user to activate extensions as +needed. + +To enable the "foo" extension, either shipped with Mercurial or in +the Python search path, create an entry for it in your hgrc, like +this:: + + [extensions] + foo = + +You may also specify the full path to an extension:: + + [extensions] + myfeature = ~/.hgext/myfeature.py + +To explicitly disable an extension enabled in an hgrc of broader +scope, prepend its path with !:: + + [extensions] + # disabling extension bar residing in /path/to/extension/bar.py + hgext.bar = !/path/to/extension/bar.py + # ditto, but no path was supplied for extension baz + hgext.baz = !
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/help/multirevs.txt Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,13 @@ +When Mercurial accepts more than one revision, they may be specified +individually, or provided as a topologically continuous range, +separated by the ":" character. + +The syntax of range notation is [BEGIN]:[END], where BEGIN and END are +revision identifiers. Both BEGIN and END are optional. If BEGIN is not +specified, it defaults to revision number 0. If END is not specified, +it defaults to the tip. The range ":" thus means "all revisions". + +If BEGIN is greater than END, revisions are treated in reverse order. + +A range acts as a closed interval. This means that a range of 3:5 +gives 3, 4 and 5. Similarly, a range of 9:6 gives 9, 8, 7, and 6.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/help/patterns.txt Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,41 @@ +Mercurial accepts several notations for identifying one or more files +at a time. + +By default, Mercurial treats filenames as shell-style extended glob +patterns. + +Alternate pattern notations must be specified explicitly. + +To use a plain path name without any pattern matching, start it with +``path:``. These path names must completely match starting at the +current repository root. + +To use an extended glob, start a name with ``glob:``. Globs are rooted +at the current directory; a glob such as ``*.c`` will only match files +in the current directory ending with ``.c``. + +The supported glob syntax extensions are ``**`` to match any string +across path separators and ``{a,b}`` to mean "a or b". + +To use a Perl/Python regular expression, start a name with ``re:``. +Regexp pattern matching is anchored at the root of the repository. + +Plain examples:: + + path:foo/bar a name bar in a directory named foo in the root + of the repository + path:path:name a file or directory named "path:name" + +Glob examples:: + + glob:*.c any name ending in ".c" in the current directory + *.c any name ending in ".c" in the current directory + **.c any name ending in ".c" in any subdirectory of the + current directory including itself. + foo/*.c any name ending in ".c" in the directory foo + foo/**.c any name ending in ".c" in any subdirectory of foo + including itself. + +Regexp examples:: + + re:.*\.c$ any name ending in ".c", anywhere in the repository
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/help/revisions.txt Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,29 @@ +Mercurial supports several ways to specify individual revisions. + +A plain integer is treated as a revision number. Negative integers are +treated as sequential offsets from the tip, with -1 denoting the tip, +-2 denoting the revision prior to the tip, and so forth. + +A 40-digit hexadecimal string is treated as a unique revision +identifier. + +A hexadecimal string less than 40 characters long is treated as a +unique revision identifier and is referred to as a short-form +identifier. A short-form identifier is only valid if it is the prefix +of exactly one full-length identifier. + +Any other string is treated as a tag or branch name. A tag name is a +symbolic name associated with a revision identifier. A branch name +denotes the tipmost revision of that branch. Tag and branch names must +not contain the ":" character. + +The reserved name "tip" is a special tag that always identifies the +most recent revision. + +The reserved name "null" indicates the null revision. This is the +revision of an empty repository, and the parent of revision 0. + +The reserved name "." indicates the working directory parent. If no +working directory is checked out, it is equivalent to null. If an +uncommitted merge is in progress, "." is the revision of the first +parent.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/help/templates.txt Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,113 @@ +Mercurial allows you to customize output of commands through +templates. You can either pass in a template from the command +line, via the --template option, or select an existing +template-style (--style). + +You can customize output for any "log-like" command: log, +outgoing, incoming, tip, parents, heads and glog. + +Three styles are packaged with Mercurial: default (the style used +when no explicit preference is passed), compact and changelog. +Usage:: + + $ hg log -r1 --style changelog + +A template is a piece of text, with markup to invoke variable +expansion:: + + $ hg log -r1 --template "{node}\n" + b56ce7b07c52de7d5fd79fb89701ea538af65746 + +Strings in curly braces are called keywords. The availability of +keywords depends on the exact context of the templater. These +keywords are usually available for templating a log-like command: + +:author: String. The unmodified author of the changeset. +:branches: String. The name of the branch on which the changeset + was committed. Will be empty if the branch name was + default. +:date: Date information. The date when the changeset was + committed. +:desc: String. The text of the changeset description. +:diffstat: String. Statistics of changes with the following + format: "modified files: +added/-removed lines" +:files: List of strings. All files modified, added, or removed + by this changeset. +:file_adds: List of strings. Files added by this changeset. +:file_mods: List of strings. Files modified by this changeset. +:file_dels: List of strings. Files removed by this changeset. +:node: String. The changeset identification hash, as a + 40-character hexadecimal string. +:parents: List of strings. The parents of the changeset. +:rev: Integer. The repository-local changeset revision + number. +:tags: List of strings. Any tags associated with the + changeset. +:latesttag: String. Most recent global tag in the ancestors of this + changeset. +:latesttagdistance: Integer. Longest path to the latest tag. + +The "date" keyword does not produce human-readable output. If you +want to use a date in your output, you can use a filter to process +it. Filters are functions which return a string based on the input +variable. You can also use a chain of filters to get the desired +output:: + + $ hg tip --template "{date|isodate}\n" + 2008-08-21 18:22 +0000 + +List of filters: + +:addbreaks: Any text. Add an XHTML "<br />" tag before the end of + every line except the last. +:age: Date. Returns a human-readable date/time difference + between the given date/time and the current + date/time. +:basename: Any text. Treats the text as a path, and returns the + last component of the path after splitting by the + path separator (ignoring trailing separators). For + example, "foo/bar/baz" becomes "baz" and "foo/bar//" + becomes "bar". +:stripdir: Treat the text as path and strip a directory level, + if possible. For example, "foo" and "foo/bar" becomes + "foo". +:date: Date. Returns a date in a Unix date format, including + the timezone: "Mon Sep 04 15:13:13 2006 0700". +:domain: Any text. Finds the first string that looks like an + email address, and extracts just the domain + component. Example: ``User <user@example.com>`` becomes + ``example.com``. +:email: Any text. Extracts the first string that looks like + an email address. Example: ``User <user@example.com>`` + becomes ``user@example.com``. +:escape: Any text. Replaces the special XML/XHTML characters + "&", "<" and ">" with XML entities. +:fill68: Any text. Wraps the text to fit in 68 columns. +:fill76: Any text. Wraps the text to fit in 76 columns. +:firstline: Any text. Returns the first line of text. +:nonempty: Any text. Returns '(none)' if the string is empty. +:hgdate: Date. Returns the date as a pair of numbers: + "1157407993 25200" (Unix timestamp, timezone offset). +:isodate: Date. Returns the date in ISO 8601 format: + "2009-08-18 13:00 +0200". +:isodatesec: Date. Returns the date in ISO 8601 format, including + seconds: "2009-08-18 13:00:13 +0200". See also the + rfc3339date filter. +:localdate: Date. Converts a date to local date. +:obfuscate: Any text. Returns the input text rendered as a + sequence of XML entities. +:person: Any text. Returns the text before an email address. +:rfc822date: Date. Returns a date using the same format used in + email headers: "Tue, 18 Aug 2009 13:00:13 +0200". +:rfc3339date: Date. Returns a date using the Internet date format + specified in RFC 3339: "2009-08-18T13:00:13+02:00". +:short: Changeset hash. Returns the short form of a changeset + hash, i.e. a 12-byte hexadecimal string. +:shortdate: Date. Returns a date like "2006-09-18". +:strip: Any text. Strips all leading and trailing whitespace. +:tabindent: Any text. Returns the text, with every line except + the first starting with a tab character. +:urlescape: Any text. Escapes all "special" characters. For + example, "foo bar" becomes "foo%20bar". +:user: Any text. Returns the user portion of an email + address.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/help/urls.txt Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,63 @@ +Valid URLs are of the form:: + + local/filesystem/path[#revision] + file://local/filesystem/path[#revision] + http://[user[:pass]@]host[:port]/[path][#revision] + https://[user[:pass]@]host[:port]/[path][#revision] + ssh://[user[:pass]@]host[:port]/[path][#revision] + +Paths in the local filesystem can either point to Mercurial +repositories or to bundle files (as created by 'hg bundle' or 'hg +incoming --bundle'). + +An optional identifier after # indicates a particular branch, tag, or +changeset to use from the remote repository. See also 'hg help +revisions'. + +Some features, such as pushing to http:// and https:// URLs are only +possible if the feature is explicitly enabled on the remote Mercurial +server. + +Some notes about using SSH with Mercurial: + +- SSH requires an accessible shell account on the destination machine + and a copy of hg in the remote path or specified with as remotecmd. +- path is relative to the remote user's home directory by default. Use + an extra slash at the start of a path to specify an absolute path:: + + ssh://example.com//tmp/repository + +- Mercurial doesn't use its own compression via SSH; the right thing + to do is to configure it in your ~/.ssh/config, e.g.:: + + Host *.mylocalnetwork.example.com + Compression no + Host * + Compression yes + + Alternatively specify "ssh -C" as your ssh command in your hgrc or + with the --ssh command line option. + +These URLs can all be stored in your hgrc with path aliases under the +[paths] section like so:: + + [paths] + alias1 = URL1 + alias2 = URL2 + ... + +You can then use the alias for any command that uses a URL (for +example 'hg pull alias1' will be treated as 'hg pull URL1'). + +Two path aliases are special because they are used as defaults when +you do not provide the URL to a command: + +default: + When you create a repository with hg clone, the clone command saves + the location of the source repository as the new repository's + 'default' path. This is then used when you omit path from push- and + pull-like commands (including incoming and outgoing). + +default-push: + The push command will look for a path named 'default-push', and + prefer it over 'default' if both are defined.
--- a/mercurial/hgweb/common.py Tue Dec 08 23:23:59 2009 +0100 +++ b/mercurial/hgweb/common.py Tue Dec 08 23:36:06 2009 +0100 @@ -16,6 +16,58 @@ HTTP_METHOD_NOT_ALLOWED = 405 HTTP_SERVER_ERROR = 500 +# Hooks for hgweb permission checks; extensions can add hooks here. Each hook +# is invoked like this: hook(hgweb, request, operation), where operation is +# either read, pull or push. Hooks should either raise an ErrorResponse +# exception, or just return. +# It is possible to do both authentication and authorization through this. +permhooks = [] + +def checkauthz(hgweb, req, op): + '''Check permission for operation based on request data (including + authentication info). Return if op allowed, else raise an ErrorResponse + exception.''' + + user = req.env.get('REMOTE_USER') + + deny_read = hgweb.configlist('web', 'deny_read') + if deny_read and (not user or deny_read == ['*'] or user in deny_read): + raise ErrorResponse(HTTP_UNAUTHORIZED, 'read not authorized') + + allow_read = hgweb.configlist('web', 'allow_read') + result = (not allow_read) or (allow_read == ['*']) + if not (result or user in allow_read): + raise ErrorResponse(HTTP_UNAUTHORIZED, 'read not authorized') + + if op == 'pull' and not hgweb.allowpull: + raise ErrorResponse(HTTP_UNAUTHORIZED, 'pull not authorized') + elif op == 'pull' or op is None: # op is None for interface requests + return + + # enforce that you can only push using POST requests + if req.env['REQUEST_METHOD'] != 'POST': + msg = 'push requires POST request' + raise ErrorResponse(HTTP_METHOD_NOT_ALLOWED, msg) + + # require ssl by default for pushing, auth info cannot be sniffed + # and replayed + scheme = req.env.get('wsgi.url_scheme') + if hgweb.configbool('web', 'push_ssl', True) and scheme != 'https': + raise ErrorResponse(HTTP_OK, 'ssl required') + + deny = hgweb.configlist('web', 'deny_push') + if deny and (not user or deny == ['*'] or user in deny): + raise ErrorResponse(HTTP_UNAUTHORIZED, 'push not authorized') + + allow = hgweb.configlist('web', 'allow_push') + result = allow and (allow == ['*'] or user in allow) + if not result: + raise ErrorResponse(HTTP_UNAUTHORIZED, 'push not authorized') + +# Add the default permhook, which provides simple authorization. +permhooks.append(checkauthz) + + class ErrorResponse(Exception): def __init__(self, code, message=None, headers=[]): Exception.__init__(self)
--- a/mercurial/hgweb/hgweb_mod.py Tue Dec 08 23:23:59 2009 +0100 +++ b/mercurial/hgweb/hgweb_mod.py Tue Dec 08 23:36:06 2009 +0100 @@ -8,7 +8,7 @@ import os from mercurial import ui, hg, hook, error, encoding, templater -from common import get_mtime, ErrorResponse +from common import get_mtime, ErrorResponse, permhooks from common import HTTP_OK, HTTP_BAD_REQUEST, HTTP_NOT_FOUND, HTTP_SERVER_ERROR from common import HTTP_UNAUTHORIZED, HTTP_METHOD_NOT_ALLOWED from request import wsgirequest @@ -54,7 +54,9 @@ return self.repo.ui.configlist(section, name, default, untrusted=untrusted) - def refresh(self): + def refresh(self, request=None): + if request: + self.repo.ui.environ = request.env mtime = get_mtime(self.repo.root) if mtime != self.mtime: self.mtime = mtime @@ -80,7 +82,7 @@ def run_wsgi(self, req): - self.refresh() + self.refresh(req) # work with CGI variables to create coherent structure # use SCRIPT_NAME, PATH_INFO and QUERY_STRING as well as our REPO_NAME @@ -281,42 +283,5 @@ } def check_perm(self, req, op): - '''Check permission for operation based on request data (including - authentication info). Return if op allowed, else raise an ErrorResponse - exception.''' - - user = req.env.get('REMOTE_USER') - - deny_read = self.configlist('web', 'deny_read') - if deny_read and (not user or deny_read == ['*'] or user in deny_read): - raise ErrorResponse(HTTP_UNAUTHORIZED, 'read not authorized') - - allow_read = self.configlist('web', 'allow_read') - result = (not allow_read) or (allow_read == ['*']) - if not (result or user in allow_read): - raise ErrorResponse(HTTP_UNAUTHORIZED, 'read not authorized') - - if op == 'pull' and not self.allowpull: - raise ErrorResponse(HTTP_UNAUTHORIZED, 'pull not authorized') - elif op == 'pull' or op is None: # op is None for interface requests - return - - # enforce that you can only push using POST requests - if req.env['REQUEST_METHOD'] != 'POST': - msg = 'push requires POST request' - raise ErrorResponse(HTTP_METHOD_NOT_ALLOWED, msg) - - # require ssl by default for pushing, auth info cannot be sniffed - # and replayed - scheme = req.env.get('wsgi.url_scheme') - if self.configbool('web', 'push_ssl', True) and scheme != 'https': - raise ErrorResponse(HTTP_OK, 'ssl required') - - deny = self.configlist('web', 'deny_push') - if deny and (not user or deny == ['*'] or user in deny): - raise ErrorResponse(HTTP_UNAUTHORIZED, 'push not authorized') - - allow = self.configlist('web', 'allow_push') - result = allow and (allow == ['*'] or user in allow) - if not result: - raise ErrorResponse(HTTP_UNAUTHORIZED, 'push not authorized') + for hook in permhooks: + hook(self, req, op)
--- a/mercurial/httprepo.py Tue Dec 08 23:23:59 2009 +0100 +++ b/mercurial/httprepo.py Tue Dec 08 23:36:06 2009 +0100 @@ -93,7 +93,7 @@ resp_url = resp.geturl() if resp_url.endswith(qs): resp_url = resp_url[:-len(qs)] - if self._url != resp_url: + if self._url.rstrip('/') != resp_url.rstrip('/'): self.ui.status(_('real URL is %s\n') % resp_url) self._url = resp_url try:
--- a/mercurial/localrepo.py Tue Dec 08 23:23:59 2009 +0100 +++ b/mercurial/localrepo.py Tue Dec 08 23:36:06 2009 +0100 @@ -128,6 +128,12 @@ return context.workingctx(self) return context.changectx(self, changeid) + def __contains__(self, changeid): + try: + return bool(self.lookup(changeid)) + except error.RepoLookupError: + return False + def __nonzero__(self): return True @@ -819,6 +825,7 @@ extra, changes) if editor: cctx._text = editor(self, cctx, subs) + edited = (text != cctx._text) # commit subs if subs: @@ -829,7 +836,21 @@ state[s] = (state[s][0], sr) subrepo.writestate(self, state) - ret = self.commitctx(cctx, True) + # Save commit message in case this transaction gets rolled back + # (e.g. by a pretxncommit hook). Leave the content alone on + # the assumption that the user will use the same editor again. + msgfile = self.opener('last-message.txt', 'wb') + msgfile.write(cctx._text) + msgfile.close() + + try: + ret = self.commitctx(cctx, True) + except: + if edited: + msgfn = self.pathto(msgfile.name[len(self.root)+1:]) + self.ui.write( + _('note: commit message saved in %s\n') % msgfn) + raise # update dirstate and mergestate for f in changes[0] + changes[1]: @@ -1686,18 +1707,8 @@ # also assume the recipient will have all the parents. This function # prunes them from the set of missing nodes. def prune_parents(revlog, hasset, msngset): - haslst = list(hasset) - haslst.sort(key=revlog.rev) - for node in haslst: - parentlst = [p for p in revlog.parents(node) if p != nullid] - while parentlst: - n = parentlst.pop() - if n not in hasset: - hasset.add(n) - p = [p for p in revlog.parents(n) if p != nullid] - parentlst.extend(p) - for n in hasset: - msngset.pop(n, None) + for r in revlog.ancestors(*[revlog.rev(n) for n in hasset]): + msngset.pop(revlog.node(r), None) # This is a function generating function used to set up an environment # for the inner function to execute in. @@ -1743,7 +1754,6 @@ # A function generating function that sets up the initial environment # the inner function. def filenode_collector(changedfiles): - next_rev = [0] # This gathers information from each manifestnode included in the # changegroup about which filenodes the manifest node references # so we can include those in the changegroup too. @@ -1753,8 +1763,8 @@ # the first manifest that references it belongs to. def collect_msng_filenodes(mnfstnode): r = mnfst.rev(mnfstnode) - if r == next_rev[0]: - # If the last rev we looked at was the one just previous, + if r - 1 in mnfst.parentrevs(r): + # If the previous rev is one of the parents, # we only need to see a diff. deltamf = mnfst.readdelta(mnfstnode) # For each line in the delta @@ -1783,8 +1793,6 @@ clnode = msng_mnfst_set[mnfstnode] ndset = msng_filenode_set.setdefault(f, {}) ndset.setdefault(fnode, clnode) - # Remember the revision we hope to see next. - next_rev[0] = r + 1 return collect_msng_filenodes # We have a list of filenodes we think we need for a file, lets remove
--- a/mercurial/mail.py Tue Dec 08 23:23:59 2009 +0100 +++ b/mercurial/mail.py Tue Dec 08 23:36:06 2009 +0100 @@ -160,11 +160,7 @@ return str(email.Header.Header(s, cs)) return s -def addressencode(ui, address, charsets=None, display=False): - '''Turns address into RFC-2047 compliant header.''' - if display or not address: - return address or '' - name, addr = email.Utils.parseaddr(address) +def _addressencode(ui, name, addr, charsets=None): name = headencode(ui, name, charsets) try: acc, dom = addr.split('@') @@ -181,6 +177,26 @@ raise util.Abort(_('invalid local address: %s') % addr) return email.Utils.formataddr((name, addr)) +def addressencode(ui, address, charsets=None, display=False): + '''Turns address into RFC-2047 compliant header.''' + if display or not address: + return address or '' + name, addr = email.Utils.parseaddr(address) + return _addressencode(ui, name, addr, charsets) + +def addrlistencode(ui, addrs, charsets=None, display=False): + '''Turns a list of addresses into a list of RFC-2047 compliant headers. + A single element of input list may contain multiple addresses, but output + always has one address per item''' + if display: + return [a.strip() for a in addrs if a.strip()] + + result = [] + for name, addr in email.Utils.getaddresses(addrs): + if name or addr: + result.append(_addressencode(ui, name, addr, charsets)) + return result + def mimeencode(ui, s, charsets=None, display=False): '''creates mime text object, encodes it if needed, and sets charset and transfer-encoding accordingly.'''
--- a/mercurial/revlog.py Tue Dec 08 23:23:59 2009 +0100 +++ b/mercurial/revlog.py Tue Dec 08 23:36:06 2009 +0100 @@ -1118,10 +1118,19 @@ def ancestor(self, a, b): """calculate the least common ancestor of nodes a and b""" + # fast path, check if it is a descendant + a, b = self.rev(a), self.rev(b) + start, end = sorted((a, b)) + for i in self.descendants(start): + if i == end: + return self.node(start) + elif i > end: + break + def parents(rev): return [p for p in self.parentrevs(rev) if p != nullrev] - c = ancestor.ancestor(self.rev(a), self.rev(b), parents) + c = ancestor.ancestor(a, b, parents) if c is None: return nullid
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/atom/changelog.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,10 @@ +{header} + <!-- Changelog --> + <id>{urlbase}{url}</id> + <link rel="self" href="{urlbase}{url}atom-log"/> + <link rel="alternate" href="{urlbase}{url}"/> + <title>{repo|escape} Changelog</title> + {latestentry%feedupdated} + +{entries%changelogentry} +</feed>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/atom/changelogentry.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,16 @@ + <entry> + <title>{desc|strip|firstline|strip|escape|nonempty}</title> + <id>{urlbase}{url}#changeset-{node}</id> + <link href="{urlbase}{url}rev/{node|short}"/> + <author> + <name>{author|person|escape}</name> + <email>{author|email|obfuscate}</email> + </author> + <updated>{date|rfc3339date}</updated> + <published>{date|rfc3339date}</published> + <content type="xhtml"> + <div xmlns="http://www.w3.org/1999/xhtml"> + <pre xml:space="preserve">{desc|escape|nonempty}</pre> + </div> + </content> + </entry>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/atom/error.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,17 @@ +{header} + <!-- Error --> + <id>{urlbase}{url}</id> + <link rel="self" href="{urlbase}{url}atom-log"/> + <link rel="alternate" href="{urlbase}{url}"/> + <title>Error</title> + <updated>1970-01-01T00:00:00+00:00</updated> + <entry> + <title>Error</title> + <id>http://mercurial.selenic.com/#error</id> + <author> + <name>mercurial</name> + </author> + <updated>1970-01-01T00:00:00+00:00</updated> + <content type="text">{error|escape}</content> + </entry> +</feed>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/atom/filelog.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,8 @@ +{header} + <id>{urlbase}{url}atom-log/tip/{file|escape}</id> + <link rel="self" href="{urlbase}{url}atom-log/tip/{file|urlescape}"/> + <title>{repo|escape}: {file|escape} history</title> + {latestentry%feedupdated} + +{entries%changelogentry} +</feed>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/atom/header.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="{encoding}"?> +<feed xmlns="http://www.w3.org/2005/Atom"> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/atom/map Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,11 @@ +default = 'changelog' +feedupdated = '<updated>{date|rfc3339date}</updated>' +mimetype = 'application/atom+xml; charset={encoding}' +header = header.tmpl +changelog = changelog.tmpl +changelogentry = changelogentry.tmpl +filelog = filelog.tmpl +filelogentry = filelogentry.tmpl +tags = tags.tmpl +tagentry = tagentry.tmpl +error = error.tmpl
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/atom/tagentry.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,8 @@ + <entry> + <title>{tag|escape}</title> + <link rel="alternate" href="{urlbase}{url}rev/{node|short}"/> + <id>{urlbase}{url}#tag-{node}</id> + <updated>{date|rfc3339date}</updated> + <published>{date|rfc3339date}</published> + <content type="text">{tag|strip|escape}</content> + </entry>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/atom/tags.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,11 @@ +{header} + <id>{urlbase}{url}</id> + <link rel="self" href="{urlbase}{url}atom-tags"/> + <link rel="alternate" href="{urlbase}{url}tags"/> + <title>{repo|escape}: tags</title> + <summary>{repo|escape} tag history</summary> + <author><name>Mercurial SCM</name></author> + {latestentry%feedupdated} + +{entriesnotip%tagentry} +</feed>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/coal/header.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,6 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US"> +<head> +<link rel="icon" href="{staticurl}hgicon.png" type="image/png" /> +<meta name="robots" content="index, nofollow" /> +<link rel="stylesheet" href="{staticurl}style-coal.css" type="text/css" />
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/coal/map Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,191 @@ +default = 'shortlog' + +mimetype = 'text/html; charset={encoding}' +header = header.tmpl +footer = ../paper/footer.tmpl +search = ../paper/search.tmpl + +changelog = ../paper/shortlog.tmpl +shortlog = ../paper/shortlog.tmpl +shortlogentry = ../paper/shortlogentry.tmpl +graph = ../paper/graph.tmpl + +naventry = '<a href="{url}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> ' +navshortentry = '<a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> ' +navgraphentry = '<a href="{url}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> ' +filenaventry = '<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a> ' +filedifflink = '<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> ' +filenodelink = '<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> ' +filenolink = '{file|escape} ' +fileellipses = '...' +changelogentry = ../paper/shortlogentry.tmpl +searchentry = ../paper/shortlogentry.tmpl +changeset = ../paper/changeset.tmpl +manifest = ../paper/manifest.tmpl + +direntry = ' + <tr class="fileline parity{parity}"> + <td class="name"> + <a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}"> + <img src="{staticurl}coal-folder.png" alt="dir."/> {basename|escape}/ + </a> + <a href="{url}file/{node|short}{path|urlescape}/{emptydirs|urlescape}{sessionvars%urlparameter}"> + {emptydirs|escape} + </a> + </td> + <td class="size"></td> + <td class="permissions">drwxr-xr-x</td> + </tr>' + +fileentry = ' + <tr class="fileline parity{parity}"> + <td class="filename"> + <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}"> + <img src="{staticurl}coal-file.png" alt="file"/> {basename|escape} + </a> + </td> + <td class="size">{size}</td> + <td class="permissions">{permissions|permissions}</td> + </tr>' + +filerevision = ../paper/filerevision.tmpl +fileannotate = ../paper/fileannotate.tmpl +filediff = ../paper/filediff.tmpl +filelog = ../paper/filelog.tmpl +fileline = ' + <div class="parity{parity} source"><a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</div>' +filelogentry = ../paper/filelogentry.tmpl + +annotateline = ' + <tr class="parity{parity}"> + <td class="annotate"> + <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#{targetline}" + title="{node|short}: {desc|escape|firstline}">{author|user}@{rev}</a> + </td> + <td class="source"><a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</td> + </tr>' + +diffblock = '<div class="source bottomline parity{parity}"><pre>{lines}</pre></div>' +difflineplus = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span class="plusline">{line|escape}</span>' +difflineminus = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span class="minusline">{line|escape}</span>' +difflineat = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span class="atline">{line|escape}</span>' +diffline = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}' + +changelogparent = ' + <tr> + <th class="parent">parent {rev}:</th> + <td class="parent"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td> + </tr>' + +changesetparent = '<a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> ' + +filerevparent = '<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{rename%filerename}{node|short}</a> ' +filerevchild = '<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a> ' + +filerename = '{file|escape}@' +filelogrename = ' + <tr> + <th>base:</th> + <td> + <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}"> + {file|escape}@{node|short} + </a> + </td> + </tr>' +fileannotateparent = ' + <tr> + <td class="metatag">parent:</td> + <td> + <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}"> + {rename%filerename}{node|short} + </a> + </td> + </tr>' +changesetchild = ' <a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>' +changelogchild = ' + <tr> + <th class="child">child</th> + <td class="child"> + <a href="{url}rev/{node|short}{sessionvars%urlparameter}"> + {node|short} + </a> + </td> + </tr>' +fileannotatechild = ' + <tr> + <td class="metatag">child:</td> + <td> + <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}"> + {node|short} + </a> + </td> + </tr>' +tags = ../paper/tags.tmpl +tagentry = ' + <tr class="tagEntry parity{parity}"> + <td> + <a href="{url}rev/{node|short}{sessionvars%urlparameter}"> + {tag|escape} + </a> + </td> + <td class="node"> + {node|short} + </td> + </tr>' +branches = ../paper/branches.tmpl +branchentry = ' + <tr class="tagEntry parity{parity}"> + <td> + <a href="{url}shortlog/{node|short}{sessionvars%urlparameter}" class="{status}"> + {branch|escape} + </a> + </td> + <td class="node"> + {node|short} + </td> + </tr>' +changelogtag = '<span class="tag">{name|escape}</span> ' +changesettag = '<span class="tag">{tag|escape}</span> ' +changelogbranchhead = '<span class="branchhead">{name|escape}</span> ' +changelogbranchname = '<span class="branchname">{name|escape}</span> ' + +filediffparent = ' + <tr> + <th class="parent">parent {rev}:</th> + <td class="parent"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td> + </tr>' +filelogparent = ' + <tr> + <th>parent {rev}:</th> + <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td> + </tr>' +filediffchild = ' + <tr> + <th class="child">child {rev}:</th> + <td class="child"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> + </td> + </tr>' +filelogchild = ' + <tr> + <th>child {rev}:</th> + <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td> + </tr>' + +indexentry = ' + <tr class="parity{parity}"> + <td><a href="{url}{sessionvars%urlparameter}">{name|escape}</a></td> + <td>{description}</td> + <td>{contact|obfuscate}</td> + <td class="age">{lastchange|age} ago</td> + <td class="indexlinks">{archives%indexarchiveentry}</td> + </tr>\n' +indexarchiveentry = '<a href="{url}archive/{node|short}{extension|urlescape}"> ↓{type|escape}</a>' +index = ../paper/index.tmpl +archiveentry = ' + <li> + <a href="{url}archive/{node|short}{extension|urlescape}">{type|escape}</a> + </li>' +notfound = ../paper/notfound.tmpl +error = ../paper/error.tmpl +urlparameter = '{separator}{name}={value|urlescape}' +hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/gitweb/branches.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,30 @@ +{header} +<title>{repo|escape}: Branches</title> +<link rel="alternate" type="application/atom+xml" + href="{url}atom-tags" title="Atom feed for {repo|escape}"/> +<link rel="alternate" type="application/rss+xml" + href="{url}rss-tags" title="RSS feed for {repo|escape}"/> +</head> +<body> + +<div class="page_header"> +<a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / branches +</div> + +<div class="page_nav"> +<a href="{url}summary{sessionvars%urlparameter}">summary</a> | +<a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> | +<a href="{url}log{sessionvars%urlparameter}">changelog</a> | +<a href="{url}graph{sessionvars%urlparameter}">graph</a> | +<a href="{url}tags{sessionvars%urlparameter}">tags</a> | +branches | +<a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a> +<br/> +</div> + +<div class="title"> </div> +<table cellspacing="0"> +{entries%branchentry} +</table> + +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/gitweb/changelog.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,39 @@ +{header} +<title>{repo|escape}: Changelog</title> +<link rel="alternate" type="application/atom+xml" + href="{url}atom-log" title="Atom feed for {repo|escape}"/> +<link rel="alternate" type="application/rss+xml" + href="{url}rss-log" title="RSS feed for {repo|escape}"/> +</head> +<body> + +<div class="page_header"> +<a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / changelog +</div> + +<form action="{url}log"> +{sessionvars%hiddenformentry} +<div class="search"> +<input type="text" name="rev" /> +</div> +</form> + +<div class="page_nav"> +<a href="{url}summary{sessionvars%urlparameter}">summary</a> | +<a href="{url}shortlog/{rev}{sessionvars%urlparameter}">shortlog</a> | +changelog | +<a href="{url}graph{sessionvars%urlparameter}">graph</a> | +<a href="{url}tags{sessionvars%urlparameter}">tags</a> | +<a href="{url}branches{sessionvars%urlparameter}">branches</a> | +<a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>{archives%archiveentry} +<br/> +{changenav%naventry}<br/> +</div> + +{entries%changelogentry} + +<div class="page_nav"> +{changenav%naventry}<br/> +</div> + +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/gitweb/changelogentry.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,14 @@ +<div> +<a class="title" href="{url}rev/{node|short}{sessionvars%urlparameter}"><span class="age">{date|age}</span>{desc|strip|firstline|escape|nonempty}<span class="logtags"> {inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}</span></a> +</div> +<div class="title_text"> +<div class="log_link"> +<a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a><br/> +</div> +<i>{author|obfuscate} [{date|rfc822date}] rev {rev}</i><br/> +</div> +<div class="log_body"> +{desc|strip|escape|addbreaks|nonempty} +<br/> +<br/> +</div>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/gitweb/changeset.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,50 @@ +{header} +<title>{repo|escape}: changeset {rev}:{node|short}</title> +<link rel="alternate" type="application/atom+xml" + href="{url}atom-log" title="Atom feed for {repo|escape}"/> +<link rel="alternate" type="application/rss+xml" + href="{url}rss-log" title="RSS feed for {repo|escape}"/> +</head> +<body> + +<div class="page_header"> +<a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / changeset +</div> + +<div class="page_nav"> +<a href="{url}summary{sessionvars%urlparameter}">summary</a> | +<a href="{url}shortlog/{rev}{sessionvars%urlparameter}">shortlog</a> | +<a href="{url}log/{rev}{sessionvars%urlparameter}">changelog</a> | +<a href="{url}graph{sessionvars%urlparameter}">graph</a> | +<a href="{url}tags{sessionvars%urlparameter}">tags</a> | +<a href="{url}branches{sessionvars%urlparameter}">branches</a> | +<a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a> | +changeset | +<a href="{url}raw-rev/{node|short}">raw</a> {archives%archiveentry}<br/> +</div> + +<div> +<a class="title" href="{url}raw-rev/{node|short}">{desc|strip|escape|firstline|nonempty} <span class="logtags">{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}</span></a> +</div> +<div class="title_text"> +<table cellspacing="0"> +<tr><td>author</td><td>{author|obfuscate}</td></tr> +<tr><td></td><td>{date|date} ({date|age})</td></tr> +{branch%changesetbranch} +<tr><td>changeset {rev}</td><td style="font-family:monospace">{node|short}</td></tr> +{parent%changesetparent} +{child%changesetchild} +</table></div> + +<div class="page_body"> +{desc|strip|escape|addbreaks|nonempty} +</div> +<div class="list_head"></div> +<div class="title_text"> +<table cellspacing="0"> +{files} +</table></div> + +<div class="page_body">{diff}</div> + +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/gitweb/error.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,25 @@ +{header} +<title>{repo|escape}: Error</title> +<link rel="alternate" type="application/atom+xml" + href="{url}atom-log" title="Atom feed for {repo|escape}"/> +<link rel="alternate" type="application/rss+xml" + href="{url}rss-log" title="RSS feed for {repo|escape}"/> +</head> +<body> + +<div class="page_header"> +<a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / error +</div> + +<div class="page_nav"> +<a href="{url}summary{sessionvars%urlparameter}">summary</a> | <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> | <a href="{url}log{sessionvars%urlparameter}">changelog</a> | <a href="{url}tags{sessionvars%urlparameter}">tags</a> | <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a><br/> +</div> + +<div class="page_body"> +<br/> +<i>An error occurred while processing your request</i><br/> +<br/> +{error|escape} +</div> + +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/gitweb/fileannotate.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,62 @@ +{header} +<title>{repo|escape}: {file|escape}@{node|short} (annotated)</title> +<link rel="alternate" type="application/atom+xml" + href="{url}atom-log" title="Atom feed for {repo|escape}"/> +<link rel="alternate" type="application/rss+xml" + href="{url}rss-log" title="RSS feed for {repo|escape}"/> +</head> +<body> + +<div class="page_header"> +<a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / annotate +</div> + +<div class="page_nav"> +<a href="{url}summary{sessionvars%urlparameter}">summary</a> | +<a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> | +<a href="{url}log{sessionvars%urlparameter}">changelog</a> | +<a href="{url}graph{sessionvars%urlparameter}">graph</a> | +<a href="{url}tags{sessionvars%urlparameter}">tags</a> | +<a href="{url}branches{sessionvars%urlparameter}">branches</a> | +<a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a> | +<a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> | +<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> | +<a href="{url}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a> | +<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> | +annotate | +<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> | +<a href="{url}raw-annotate/{node|short}/{file|urlescape}">raw</a><br/> +</div> + +<div class="title">{file|escape}</div> + +<div class="title_text"> +<table cellspacing="0"> +<tr> + <td>author</td> + <td>{author|obfuscate}</td></tr> +<tr> + <td></td> + <td>{date|date} ({date|age})</td></tr> +{branch%filerevbranch} +<tr> + <td>changeset {rev}</td> + <td style="font-family:monospace"><a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td></tr> +{parent%fileannotateparent} +{child%fileannotatechild} +<tr> + <td>permissions</td> + <td style="font-family:monospace">{permissions|permissions}</td></tr> +</table> +</div> + +<div class="page_path"> +{desc|strip|escape|addbreaks|nonempty} +</div> +<div class="page_body"> +<table> +{annotate%annotateline} +</table> +</div> + +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/gitweb/filediff.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,48 @@ +{header} +<title>{repo|escape}: diff {file|escape}</title> +<link rel="alternate" type="application/atom+xml" + href="{url}atom-log" title="Atom feed for {repo|escape}"/> +<link rel="alternate" type="application/rss+xml" + href="{url}rss-log" title="RSS feed for {repo|escape}"/> +</head> +<body> + +<div class="page_header"> +<a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / diff +</div> + +<div class="page_nav"> +<a href="{url}summary{sessionvars%urlparameter}">summary</a> | +<a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> | +<a href="{url}log{sessionvars%urlparameter}">changelog</a> | +<a href="{url}graph{sessionvars%urlparameter}">graph</a> | +<a href="{url}tags{sessionvars%urlparameter}">tags</a> | +<a href="{url}branches{sessionvars%urlparameter}">branches</a> | +<a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a> | +<a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> | +<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> | +<a href="{url}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a> | +<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> | +<a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> | +diff | +<a href="{url}raw-diff/{node|short}/{file|urlescape}">raw</a><br/> +</div> + +<div class="title">{file|escape}</div> + +<table> +{branch%filerevbranch} +<tr> + <td>changeset {rev}</td> + <td style="font-family:monospace"><a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td></tr> +{parent%filediffparent} +{child%filediffchild} +</table> + +<div class="list_head"></div> + +<div class="page_body"> +{diff} +</div> + +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/gitweb/filelog.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,40 @@ +{header} +<title>{repo|escape}: File revisions</title> +<link rel="alternate" type="application/atom+xml" + href="{url}atom-log" title="Atom feed for {repo|escape}"/> +<link rel="alternate" type="application/rss+xml" + href="{url}rss-log" title="RSS feed for {repo|escape}"/> +</head> +<body> + +<div class="page_header"> +<a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / file revisions +</div> + +<div class="page_nav"> +<a href="{url}summary{sessionvars%urlparameter}">summary</a> | +<a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> | +<a href="{url}log{sessionvars%urlparameter}">changelog</a> | +<a href="{url}graph{sessionvars%urlparameter}">graph</a> | +<a href="{url}tags{sessionvars%urlparameter}">tags</a> | +<a href="{url}branches{sessionvars%urlparameter}">branches</a> | +<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> | +revisions | +<a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> | +<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> | +<a href="{url}rss-log/{node|short}/{file|urlescape}">rss</a> +<br/> +{nav%filenaventry} +</div> + +<div class="title" >{file|urlescape}</div> + +<table> +{entries%filelogentry} +</table> + +<div class="page_nav"> +{nav%filenaventry} +</div> + +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/gitweb/filerevision.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,61 @@ +{header} +<title>{repo|escape}: {file|escape}@{node|short}</title> +<link rel="alternate" type="application/atom+xml" + href="{url}atom-log" title="Atom feed for {repo|escape}"/> +<link rel="alternate" type="application/rss+xml" + href="{url}rss-log" title="RSS feed for {repo|escape}"/> +</head> +<body> + +<div class="page_header"> +<a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / file revision +</div> + +<div class="page_nav"> +<a href="{url}summary{sessionvars%urlparameter}">summary</a> | +<a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> | +<a href="{url}log{sessionvars%urlparameter}">changelog</a> | +<a href="{url}graph{sessionvars%urlparameter}">graph</a> | +<a href="{url}tags{sessionvars%urlparameter}">tags</a> | +<a href="{url}branches{sessionvars%urlparameter}">branches</a> | +<a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a> | +<a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> | +file | +<a href="{url}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a> | +<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> | +<a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> | +<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> | +<a href="{url}raw-file/{node|short}/{file|urlescape}">raw</a><br/> +</div> + +<div class="title">{file|escape}</div> + +<div class="title_text"> +<table cellspacing="0"> +<tr> + <td>author</td> + <td>{author|obfuscate}</td></tr> +<tr> + <td></td> + <td>{date|date} ({date|age})</td></tr> +{branch%filerevbranch} +<tr> + <td>changeset {rev}</td> + <td style="font-family:monospace"><a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td></tr> +{parent%filerevparent} +{child%filerevchild} +<tr> + <td>permissions</td> + <td style="font-family:monospace">{permissions|permissions}</td></tr> +</table> +</div> + +<div class="page_path"> +{desc|strip|escape|addbreaks|nonempty} +</div> + +<div class="page_body"> +{text%fileline} +</div> + +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/gitweb/footer.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,11 @@ +<div class="page_footer"> +<div class="page_footer_text">{repo|escape}</div> +<div class="rss_logo"> +<a href="{url}rss-log">RSS</a> +<a href="{url}atom-log">Atom</a> +</div> +<br /> +{motd} +</div> +</body> +</html>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/gitweb/graph.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,121 @@ +{header} +<title>{repo|escape}: Graph</title> +<link rel="alternate" type="application/atom+xml" + href="{url}atom-log" title="Atom feed for {repo|escape}"/> +<link rel="alternate" type="application/rss+xml" + href="{url}rss-log" title="RSS feed for {repo|escape}"/> +<!--[if IE]><script type="text/javascript" src="{staticurl}excanvas.js"></script><![endif]--> +</head> +<body> + +<div class="page_header"> +<a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / graph +</div> + +<form action="{url}log"> +{sessionvars%hiddenformentry} +<div class="search"> +<input type="text" name="rev" /> +</div> +</form> +<div class="page_nav"> +<a href="{url}summary{sessionvars%urlparameter}">summary</a> | +<a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> | +<a href="{url}log/{rev}{sessionvars%urlparameter}">changelog</a> | +graph | +<a href="{url}tags{sessionvars%urlparameter}">tags</a> | +<a href="{url}branches{sessionvars%urlparameter}">branches</a> | +<a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a> +<br/> +<a href="{url}graph/{rev}{lessvars%urlparameter}">less</a> +<a href="{url}graph/{rev}{morevars%urlparameter}">more</a> +| {changenav%navgraphentry}<br/> +</div> + +<div class="title"> </div> + +<noscript>The revision graph only works with JavaScript-enabled browsers.</noscript> + +<div id="wrapper"> +<ul id="nodebgs"></ul> +<canvas id="graph" width="224" height="{canvasheight}"></canvas> +<ul id="graphnodes"></ul> +</div> + +<script type="text/javascript" src="{staticurl}graph.js"></script> +<script> +<!-- hide script content + +var data = {jsdata|json}; +var graph = new Graph(); +graph.scale({bg_height}); + +graph.edge = function(x0, y0, x1, y1, color) { + + this.setColor(color, 0.0, 0.65); + this.ctx.beginPath(); + this.ctx.moveTo(x0, y0); + this.ctx.lineTo(x1, y1); + this.ctx.stroke(); + +} + +var revlink = '<li style="_STYLE"><span class="desc">'; +revlink += '<a class="list" href="{url}rev/_NODEID{sessionvars%urlparameter}" title="_NODEID"><b>_DESC</b></a>'; +revlink += '</span> _TAGS'; +revlink += '<span class="info">_DATE ago, by _USER</span></li>'; + +graph.vertex = function(x, y, color, parity, cur) { + + this.ctx.beginPath(); + color = this.setColor(color, 0.25, 0.75); + this.ctx.arc(x, y, radius, 0, Math.PI * 2, true); + this.ctx.fill(); + + var bg = '<li class="bg parity' + parity + '"></li>'; + var left = (this.columns + 1) * this.bg_height; + var nstyle = 'padding-left: ' + left + 'px;'; + var item = revlink.replace(/_STYLE/, nstyle); + item = item.replace(/_PARITY/, 'parity' + parity); + item = item.replace(/_NODEID/, cur[0]); + item = item.replace(/_NODEID/, cur[0]); + item = item.replace(/_DESC/, cur[3]); + item = item.replace(/_USER/, cur[4]); + item = item.replace(/_DATE/, cur[5]); + + var tagspan = ''; + if (cur[7].length || (cur[6][0] != 'default' || cur[6][1])) { + tagspan = '<span class="logtags">'; + if (cur[6][1]) { + tagspan += '<span class="branchtag" title="' + cur[6][0] + '">'; + tagspan += cur[6][0] + '</span> '; + } else if (!cur[6][1] && cur[6][0] != 'default') { + tagspan += '<span class="inbranchtag" title="' + cur[6][0] + '">'; + tagspan += cur[6][0] + '</span> '; + } + if (cur[7].length) { + for (var t in cur[7]) { + var tag = cur[7][t]; + tagspan += '<span class="tagtag">' + tag + '</span> '; + } + } + tagspan += '</span>'; + } + + item = item.replace(/_TAGS/, tagspan); + return [bg, item]; + +} + +graph.render(data); + +// stop hiding script --> +</script> + +<div class="page_nav"> +<a href="{url}graph/{rev}{lessvars%urlparameter}">less</a> +<a href="{url}graph/{rev}{morevars%urlparameter}">more</a> +| {changenav%navgraphentry} +</div> + +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/gitweb/header.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="{encoding}"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US"> +<head> +<link rel="icon" href="{staticurl}hgicon.png" type="image/png" /> +<meta name="robots" content="index, nofollow"/> +<link rel="stylesheet" href="{staticurl}style-gitweb.css" type="text/css" /> +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/gitweb/index.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,26 @@ +{header} +<title>Mercurial repositories index</title> +</head> +<body> + +<div class="page_header"> + <a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a> + Repositories list +</div> + +<table cellspacing="0"> + <tr> + <td><a href="?sort={sort_name}">Name</a></td> + <td><a href="?sort={sort_description}">Description</a></td> + <td><a href="?sort={sort_contact}">Contact</a></td> + <td><a href="?sort={sort_lastchange}">Last change</a></td> + <td> </td> + <td> </td> + </tr> + {entries%indexentry} +</table> +<div class="page_footer"> +{motd} +</div> +</body> +</html>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/gitweb/manifest.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,38 @@ +{header} +<title>{repo|escape}: files</title> +<link rel="alternate" type="application/atom+xml" + href="{url}atom-log" title="Atom feed for {repo|escape}"/> +<link rel="alternate" type="application/rss+xml" + href="{url}rss-log" title="RSS feed for {repo|escape}"/> +</head> +<body> + +<div class="page_header"> +<a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / files +</div> + +<div class="page_nav"> +<a href="{url}summary{sessionvars%urlparameter}">summary</a> | +<a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> | +<a href="{url}log{sessionvars%urlparameter}">changelog</a> | +<a href="{url}graph{sessionvars%urlparameter}">graph</a> | +<a href="{url}tags{sessionvars%urlparameter}">tags</a> | +<a href="{url}branches{sessionvars%urlparameter}">branches</a> | +files | +<a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> {archives%archiveentry}<br/> +</div> + +<div class="title">{path|escape} <span class="logtags">{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}</span></div> +<table cellspacing="0"> +<tr class="parity{upparity}"> +<td style="font-family:monospace">drwxr-xr-x</td> +<td style="font-family:monospace"></td> +<td style="font-family:monospace"></td> +<td><a href="{url}file/{node|short}{up|urlescape}{sessionvars%urlparameter}">[up]</a></td> +<td class="link"> </td> +</tr> +{dentries%direntry} +{fentries%fileentry} +</table> + +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/gitweb/map Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,248 @@ +default = 'summary' +mimetype = 'text/html; charset={encoding}' +header = header.tmpl +footer = footer.tmpl +search = search.tmpl +changelog = changelog.tmpl +summary = summary.tmpl +error = error.tmpl +notfound = notfound.tmpl +naventry = '<a href="{url}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> ' +navshortentry = '<a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> ' +navgraphentry = '<a href="{url}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> ' +filenaventry = '<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a> ' +filedifflink = '<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> ' +filenodelink = ' + <tr class="parity{parity}"> + <td><a class="list" href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td> + <td></td> + <td class="link"> + <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> | + <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> | + <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> | + <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> + </td> + </tr>' +filenolink = ' + <tr class="parity{parity}"> + <td><a class="list" href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td> + <td></td> + <td class="link"> + file | + annotate | + <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> | + <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> + </td> + </tr>' +fileellipses = '...' +changelogentry = changelogentry.tmpl +searchentry = changelogentry.tmpl +changeset = changeset.tmpl +manifest = manifest.tmpl +direntry = ' + <tr class="parity{parity}"> + <td style="font-family:monospace">drwxr-xr-x</td> + <td style="font-family:monospace"></td> + <td style="font-family:monospace"></td> + <td> + <a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">{basename|escape}</a> + <a href="{url}file/{node|short}{path|urlescape}/{emptydirs|urlescape}{sessionvars%urlparameter}">{emptydirs|escape}</a> + </td> + <td class="link"> + <a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a> + </td> + </tr>' +fileentry = ' + <tr class="parity{parity}"> + <td style="font-family:monospace">{permissions|permissions}</td> + <td style="font-family:monospace" align=right>{date|isodate}</td> + <td style="font-family:monospace" align=right>{size}</td> + <td class="list"> + <a class="list" href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{basename|escape}</a> + </td> + <td class="link"> + <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> | + <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> | + <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> + </td> + </tr>' +filerevision = filerevision.tmpl +fileannotate = fileannotate.tmpl +filediff = filediff.tmpl +filelog = filelog.tmpl +fileline = ' + <div style="font-family:monospace" class="parity{parity}"> + <pre><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</pre> + </div>' +annotateline = ' + <tr style="font-family:monospace" class="parity{parity}"> + <td class="linenr" style="text-align: right;"> + <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}" + title="{node|short}: {desc|escape|firstline}">{author|user}@{rev}</a> + </td> + <td><pre><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a></pre></td> + <td><pre>{line|escape}</pre></td> + </tr>' +difflineplus = '<span style="color:#008800;"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>' +difflineminus = '<span style="color:#cc0000;"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>' +difflineat = '<span style="color:#990099;"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>' +diffline = '<span><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>' +changelogparent = ' + <tr> + <th class="parent">parent {rev}:</th> + <td class="parent"> + <a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> + </td> + </tr>' +changesetbranch = '<tr><td>branch</td><td>{name}</td></tr>' +changesetparent = ' + <tr> + <td>parent {rev}</td> + <td style="font-family:monospace"> + <a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> + </td> + </tr>' +filerevbranch = '<tr><td>branch</td><td>{name}</td></tr>' +filerevparent = ' + <tr> + <td>parent {rev}</td> + <td style="font-family:monospace"> + <a class="list" href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}"> + {rename%filerename}{node|short} + </a> + </td> + </tr>' +filerename = '{file|escape}@' +filelogrename = '| <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">base</a>' +fileannotateparent = ' + <tr> + <td>parent {rev}</td> + <td style="font-family:monospace"> + <a class="list" href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}"> + {rename%filerename}{node|short} + </a> + </td> + </tr>' +changelogchild = ' + <tr> + <th class="child">child {rev}:</th> + <td class="child"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td> + </tr>' +changesetchild = ' + <tr> + <td>child {rev}</td> + <td style="font-family:monospace"> + <a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> + </td> + </tr>' +filerevchild = ' + <tr> + <td>child {rev}</td> + <td style="font-family:monospace"> + <a class="list" href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td> + </tr>' +fileannotatechild = ' + <tr> + <td>child {rev}</td> + <td style="font-family:monospace"> + <a class="list" href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td> + </tr>' +tags = tags.tmpl +tagentry = ' + <tr class="parity{parity}"> + <td class="age"><i>{date|age}</i></td> + <td><a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}"><b>{tag|escape}</b></a></td> + <td class="link"> + <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> | + <a href="{url}log/{node|short}{sessionvars%urlparameter}">changelog</a> | + <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a> + </td> + </tr>' +branches = branches.tmpl +branchentry = ' + <tr class="parity{parity}"> + <td class="age"><i>{date|age}</i></td> + <td><a class="list" href="{url}shortlog/{node|short}{sessionvars%urlparameter}"><b>{node|short}</b></a></td> + <td class="{status}">{branch|escape}</td> + <td class="link"> + <a href="{url}changeset/{node|short}{sessionvars%urlparameter}">changeset</a> | + <a href="{url}log/{node|short}{sessionvars%urlparameter}">changelog</a> | + <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a> + </td> + </tr>' +diffblock = '<pre>{lines}</pre>' +filediffparent = ' + <tr> + <td>parent {rev}</td> + <td style="font-family:monospace"> + <a class="list" href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}"> + {node|short} + </a> + </td> + </tr>' +filelogparent = ' + <tr> + <td align="right">parent {rev}: </td> + <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td> + </tr>' +filediffchild = ' + <tr> + <td>child {rev}</td> + <td style="font-family:monospace"> + <a class="list" href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a> + </td> + </tr>' +filelogchild = ' + <tr> + <td align="right">child {rev}: </td> + <td><a href="{url}file{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td> + </tr>' +shortlog = shortlog.tmpl +graph = graph.tmpl +tagtag = '<span class="tagtag" title="{name}">{name}</span> ' +branchtag = '<span class="branchtag" title="{name}">{name}</span> ' +inbranchtag = '<span class="inbranchtag" title="{name}">{name}</span> ' +shortlogentry = ' + <tr class="parity{parity}"> + <td class="age"><i>{date|age}</i></td> + <td><i>{author|person}</i></td> + <td> + <a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}"> + <b>{desc|strip|firstline|escape|nonempty}</b> + <span class="logtags">{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}</span> + </a> + </td> + <td class="link" nowrap> + <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> | + <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a> + </td> + </tr>' +filelogentry = ' + <tr class="parity{parity}"> + <td class="age"><i>{date|age}</i></td> + <td> + <a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}"> + <b>{desc|strip|firstline|escape|nonempty}</b> + </a> + </td> + <td class="link"> + <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> | <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> | <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> {rename%filelogrename}</td> + </tr>' +archiveentry = ' | <a href="{url}archive/{node|short}{extension}">{type|escape}</a> ' +indexentry = ' + <tr class="parity{parity}"> + <td> + <a class="list" href="{url}{sessionvars%urlparameter}"> + <b>{name|escape}</b> + </a> + </td> + <td>{description}</td> + <td>{contact|obfuscate}</td> + <td class="age">{lastchange|age}</td> + <td class="indexlinks">{archives%indexarchiveentry}</td> + <td><div class="rss_logo"><a href="{url}rss-log">RSS</a> <a href="{url}atom-log">Atom</a></div></td> + </tr>\n' +indexarchiveentry = ' <a href="{url}archive/{node|short}{extension}">{type|escape}</a> ' +index = index.tmpl +urlparameter = '{separator}{name}={value|urlescape}' +hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/gitweb/notfound.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,18 @@ +{header} +<title>Mercurial repository not found</title> +</head> + +<body> + +<div class="page_header"> +<a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a> Not found: {repo|escape} +</div> + +<div class="page_body"> +The specified repository "{repo|escape}" is unknown, sorry. +<br/> +<br/> +Please go back to the <a href="{url}">main repository list page</a>. +</div> + +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/gitweb/search.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,36 @@ +{header} +<title>{repo|escape}: Search</title> +<link rel="alternate" type="application/atom+xml" + href="{url}atom-log" title="Atom feed for {repo|escape}"/> +<link rel="alternate" type="application/rss+xml" + href="{url}rss-log" title="RSS feed for {repo|escape}"/> +</head> +<body> + +<div class="page_header"> +<a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / search + +<form action="{url}log"> +{sessionvars%hiddenformentry} +<div class="search"> +<input type="text" name="rev" value="{query|escape}" /> +</div> +</form> +</div> + +<div class="page_nav"> +<a href="{url}summary{sessionvars%urlparameter}">summary</a> | +<a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> | +<a href="{url}log{sessionvars%urlparameter}">changelog</a> | +<a href="{url}graph{sessionvars%urlparameter}">graph</a> | +<a href="{url}tags{sessionvars%urlparameter}">tags</a> | +<a href="{url}branches{sessionvars%urlparameter}">branches</a> | +<a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>{archives%archiveentry} +<br/> +</div> + +<div class="title">searching for {query|escape}</div> + +{entries} + +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/gitweb/shortlog.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,41 @@ +{header} +<title>{repo|escape}: Shortlog</title> +<link rel="alternate" type="application/atom+xml" + href="{url}atom-log" title="Atom feed for {repo|escape}"/> +<link rel="alternate" type="application/rss+xml" + href="{url}rss-log" title="RSS feed for {repo|escape}"/> +</head> +<body> + +<div class="page_header"> +<a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / shortlog +</div> + +<form action="{url}log"> +{sessionvars%hiddenformentry} +<div class="search"> +<input type="text" name="rev" /> +</div> +</form> +<div class="page_nav"> +<a href="{url}summary{sessionvars%urlparameter}">summary</a> | +shortlog | +<a href="{url}log/{rev}{sessionvars%urlparameter}">changelog</a> | +<a href="{url}graph{sessionvars%urlparameter}">graph</a> | +<a href="{url}tags{sessionvars%urlparameter}">tags</a> | +<a href="{url}branches{sessionvars%urlparameter}">branches</a> | +<a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>{archives%archiveentry} +<br/> +{changenav%navshortentry}<br/> +</div> + +<div class="title"> </div> +<table cellspacing="0"> +{entries%shortlogentry} +</table> + +<div class="page_nav"> +{changenav%navshortentry} +</div> + +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/gitweb/summary.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,58 @@ +{header} +<title>{repo|escape}: Summary</title> +<link rel="alternate" type="application/atom+xml" + href="{url}atom-log" title="Atom feed for {repo|escape}"/> +<link rel="alternate" type="application/rss+xml" + href="{url}rss-log" title="RSS feed for {repo|escape}"/> +</head> +<body> + +<div class="page_header"> +<a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / summary + +<form action="{url}log"> +{sessionvars%hiddenformentry} +<div class="search"> +<input type="text" name="rev" /> +</div> +</form> +</div> + +<div class="page_nav"> +summary | +<a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> | +<a href="{url}log{sessionvars%urlparameter}">changelog</a> | +<a href="{url}graph{sessionvars%urlparameter}">graph</a> | +<a href="{url}tags{sessionvars%urlparameter}">tags</a> | +<a href="{url}branches{sessionvars%urlparameter}">branches</a> | +<a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>{archives%archiveentry} +<br/> +</div> + +<div class="title"> </div> +<table cellspacing="0"> +<tr><td>description</td><td>{desc}</td></tr> +<tr><td>owner</td><td>{owner|obfuscate}</td></tr> +<tr><td>last change</td><td>{lastchange|rfc822date}</td></tr> +</table> + +<div><a class="title" href="{url}shortlog{sessionvars%urlparameter}">changes</a></div> +<table cellspacing="0"> +{shortlog} +<tr class="light"><td colspan="4"><a class="list" href="{url}shortlog{sessionvars%urlparameter}">...</a></td></tr> +</table> + +<div><a class="title" href="{url}tags{sessionvars%urlparameter}">tags</a></div> +<table cellspacing="0"> +{tags} +<tr class="light"><td colspan="3"><a class="list" href="{url}tags{sessionvars%urlparameter}">...</a></td></tr> +</table> + +<div><a class="title" href="#">branches</a></div> +<table cellspacing="0"> +{branches%branchentry} +<tr class="light"> + <td colspan="4"><a class="list" href="#">...</a></td> +</tr> +</table> +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/gitweb/tags.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,30 @@ +{header} +<title>{repo|escape}: Tags</title> +<link rel="alternate" type="application/atom+xml" + href="{url}atom-tags" title="Atom feed for {repo|escape}"/> +<link rel="alternate" type="application/rss+xml" + href="{url}rss-tags" title="RSS feed for {repo|escape}"/> +</head> +<body> + +<div class="page_header"> +<a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / tags +</div> + +<div class="page_nav"> +<a href="{url}summary{sessionvars%urlparameter}">summary</a> | +<a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> | +<a href="{url}log{sessionvars%urlparameter}">changelog</a> | +<a href="{url}graph{sessionvars%urlparameter}">graph</a> | +tags | +<a href="{url}branches{sessionvars%urlparameter}">branches</a> | +<a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a> +<br/> +</div> + +<div class="title"> </div> +<table cellspacing="0"> +{entries%tagentry} +</table> + +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/map-cmdline.changelog Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,17 @@ +header = '{date|shortdate} {author|person} <{author|email}>\n\n' +header_verbose = '' +changeset = '\t* {files|stringify|fill68|tabindent}{desc|fill68|tabindent|strip}\n\t[{node|short}]{tags}{branches}\n\n' +changeset_quiet = '\t* {desc|firstline|fill68|tabindent|strip}\n\n' +changeset_verbose = '{date|isodate} {author|person} <{author|email}> ({node|short}{tags}{branches})\n\n\t* {file_adds|stringify|fill68|tabindent}{file_dels|stringify|fill68|tabindent}{files|stringify|fill68|tabindent}{desc|fill68|tabindent|strip}\n\n' +start_tags = ' [' +tag = '{tag}, ' +last_tag = '{tag}]' +start_branches = ' <' +branch = '{branch}, ' +last_branch = '{branch}>' +file = '{file}, ' +last_file = '{file}:\n\t' +file_add = '{file_add}, ' +last_file_add = '{file_add}: new file.\n* ' +file_del = '{file_del}, ' +last_file_del = '{file_del}: deleted file.\n* '
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/map-cmdline.compact Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,9 @@ +changeset = '{rev}{tags}{parents} {node|short} {date|isodate} {author|user}\n {desc|firstline|strip}\n\n' +changeset_quiet = '{rev}:{node|short}\n' +changeset_verbose = '{rev}{tags}{parents} {node|short} {date|isodate} {author}\n {desc|strip}\n\n' +start_tags = '[' +tag = '{tag},' +last_tag = '{tag}]' +start_parents = ':' +parent = '{rev},' +last_parent = '{rev}'
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/map-cmdline.default Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,24 @@ +changeset = 'changeset: {rev}:{node|short}\n{branches}{tags}{parents}user: {author}\ndate: {date|date}\nsummary: {desc|firstline}\n\n' +changeset_quiet = '{rev}:{node|short}\n' +changeset_verbose = 'changeset: {rev}:{node|short}\n{branches}{tags}{parents}user: {author}\ndate: {date|date}\n{files}{file_copies}description:\n{desc|strip}\n\n\n' +changeset_debug = 'changeset: {rev}:{node}\n{branches}{tags}{parents}{manifest}user: {author}\ndate: {date|date}\n{file_mods}{file_adds}{file_dels}{file_copies}{extras}description:\n{desc|strip}\n\n\n' +start_files = 'files: ' +file = ' {file}' +end_files = '\n' +start_file_mods = 'files: ' +file_mod = ' {file_mod}' +end_file_mods = '\n' +start_file_adds = 'files+: ' +file_add = ' {file_add}' +end_file_adds = '\n' +start_file_dels = 'files-: ' +file_del = ' {file_del}' +end_file_dels = '\n' +start_file_copies = 'copies: ' +file_copy = ' {name} ({source})' +end_file_copies = '\n' +parent = 'parent: {rev}:{node|formatnode}\n' +manifest = 'manifest: {rev}:{node}\n' +branch = 'branch: {branch}\n' +tag = 'tag: {tag}\n' +extra = 'extra: {key}={value|stringescape}\n'
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/monoblue/branches.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,36 @@ +{header} + <title>{repo|escape}: Branches</title> + <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/> + <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/> +</head> + +<body> +<div id="container"> + <div class="page-header"> + <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / Branches</h1> + + <form action="{url}log"> + {sessionvars%hiddenformentry} + <dl class="search"> + <dt><label>Search: </label></dt> + <dd><input type="text" name="rev" /></dd> + </dl> + </form> + + <ul class="page-nav"> + <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li> + <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li> + <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li> + <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li> + <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li> + <li class="current">branches</li> + <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li> + </ul> + </div> + + <h2 class="no-link no-border">tags</h2> + <table cellspacing="0"> +{entries%branchentry} + </table> + +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/monoblue/changelog.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,40 @@ +{header} + <title>{repo|escape}: changelog</title> + <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/> + <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/> +</head> + +<body> +<div id="container"> + <div class="page-header"> + <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / changelog</h1> + + <form action="{url}log"> + {sessionvars%hiddenformentry} + <dl class="search"> + <dt><label>Search: </label></dt> + <dd><input type="text" name="rev" /></dd> + </dl> + </form> + + <ul class="page-nav"> + <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li> + <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li> + <li class="current">changelog</li> + <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li> + <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li> + <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li> + <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>{archives%archiveentry}</li> + </ul> + </div> + + <h2 class="no-link no-border">changelog</h2> + <div> + {entries%changelogentry} + </div> + + <div class="page-path"> +{changenav%naventry} + </div> + +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/monoblue/changelogentry.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,6 @@ +<h3 class="changelog"><a class="title" href="{url}rev/{node|short}{sessionvars%urlparameter}">{desc|strip|firstline|escape|nonempty}<span class="logtags"> {inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}</span></a></h3> +<ul class="changelog-entry"> + <li class="age">{date|age}</li> + <li>by <span class="name">{author|obfuscate}</span> <span class="revdate">[{date|rfc822date}] rev {rev}</span></li> + <li class="description">{desc|strip|escape|addbreaks|nonempty}</li> +</ul>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/monoblue/changeset.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,63 @@ +{header} +<title>{repo|escape}: changeset {rev}:{node|short}</title> + <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/> + <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/> +</head> + +<body> +<div id="container"> + <div class="page-header"> + <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / files</h1> + + <form action="{url}log"> + {sessionvars%hiddenformentry} + <dl class="search"> + <dt><label>Search: </label></dt> + <dd><input type="text" name="rev" /></dd> + </dl> + </form> + + <ul class="page-nav"> + <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li> + <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li> + <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li> + <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li> + <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li> + <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li> + <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li> + </ul> + </div> + + <ul class="submenu"> + <li class="current">changeset</li> + <li><a href="{url}raw-rev/{node|short}">raw</a> {archives%archiveentry}</li> + </ul> + + <h2 class="no-link no-border">changeset</h2> + + <h3 class="changeset"><a href="{url}raw-rev/{node|short}">{desc|strip|escape|firstline|nonempty} <span class="logtags">{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}</span></a></h3> + <p class="changeset-age"><span>{date|age}</span></p> + + <dl class="overview"> + <dt>author</dt> + <dd>{author|obfuscate}</dd> + <dt>date</dt> + <dd>{date|date}</dd> + {branch%changesetbranch} + <dt>changeset {rev}</dt> + <dd>{node|short}</dd> + {parent%changesetparent} + {child%changesetchild} + </dl> + + <p class="description">{desc|strip|escape|addbreaks|nonempty}</p> + + <table> + {files} + </table> + + <div class="diff"> + {diff} + </div> + +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/monoblue/error.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,34 @@ +{header} + <title>{repo|escape}: Error</title> + <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/> + <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/> +</head> + +<body> +<div id="container"> + <div class="page-header"> + <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / Not found: {repo|escape}</h1> + + <form action="{url}log"> + {sessionvars%hiddenformentry} + <dl class="search"> + <dt><label>Search: </label></dt> + <dd><input type="text" name="rev" /></dd> + </dl> + </form> + + <ul class="page-nav"> + <li class="current">summary</li> + <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li> + <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li> + <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li> + <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li> + <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li> + <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li> + </ul> + </div> + + <h2 class="no-link no-border">An error occurred while processing your request</h2> + <p class="normal">{error|escape}</p> + +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/monoblue/fileannotate.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,63 @@ +{header} +<title>{repo|escape}: {file|escape}@{node|short} (annotated)</title> + <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/> + <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/> +</head> + +<body> +<div id="container"> + <div class="page-header"> + <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / annotate</h1> + + <form action="{url}log"> + {sessionvars%hiddenformentry} + <dl class="search"> + <dt><label>Search: </label></dt> + <dd><input type="text" name="rev" /></dd> + </dl> + </form> + + <ul class="page-nav"> + <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li> + <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li> + <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li> + <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li> + <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li> + <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li> + <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a></li> + </ul> + </div> + + <ul class="submenu"> + <li><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a></li> + <li><a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a></li> + <li class="current">annotate</li> + <li><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li> + <li><a href="{url}raw-annotate/{node|short}/{file|urlescape}">raw</a></li> + </ul> + + <h2 class="no-link no-border">{file|escape}@{node|short} (annotated)</h2> + <h3 class="changeset">{file|escape}</h3> + <p class="changeset-age"><span>{date|age}</span></p> + + <dl class="overview"> + <dt>author</dt> + <dd>{author|obfuscate}</dd> + <dt>date</dt> + <dd>{date|date}</dd> + {branch%filerevbranch} + <dt>changeset {rev}</dt> + <dd><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd> + {parent%fileannotateparent} + {child%fileannotatechild} + <dt>permissions</dt> + <dd>{permissions|permissions}</dd> + </dl> + + <p class="description">{desc|strip|escape|addbreaks|nonempty}</p> + + <table class="annotated"> + {annotate%annotateline} + </table> + +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/monoblue/filediff.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,54 @@ +{header} +<title>{repo|escape}: diff {file|escape}</title> + <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/> + <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/> +</head> + +<body> +<div id="container"> + <div class="page-header"> + <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / file diff</h1> + + <form action="{url}log"> + {sessionvars%hiddenformentry} + <dl class="search"> + <dt><label>Search: </label></dt> + <dd><input type="text" name="rev" /></dd> + </dl> + </form> + + <ul class="page-nav"> + <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li> + <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li> + <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li> + <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li> + <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li> + <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li> + <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a></li> + </ul> + </div> + + <ul class="submenu"> + <li><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a></li> + <li><a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a></li> + <li><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li> + <li class="current">diff</li> + <li><a href="{url}raw-diff/{node|short}/{file|urlescape}">raw</a></li> + </ul> + + <h2 class="no-link no-border">diff: {file|escape}</h2> + <h3 class="changeset">{file|escape}</h3> + + <dl class="overview"> + {branch%filerevbranch} + <dt>changeset {rev}</dt> + <dd><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd> + {parent%filediffparent} + {child%filediffchild} + </dl> + + <div class="diff"> + {diff} + </div> + +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/monoblue/filelog.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,49 @@ +{header} +<title>{repo|escape}: File revisions</title> + <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/> + <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/> +</head> + +<body> +<div id="container"> + <div class="page-header"> + <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / file revisions</h1> + + <form action="{url}log"> + {sessionvars%hiddenformentry} + <dl class="search"> + <dt><label>Search: </label></dt> + <dd><input type="text" name="rev" /></dd> + </dl> + </form> + + <ul class="page-nav"> + <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li> + <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li> + <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li> + <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li> + <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li> + <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li> + <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a></li> + </ul> + </div> + + <ul class="submenu"> + <li><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a></li> + <li class="current">revisions</li> + <li><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li> + <li><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li> + <li><a href="{url}rss-log/{node|short}/{file|urlescape}">rss</a></li> + </ul> + + <h2 class="no-link no-border">{file|urlescape}</h2> + + <table> + {entries%filelogentry} + </table> + + <div class="page-path"> + {nav%filenaventry} + </div> + +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/monoblue/filerevision.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,63 @@ +{header} +<title>{repo|escape}: {file|escape}@{node|short}</title> + <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/> + <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/> +</head> + +<body> +<div id="container"> + <div class="page-header"> + <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / file revision</h1> + + <form action="{url}log"> + {sessionvars%hiddenformentry} + <dl class="search"> + <dt><label>Search: </label></dt> + <dd><input type="text" name="rev" /></dd> + </dl> + </form> + + <ul class="page-nav"> + <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li> + <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li> + <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li> + <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li> + <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li> + <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li> + <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a></li> + </ul> + </div> + + <ul class="submenu"> + <li class="current">file</li> + <li><a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a></li> + <li><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li> + <li><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li> + <li><a href="{url}raw-file/{node|short}/{file|urlescape}">raw</a></li> + </ul> + + <h2 class="no-link no-border">{file|escape}@{node|short}</h2> + <h3 class="changeset">{file|escape}</h3> + <p class="changeset-age"><span>{date|age}</span></p> + + <dl class="overview"> + <dt>author</dt> + <dd>{author|obfuscate}</dd> + <dt>date</dt> + <dd>{date|date}</dd> + {branch%filerevbranch} + <dt>changeset {rev}</dt> + <dd><a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd> + {parent%filerevparent} + {child%filerevchild} + <dt>permissions</dt> + <dd>{permissions|permissions}</dd> + </dl> + + <p class="description">{desc|strip|escape|addbreaks|nonempty}</p> + + <div class="source"> + {text%fileline} + </div> + +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/monoblue/footer.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,22 @@ + <div class="page-footer"> + <p>Mercurial Repository: {repo|escape}</p> + <ul class="rss-logo"> + <li><a href="{url}rss-log">RSS</a></li> + <li><a href="{url}atom-log">Atom</a></li> + </ul> + {motd} + </div> + + <div id="powered-by"> + <p><a href="http://mercurial.selenic.com/" title="Mercurial"><img src="{staticurl}hglogo.png" width=75 height=90 border=0 alt="mercurial"></a></p> + </div> + + <div id="corner-top-left"></div> + <div id="corner-top-right"></div> + <div id="corner-bottom-left"></div> + <div id="corner-bottom-right"></div> + +</div> + +</body> +</html>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/monoblue/graph.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,118 @@ +{header} + <title>{repo|escape}: graph</title> + <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/> + <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/> + <!--[if IE]><script type="text/javascript" src="{staticurl}excanvas.js"></script><![endif]--> +</head> + +<body> +<div id="container"> + <div class="page-header"> + <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / graph</h1> + + <form action="{url}log"> + {sessionvars%hiddenformentry} + <dl class="search"> + <dt><label>Search: </label></dt> + <dd><input type="text" name="rev" /></dd> + </dl> + </form> + + <ul class="page-nav"> + <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li> + <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li> + <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li> + <li class="current">graph</li> + <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li> + <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li> + <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li> + </ul> + </div> + + <h2 class="no-link no-border">graph</h2> + + <div id="noscript">The revision graph only works with JavaScript-enabled browsers.</div> + <div id="wrapper"> + <ul id="nodebgs"></ul> + <canvas id="graph" width="224" height="{canvasheight}"></canvas> + <ul id="graphnodes"></ul> + </div> + + <script type="text/javascript" src="{staticurl}graph.js"></script> + <script> + <!-- hide script content + + document.getElementById('noscript').style.display = 'none'; + + var data = {jsdata|json}; + var graph = new Graph(); + graph.scale({bg_height}); + + graph.edge = function(x0, y0, x1, y1, color) { + + this.setColor(color, 0.0, 0.65); + this.ctx.beginPath(); + this.ctx.moveTo(x0, y0); + this.ctx.lineTo(x1, y1); + this.ctx.stroke(); + + } + + var revlink = '<li style="_STYLE"><span class="desc">'; + revlink += '<a href="{url}rev/_NODEID{sessionvars%urlparameter}" title="_NODEID">_DESC</a>'; + revlink += '</span>_TAGS<span class="info">_DATE ago, by _USER</span></li>'; + + graph.vertex = function(x, y, color, parity, cur) { + + this.ctx.beginPath(); + color = this.setColor(color, 0.25, 0.75); + this.ctx.arc(x, y, radius, 0, Math.PI * 2, true); + this.ctx.fill(); + + var bg = '<li class="bg parity' + parity + '"></li>'; + var left = (this.columns + 1) * this.bg_height; + var nstyle = 'padding-left: ' + left + 'px;'; + var item = revlink.replace(/_STYLE/, nstyle); + item = item.replace(/_PARITY/, 'parity' + parity); + item = item.replace(/_NODEID/, cur[0]); + item = item.replace(/_NODEID/, cur[0]); + item = item.replace(/_DESC/, cur[3]); + item = item.replace(/_USER/, cur[4]); + item = item.replace(/_DATE/, cur[5]); + + var tagspan = ''; + if (cur[7].length || (cur[6][0] != 'default' || cur[6][1])) { + tagspan = '<span class="logtags">'; + if (cur[6][1]) { + tagspan += '<span class="branchtag" title="' + cur[6][0] + '">'; + tagspan += cur[6][0] + '</span> '; + } else if (!cur[6][1] && cur[6][0] != 'default') { + tagspan += '<span class="inbranchtag" title="' + cur[6][0] + '">'; + tagspan += cur[6][0] + '</span> '; + } + if (cur[7].length) { + for (var t in cur[7]) { + var tag = cur[7][t]; + tagspan += '<span class="tagtag">' + tag + '</span> '; + } + } + tagspan += '</span>'; + } + + item = item.replace(/_TAGS/, tagspan); + return [bg, item]; + + } + + graph.render(data); + + // stop hiding script --> + </script> + + <div class="page-path"> + <a href="{url}graph/{rev}{lessvars%urlparameter}">less</a> + <a href="{url}graph/{rev}{morevars%urlparameter}">more</a> + | {changenav%navgraphentry} + </div> + +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/monoblue/header.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,6 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + <link rel="icon" href="{staticurl}hgicon.png" type="image/png" /> + <meta name="robots" content="index, nofollow"/> + <link rel="stylesheet" href="{staticurl}style-monoblue.css" type="text/css" />
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/monoblue/index.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,39 @@ +{header} + <title>{repo|escape}: Mercurial repositories index</title> +</head> + +<body> +<div id="container"> + <div class="page-header"> + <h1>Mercurial Repositories</h1> + <ul class="page-nav"> + </ul> + </div> + + <table cellspacing="0"> + <tr> + <td><a href="?sort={sort_name}">Name</a></td> + <td><a href="?sort={sort_description}">Description</a></td> + <td><a href="?sort={sort_contact}">Contact</a></td> + <td><a href="?sort={sort_lastchange}">Last change</a></td> + <td> </td> + <td> </td> + </tr> + {entries%indexentry} + </table> + <div class="page-footer"> + {motd} + </div> + + <div id="powered-by"> + <p><a href="http://mercurial.selenic.com/" title="Mercurial"><img src="{staticurl}hglogo.png" width=75 height=90 border=0 alt="mercurial"></a></p> + </div> + + <div id="corner-top-left"></div> + <div id="corner-top-right"></div> + <div id="corner-bottom-left"></div> + <div id="corner-bottom-right"></div> + +</div> +</body> +</html>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/monoblue/manifest.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,51 @@ +{header} +<title>{repo|escape}: files</title> + <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/> + <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/> +</head> + +<body> +<div id="container"> + <div class="page-header"> + <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / files</h1> + + <form action="{url}log"> + {sessionvars%hiddenformentry} + <dl class="search"> + <dt><label>Search: </label></dt> + <dd><input type="text" name="rev" /></dd> + </dl> + </form> + + <ul class="page-nav"> + <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li> + <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li> + <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li> + <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li> + <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li> + <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li> + <li class="current">files</li> + </ul> + </div> + + <ul class="submenu"> + <li><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> {archives%archiveentry}</li> + {archives%archiveentry} + </ul> + + <h2 class="no-link no-border">files</h2> + <p class="files">{path|escape} <span class="logtags">{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}</span></p> + + <table> + <tr class="parity{upparity}"> + <td>drwxr-xr-x</td> + <td></td> + <td></td> + <td><a href="{url}file/{node|short}{up|urlescape}{sessionvars%urlparameter}">[up]</a></td> + <td class="link"> </td> + </tr> + {dentries%direntry} + {fentries%fileentry} + </table> + +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/monoblue/map Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,214 @@ +default = 'summary' +mimetype = 'text/html; charset={encoding}' +header = header.tmpl +footer = footer.tmpl +search = search.tmpl +changelog = changelog.tmpl +summary = summary.tmpl +error = error.tmpl +notfound = notfound.tmpl +naventry = '<a href="{url}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> ' +navshortentry = '<a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> ' +navgraphentry = '<a href="{url}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> ' +filenaventry = '<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a>' +filedifflink = '<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> ' +filenodelink = ' + <tr class="parity{parity}"> + <td><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td> + <td></td> + <td> + <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> | + <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> | + <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> | + <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> + </td> + </tr>' +filenolink = ' + <tr class="parity{parity}"> + <td> + <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td><td></td><td>file | + annotate | + <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> | + <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> + </td> + </tr>' +fileellipses = '...' +changelogentry = changelogentry.tmpl +searchentry = changelogentry.tmpl +changeset = changeset.tmpl +manifest = manifest.tmpl +direntry = ' + <tr class="parity{parity}"> + <td>drwxr-xr-x</td> + <td></td> + <td></td> + <td><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">{basename|escape}</a></td> + <td><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a></td> + </tr>' +fileentry = ' + <tr class="parity{parity}"> + <td>{permissions|permissions}</td> + <td>{date|isodate}</td> + <td>{size}</td> + <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{basename|escape}</a></td> + <td> + <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> | + <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> | + <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> + </td> + </tr>' +filerevision = filerevision.tmpl +fileannotate = fileannotate.tmpl +filediff = filediff.tmpl +filelog = filelog.tmpl +fileline = ' + <div style="font-family:monospace" class="parity{parity}"> + <pre><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</pre> + </div>' +annotateline = ' + <tr class="parity{parity}"> + <td class="linenr"> + <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#{targetline}" + title="{node|short}: {desc|escape|firstline}">{author|user}@{rev}</a> + </td> + <td class="lineno"> + <a href="#{lineid}" id="{lineid}">{linenumber}</a> + </td> + <td class="source">{line|escape}</td> + </tr>' +difflineplus = '<span style="color:#008800;"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>' +difflineminus = '<span style="color:#cc0000;"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>' +difflineat = '<span style="color:#990099;"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>' +diffline = '<span><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>' +changelogparent = ' + <tr> + <th class="parent">parent {rev}:</th> + <td class="parent"> + <a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> + </td> + </tr>' +changesetbranch = '<dt>branch</dt><dd>{name}</dd>' +changesetparent = ' + <dt>parent {rev}</dt> + <dd><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>' +filerevbranch = '<dt>branch</dt><dd>{name}</dd>' +filerevparent = ' + <dt>parent {rev}</dt> + <dd> + <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}"> + {rename%filerename}{node|short} + </a> + </dd>' +filerename = '{file|escape}@' +filelogrename = '| <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">base</a>' +fileannotateparent = ' + <dt>parent {rev}</dt> + <dd> + <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}"> + {rename%filerename}{node|short} + </a> + </dd>' +changelogchild = ' + <dt>child {rev}:</dt> + <dd><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>' +changesetchild = ' + <dt>child {rev}</dt> + <dd><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>' +filerevchild = ' + <dt>child {rev}</dt> + <dd> + <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a> + </dd>' +fileannotatechild = ' + <dt>child {rev}</dt> + <dd> + <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a> + </dd>' +tags = tags.tmpl +tagentry = ' + <tr class="parity{parity}"> + <td class="nowrap">{date|age}</td> + <td><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{tag|escape}</a></td> + <td class="nowrap"> + <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> | + <a href="{url}log/{node|short}{sessionvars%urlparameter}">changelog</a> | + <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a> + </td> + </tr>' +branches = branches.tmpl +branchentry = ' + <tr class="parity{parity}"> + <td class="nowrap">{date|age}</td> + <td><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">{node|short}</a></td> + <td class="{status}">{branch|escape}</td> + <td class="nowrap"> + <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> | + <a href="{url}log/{node|short}{sessionvars%urlparameter}">changelog</a> | + <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a> + </td> + </tr>' +diffblock = '<pre>{lines}</pre>' +filediffparent = ' + <dt>parent {rev}</dt> + <dd><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></dd>' +filelogparent = ' + <tr> + <td align="right">parent {rev}: </td> + <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td> + </tr>' +filediffchild = ' + <dt>child {rev}</dt> + <dd><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></dd>' +filelogchild = ' + <tr> + <td align="right">child {rev}: </td> + <td><a href="{url}file{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td> + </tr>' +shortlog = shortlog.tmpl +tagtag = '<span class="tagtag" title="{name}">{name}</span> ' +branchtag = '<span class="branchtag" title="{name}">{name}</span> ' +inbranchtag = '<span class="inbranchtag" title="{name}">{name}</span> ' +shortlogentry = ' + <tr class="parity{parity}"> + <td class="nowrap">{date|age}</td> + <td>{author|person}</td> + <td> + <a href="{url}rev/{node|short}{sessionvars%urlparameter}"> + {desc|strip|firstline|escape|nonempty} + <span class="logtags">{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}</span> + </a> + </td> + <td class="nowrap"> + <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> | + <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a> + </td> + </tr>' +filelogentry = ' + <tr class="parity{parity}"> + <td class="nowrap">{date|age}</td> + <td><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{desc|strip|firstline|escape|nonempty}</a></td> + <td class="nowrap"> + <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> | <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> | <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> + {rename%filelogrename} + </td> + </tr>' +archiveentry = '<li><a href="{url}archive/{node|short}{extension}">{type|escape}</a></li>' +indexentry = ' + <tr class="parity{parity}"> + <td><a href="{url}{sessionvars%urlparameter}">{name|escape}</a></td> + <td>{description}</td> + <td>{contact|obfuscate}</td> + <td>{lastchange|age}</td> + <td class="indexlinks">{archives%indexarchiveentry}</td> + <td> + <div class="rss_logo"> + <a href="{url}rss-log">RSS</a> + <a href="{url}atom-log">Atom</a> + </div> + </td> + </tr>\n' +indexarchiveentry = '<a href="{url}archive/{node|short}{extension}">{type|escape}</a> ' +index = index.tmpl +urlparameter = '{separator}{name}={value|urlescape}' +hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />' +graph = graph.tmpl
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/monoblue/notfound.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,35 @@ +{header} + <title>{repo|escape}: Mercurial repository not found</title> + <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/> + <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/> +</head> + +<body> +<div id="container"> + <div class="page-header"> + <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / Not found: {repo|escape}</h1> + + <form action="{url}log"> + {sessionvars%hiddenformentry} + <dl class="search"> + <dt><label>Search: </label></dt> + <dd><input type="text" name="rev" /></dd> + </dl> + </form> + + <ul class="page-nav"> + <li class="current">summary</li> + <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li> + <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li> + <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li> + <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li> + <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li> + <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>{archives%archiveentry}</li> + </ul> + </div> + + <h2 class="no-link no-border">Not Found</h2> + <p class="normal">The specified repository "{repo|escape}" is unknown, sorry.</p> + <p class="normal">Please go back to the <a href="{url}">main repository list page</a>.</p> + +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/monoblue/search.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,34 @@ +{header} + <title>{repo|escape}: Search</title> + <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/> + <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/> +</head> + +<body> +<div id="container"> + <div class="page-header"> + <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / search</h1> + + <form action="{url}log"> + {sessionvars%hiddenformentry} + <dl class="search"> + <dt><label>Search: </label></dt> + <dd><input type="text" name="rev" value="{query|escape}" /></dd> + </dl> + </form> + + <ul class="page-nav"> + <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li> + <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li> + <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li> + <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li> + <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li> + <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li> + <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>{archives%archiveentry} + </ul> + </div> + + <h2 class="no-link no-border">searching for {query|escape}</h2> + {entries} + +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/monoblue/shortlog.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,41 @@ +{header} + <title>{repo|escape}: shortlog</title> + <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/> + <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/> +</head> + +<body> +<div id="container"> + <div class="page-header"> + <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / shortlog</h1> + + <form action="{url}log"> + {sessionvars%hiddenformentry} + <dl class="search"> + <dt><label>Search: </label></dt> + <dd><input type="text" name="rev" /></dd> + </dl> + </form> + + <ul class="page-nav"> + <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li> + <li class="current">shortlog</li> + <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li> + <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li> + <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li> + <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li> + <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>{archives%archiveentry}</li> + </ul> + </div> + + <h2 class="no-link no-border">shortlog</h2> + + <table> +{entries%shortlogentry} + </table> + + <div class="page-path"> +{changenav%navshortentry} + </div> + +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/monoblue/summary.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,66 @@ +{header} + <title>{repo|escape}: Summary</title> + <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/> + <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/> +</head> + +<body> +<div id="container"> + <div class="page-header"> + <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / summary</h1> + + <form action="{url}log"> + {sessionvars%hiddenformentry} + <dl class="search"> + <dt><label>Search: </label></dt> + <dd><input type="text" name="rev" /></dd> + </dl> + </form> + + <ul class="page-nav"> + <li class="current">summary</li> + <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li> + <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li> + <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li> + <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li> + <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li> + <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li> + </ul> + </div> + + <h2 class="no-link no-border">Mercurial Repository Overview</h2> + <dl class="overview"> + <dt>name</dt> + <dd>{repo|escape}</dd> + <dt>description</dt> + <dd>{desc}</dd> + <dt>owner</dt> + <dd>{owner|obfuscate}</dd> + <dt>last change</dt> + <dd>{lastchange|rfc822date}</dd> + </dl> + + <h2><a href="{url}shortlog{sessionvars%urlparameter}">Changes</a></h2> + <table> +{shortlog} + <tr class="light"> + <td colspan="4"><a class="list" href="{url}shortlog{sessionvars%urlparameter}">...</a></td> + </tr> + </table> + + <h2><a href="{url}tags{sessionvars%urlparameter}">Tags</a></h2> + <table> +{tags} + <tr class="light"> + <td colspan="3"><a class="list" href="{url}tags{sessionvars%urlparameter}">...</a></td> + </tr> + </table> + + <h2 class="no-link">Branches</h2> + <table> + {branches%branchentry} + <tr class="light"> + <td colspan="4"><a class="list" href="#">...</a></td> + </tr> + </table> +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/monoblue/tags.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,36 @@ +{header} + <title>{repo|escape}: Tags</title> + <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/> + <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/> +</head> + +<body> +<div id="container"> + <div class="page-header"> + <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / Tags</h1> + + <form action="{url}log"> + {sessionvars%hiddenformentry} + <dl class="search"> + <dt><label>Search: </label></dt> + <dd><input type="text" name="rev" /></dd> + </dl> + </form> + + <ul class="page-nav"> + <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li> + <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li> + <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li> + <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li> + <li class="current">tags</li> + <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li> + <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li> + </ul> + </div> + + <h2 class="no-link no-border">tags</h2> + <table cellspacing="0"> +{entries%tagentry} + </table> + +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/paper/branches.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,45 @@ +{header} +<title>{repo|escape}: branches</title> +<link rel="alternate" type="application/atom+xml" + href="{url}atom-tags" title="Atom feed for {repo|escape}: branches" /> +<link rel="alternate" type="application/rss+xml" + href="{url}rss-tags" title="RSS feed for {repo|escape}: branches" /> +</head> +<body> + +<div class="container"> +<div class="menu"> +<div class="logo"> +<a href="http://mercurial.selenic.com/"> +<img src="{staticurl}hglogo.png" alt="mercurial" /></a> +</div> +<ul> +<li><a href="{url}shortlog{sessionvars%urlparameter}">log</a></li> +<li><a href="{url}graph{sessionvars%urlparameter}">graph</a></li> +<li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li> +<li class="active">branches</li> +</ul> +</div> + +<div class="main"> +<h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2> +<h3>branches</h3> + +<form class="search" action="{url}log"> +{sessionvars%hiddenformentry} +<p><input name="rev" id="search1" type="text" size="30" /></p> +<div id="hint">find changesets by author, revision, +files, or words in the commit message</div> +</form> + +<table class="bigtable"> +<tr> + <th>branch</th> + <th>node</th> +</tr> +{entries%branchentry} +</table> +</div> +</div> + +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/paper/changeset.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,71 @@ +{header} +<title>{repo|escape}: {node|short}</title> +</head> +<body> +<div class="container"> +<div class="menu"> +<div class="logo"> +<a href="http://mercurial.selenic.com/"> +<img src="{staticurl}hglogo.png" alt="mercurial" /></a> +</div> +<ul> + <li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li> + <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li> + <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li> + <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li> +</ul> +<ul> + <li class="active">changeset</li> + <li><a href="{url}raw-rev/{node|short}{sessionvars%urlparameter}">raw</a></li> + <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">browse</a></li> +</ul> +<ul> + {archives%archiveentry} +</ul> +</div> + +<div class="main"> + +<h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2> +<h3>changeset {rev}:{node|short} {changesetbranch%changelogbranchname} {changesettag}</h3> + +<form class="search" action="{url}log"> +{sessionvars%hiddenformentry} +<p><input name="rev" id="search1" type="text" size="30" /></p> +<div id="hint">find changesets by author, revision, +files, or words in the commit message</div> +</form> + +<div class="description">{desc|strip|escape|addbreaks|nonempty}</div> + +<table id="changesetEntry"> +<tr> + <th class="author">author</th> + <td class="author">{author|obfuscate}</td> +</tr> +<tr> + <th class="date">date</th> + <td class="date">{date|date} ({date|age})</td></tr> +<tr> + <th class="author">parents</th> + <td class="author">{parent%changesetparent}</td> +</tr> +<tr> + <th class="author">children</th> + <td class="author">{child%changesetchild}</td> +</tr> +<tr> + <th class="files">files</th> + <td class="files">{files}</td> +</tr> +</table> + +<div class="overflow"> +<div class="sourcefirst"> line diff</div> + +{diff} +</div> + +</div> +</div> +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/paper/error.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,43 @@ +{header} +<title>{repo|escape}: error</title> +</head> +<body> + +<div class="container"> +<div class="menu"> +<div class="logo"> +<a href="http://mercurial.selenic.com/"> +<img src="{staticurl}hglogo.png" width=75 height=90 border=0 alt="mercurial" /></a> +</div> +<ul> +<li><a href="{url}shortlog{sessionvars%urlparameter}">log</a></li> +<li><a href="{url}graph{sessionvars%urlparameter}">graph</a></li> +<li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li> +<li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li> +</ul> +</div> + +<div class="main"> + +<h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2> +<h3>error</h3> + +<form class="search" action="{url}log"> +{sessionvars%hiddenformentry} +<p><input name="rev" id="search1" type="text" size="30"></p> +<div id="hint">find changesets by author, revision, +files, or words in the commit message</div> +</form> + +<div class="description"> +<p> +An error occurred while processing your request: +</p> +<p> +{error|escape} +</p> +</div> +</div> +</div> + +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/paper/fileannotate.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,78 @@ +{header} +<title>{repo|escape}: {file|escape} annotate</title> +</head> +<body> + +<div class="container"> +<div class="menu"> +<div class="logo"> +<a href="http://mercurial.selenic.com/"> +<img src="{staticurl}hglogo.png" alt="mercurial" /></a> +</div> +<ul> +<li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li> +<li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li> +<li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li> +<li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li> +</ul> + +<ul> +<li><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a></li> +<li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">browse</a></li> +</ul> +<ul> +<li><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a></li> +<li><a href="{url}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a></li> +<li><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li> +<li class="active">annotate</li> +<li><a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file log</a></li> +<li><a href="{url}raw-annotate/{node|short}/{file|urlescape}">raw</a></li> +</ul> +</div> + +<div class="main"> +<h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2> +<h3>annotate {file|escape} @ {rev}:{node|short}</h3> + +<form class="search" action="{url}log"> +{sessionvars%hiddenformentry} +<p><input name="rev" id="search1" type="text" size="30" /></p> +<div id="hint">find changesets by author, revision, +files, or words in the commit message</div> +</form> + +<div class="description">{desc|strip|escape|addbreaks|nonempty}</div> + +<table id="changesetEntry"> +<tr> + <th class="author">author</th> + <td class="author">{author|obfuscate}</td> +</tr> +<tr> + <th class="date">date</th> + <td class="date">{date|date} ({date|age})</td> +</tr> +<tr> + <th class="author">parents</th> + <td class="author">{parent%filerevparent}</td> +</tr> +<tr> + <th class="author">children</th> + <td class="author">{child%filerevchild}</td> +</tr> +{changesettag} +</table> + +<div class="overflow"> +<table class="bigtable"> +<tr> + <th class="annotate">rev</th> + <th class="line"> line source</th> +</tr> +{annotate%annotateline} +</table> +</div> +</div> +</div> + +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/paper/filediff.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,73 @@ +{header} +<title>{repo|escape}: {file|escape} diff</title> +</head> +<body> + +<div class="container"> +<div class="menu"> +<div class="logo"> +<a href="http://mercurial.selenic.com/"> +<img src="{staticurl}hglogo.png" alt="mercurial" /></a> +</div> +<ul> +<li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li> +<li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li> +<li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li> +<li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li> +</ul> +<ul> +<li><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a></li> +<li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">browse</a></li> +</ul> +<ul> +<li><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a></li> +<li><a href="{url}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a></li> +<li class="active">diff</li> +<li><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li> +<li><a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file log</a></li> +<li><a href="{url}raw-file/{node|short}/{file|urlescape}">raw</a></li> +</ul> +</div> + +<div class="main"> +<h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2> +<h3>diff {file|escape} @ {rev}:{node|short}</h3> + +<form class="search" action="{url}log"> +<p>{sessionvars%hiddenformentry}</p> +<p><input name="rev" id="search1" type="text" size="30" /></p> +<div id="hint">find changesets by author, revision, +files, or words in the commit message</div> +</form> + +<div class="description">{desc|strip|escape|addbreaks|nonempty}</div> + +<table id="changesetEntry"> +<tr> + <th>author</th> + <td>{author|obfuscate}</td> +</tr> +<tr> + <th>date</th> + <td>{date|date} ({date|age})</td> +</tr> +<tr> + <th>parents</th> + <td>{parent%filerevparent}</td> +</tr> +<tr> + <th>children</th> + <td>{child%filerevchild}</td> +</tr> +{changesettag} +</table> + +<div class="overflow"> +<div class="sourcefirst"> line diff</div> + +{diff} +</div> +</div> +</div> + +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/paper/filelog.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,60 @@ +{header} +<title>{repo|escape}: {file|escape} history</title> +<link rel="alternate" type="application/atom+xml" + href="{url}atom-log/tip/{file|urlescape}" title="Atom feed for {repo|escape}:{file}" /> +<link rel="alternate" type="application/rss+xml" + href="{url}rss-log/tip/{file|urlescape}" title="RSS feed for {repo|escape}:{file}" /> +</head> +<body> + +<div class="container"> +<div class="menu"> +<div class="logo"> +<a href="http://mercurial.selenic.com/"> +<img src="{staticurl}hglogo.png" alt="mercurial" /></a> +</div> +<ul> +<li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li> +<li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li> +<li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li> +<li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li> +</ul> +<ul> +<li><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a></li> +<li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">browse</a></li> +</ul> +<ul> +<li><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a></li> +<li><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li> +<li><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li> +<li class="active">file log</li> +<li><a href="{url}raw-file/{node|short}/{file|urlescape}">raw</a></li> +</ul> +</div> + +<div class="main"> +<h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2> +<h3>log {file|escape}</h3> + +<form class="search" action="{url}log"> +{sessionvars%hiddenformentry} +<p><input name="rev" id="search1" type="text" size="30" /></p> +<div id="hint">find changesets by author, revision, +files, or words in the commit message</div> +</form> + +<div class="navigate">{nav%filenaventry}</div> + +<table class="bigtable"> + <tr> + <th class="age">age</th> + <th class="author">author</th> + <th class="description">description</th> + </tr> +{entries%filelogentry} +</table> + +</div> +</div> + +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/paper/filelogentry.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,5 @@ + <tr class="parity{parity}"> + <td class="age">{date|age}</td> + <td class="author">{author|person}</td> + <td class="description"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{desc|strip|firstline|escape|nonempty}</a>{inbranch%changelogbranchname}{branches%changelogbranchhead}{tags%changelogtag}</td> + </tr>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/paper/filerevision.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,73 @@ +{header} +<title>{repo|escape}: {node|short} {file|escape}</title> +</head> +<body> + +<div class="container"> +<div class="menu"> +<div class="logo"> +<a href="http://mercurial.selenic.com/"> +<img src="{staticurl}hglogo.png" alt="mercurial" /></a> +</div> +<ul> +<li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li> +<li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li> +<li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li> +<li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li> +</ul> +<ul> +<li><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a></li> +<li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">browse</a></li> +</ul> +<ul> +<li class="active">file</li> +<li><a href="{url}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a></li> +<li><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li> +<li><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li> +<li><a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file log</a></li> +<li><a href="{url}raw-file/{node|short}/{file|urlescape}">raw</a></li> +</ul> +</div> + +<div class="main"> +<h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2> +<h3>view {file|escape} @ {rev}:{node|short}</h3> + +<form class="search" action="{url}log"> +{sessionvars%hiddenformentry} +<p><input name="rev" id="search1" type="text" size="30" /></p> +<div id="hint">find changesets by author, revision, +files, or words in the commit message</div> +</form> + +<div class="description">{desc|strip|escape|addbreaks|nonempty}</div> + +<table id="changesetEntry"> +<tr> + <th class="author">author</th> + <td class="author">{author|obfuscate}</td> +</tr> +<tr> + <th class="date">date</th> + <td class="date">{date|date} ({date|age})</td> +</tr> +<tr> + <th class="author">parents</th> + <td class="author">{parent%filerevparent}</td> +</tr> +<tr> + <th class="author">children</th> + <td class="author">{child%filerevchild}</td> +</tr> +{changesettag} +</table> + +<div class="overflow"> +<div class="sourcefirst"> line source</div> +{text%fileline} +<div class="sourcelast"></div> +</div> +</div> +</div> + +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/paper/footer.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,4 @@ +{motd} + +</body> +</html>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/paper/graph.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,132 @@ +{header} +<title>{repo|escape}: revision graph</title> +<link rel="alternate" type="application/atom+xml" + href="{url}atom-log" title="Atom feed for {repo|escape}: log" /> +<link rel="alternate" type="application/rss+xml" + href="{url}rss-log" title="RSS feed for {repo|escape}: log" /> +<!--[if IE]><script type="text/javascript" src="{staticurl}excanvas.js"></script><![endif]--> +</head> +<body> + +<div class="container"> +<div class="menu"> +<div class="logo"> +<a href="http://mercurial.selenic.com/"> +<img src="{staticurl}hglogo.png" alt="mercurial" /></a> +</div> +<ul> +<li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li> +<li class="active">graph</li> +<li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li> +<li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li> +</ul> +<ul> +<li><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a></li> +<li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">browse</a></li> +</ul> +</div> + +<div class="main"> +<h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2> +<h3>graph</h3> + +<form class="search" action="{url}log"> +{sessionvars%hiddenformentry} +<p><input name="rev" id="search1" type="text" size="30" /></p> +<div id="hint">find changesets by author, revision, +files, or words in the commit message</div> +</form> + +<div class="navigate"> +<a href="{url}graph/{rev}{lessvars%urlparameter}">less</a> +<a href="{url}graph/{rev}{morevars%urlparameter}">more</a> +| rev {rev}: {changenav%navgraphentry} +</div> + +<noscript><p>The revision graph only works with JavaScript-enabled browsers.</p></noscript> + +<div id="wrapper"> +<ul id="nodebgs"></ul> +<canvas id="graph" width="224" height="{canvasheight}"></canvas> +<ul id="graphnodes"></ul> +</div> + +<script type="text/javascript" src="{staticurl}graph.js"></script> +<script type="text/javascript"> +<!-- hide script content + +var data = {jsdata|json}; +var graph = new Graph(); +graph.scale({bg_height}); + +graph.edge = function(x0, y0, x1, y1, color) { + + this.setColor(color, 0.0, 0.65); + this.ctx.beginPath(); + this.ctx.moveTo(x0, y0); + this.ctx.lineTo(x1, y1); + this.ctx.stroke(); + +} + +var revlink = '<li style="_STYLE"><span class="desc">'; +revlink += '<a href="{url}rev/_NODEID{sessionvars%urlparameter}" title="_NODEID">_DESC</a>'; +revlink += '</span>_TAGS<span class="info">_DATE ago, by _USER</span></li>'; + +graph.vertex = function(x, y, color, parity, cur) { + + this.ctx.beginPath(); + color = this.setColor(color, 0.25, 0.75); + this.ctx.arc(x, y, radius, 0, Math.PI * 2, true); + this.ctx.fill(); + + var bg = '<li class="bg parity' + parity + '"></li>'; + var left = (this.columns + 1) * this.bg_height; + var nstyle = 'padding-left: ' + left + 'px;'; + var item = revlink.replace(/_STYLE/, nstyle); + item = item.replace(/_PARITY/, 'parity' + parity); + item = item.replace(/_NODEID/, cur[0]); + item = item.replace(/_NODEID/, cur[0]); + item = item.replace(/_DESC/, cur[3]); + item = item.replace(/_USER/, cur[4]); + item = item.replace(/_DATE/, cur[5]); + + var tagspan = ''; + if (cur[7].length || (cur[6][0] != 'default' || cur[6][1])) { + tagspan = '<span class="logtags">'; + if (cur[6][1]) { + tagspan += '<span class="branchhead" title="' + cur[6][0] + '">'; + tagspan += cur[6][0] + '</span> '; + } else if (!cur[6][1] && cur[6][0] != 'default') { + tagspan += '<span class="branchname" title="' + cur[6][0] + '">'; + tagspan += cur[6][0] + '</span> '; + } + if (cur[7].length) { + for (var t in cur[7]) { + var tag = cur[7][t]; + tagspan += '<span class="tag">' + tag + '</span> '; + } + } + tagspan += '</span>'; + } + + item = item.replace(/_TAGS/, tagspan); + return [bg, item]; + +} + +graph.render(data); + +// stop hiding script --> +</script> + +<div class="navigate"> +<a href="{url}graph/{rev}{lessvars%urlparameter}">less</a> +<a href="{url}graph/{rev}{morevars%urlparameter}">more</a> +| rev {rev}: {changenav%navgraphentry} +</div> + +</div> +</div> + +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/paper/header.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,6 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US"> +<head> +<link rel="icon" href="{staticurl}hgicon.png" type="image/png" /> +<meta name="robots" content="index, nofollow" /> +<link rel="stylesheet" href="{staticurl}style-paper.css" type="text/css" />
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/paper/index.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,26 @@ +{header} +<title>Mercurial repositories index</title> +</head> +<body> + +<div class="container"> +<div class="menu"> +<a href="http://mercurial.selenic.com/"> +<img src="{staticurl}hglogo.png" width=75 height=90 border=0 alt="mercurial" /></a> +</div> +<div class="main"> +<h2>Mercurial Repositories</h2> + +<table class="bigtable"> + <tr> + <th><a href="?sort={sort_name}">Name</a></th> + <th><a href="?sort={sort_description}">Description</a></th> + <th><a href="?sort={sort_contact}">Contact</a></th> + <th><a href="?sort={sort_lastchange}">Last change</a></th> + <th> </th> + </tr> + {entries%indexentry} +</table> +</div> +</div> +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/paper/manifest.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,54 @@ +{header} +<title>{repo|escape}: {node|short} {path|escape}</title> +</head> +<body> + +<div class="container"> +<div class="menu"> +<div class="logo"> +<a href="http://mercurial.selenic.com/"> +<img src="{staticurl}hglogo.png" alt="mercurial" /></a> +</div> +<ul> +<li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li> +<li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li> +<li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li> +<li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li> +</ul> +<ul> +<li><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a></li> +<li class="active">browse</li> +</ul> +<ul> +{archives%archiveentry} +</ul> +</div> + +<div class="main"> +<h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2> +<h3>directory {path|escape} @ {rev}:{node|short} {tags%changelogtag}</h3> + +<form class="search" action="{url}log"> +{sessionvars%hiddenformentry} +<p><input name="rev" id="search1" type="text" size="30" /></p> +<div id="hint">find changesets by author, revision, +files, or words in the commit message</div> +</form> + +<table class="bigtable"> +<tr> + <th class="name">name</th> + <th class="size">size</th> + <th class="permissions">permissions</th> +</tr> +<tr class="fileline parity{upparity}"> + <td class="name"><a href="{url}file/{node|short}{up|urlescape}{sessionvars%urlparameter}">[up]</a></td> + <td class="size"></td> + <td class="permissions">drwxr-xr-x</td> +</tr> +{dentries%direntry} +{fentries%fileentry} +</table> +</div> +</div> +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/paper/map Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,191 @@ +default = 'shortlog' + +mimetype = 'text/html; charset={encoding}' +header = header.tmpl +footer = footer.tmpl +search = search.tmpl + +changelog = shortlog.tmpl +shortlog = shortlog.tmpl +shortlogentry = shortlogentry.tmpl +graph = graph.tmpl + +naventry = '<a href="{url}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> ' +navshortentry = '<a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> ' +navgraphentry = '<a href="{url}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> ' +filenaventry = '<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a> ' +filedifflink = '<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> ' +filenodelink = '<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> ' +filenolink = '{file|escape} ' +fileellipses = '...' +changelogentry = shortlogentry.tmpl +searchentry = shortlogentry.tmpl +changeset = changeset.tmpl +manifest = manifest.tmpl + +direntry = ' + <tr class="fileline parity{parity}"> + <td class="name"> + <a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}"> + <img src="{staticurl}coal-folder.png" alt="dir."/> {basename|escape}/ + </a> + <a href="{url}file/{node|short}{path|urlescape}/{emptydirs|urlescape}{sessionvars%urlparameter}"> + {emptydirs|escape} + </a> + </td> + <td class="size"></td> + <td class="permissions">drwxr-xr-x</td> + </tr>' + +fileentry = ' + <tr class="fileline parity{parity}"> + <td class="filename"> + <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}"> + <img src="{staticurl}coal-file.png" alt="file"/> {basename|escape} + </a> + </td> + <td class="size">{size}</td> + <td class="permissions">{permissions|permissions}</td> + </tr>' + +filerevision = filerevision.tmpl +fileannotate = fileannotate.tmpl +filediff = filediff.tmpl +filelog = filelog.tmpl +fileline = ' + <div class="parity{parity} source"><a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</div>' +filelogentry = filelogentry.tmpl + +annotateline = ' + <tr class="parity{parity}"> + <td class="annotate"> + <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#{targetline}" + title="{node|short}: {desc|escape|firstline}">{author|user}@{rev}</a> + </td> + <td class="source"><a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</td> + </tr>' + +diffblock = '<div class="source bottomline parity{parity}"><pre>{lines}</pre></div>' +difflineplus = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span class="plusline">{line|escape}</span>' +difflineminus = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span class="minusline">{line|escape}</span>' +difflineat = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span class="atline">{line|escape}</span>' +diffline = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}' + +changelogparent = ' + <tr> + <th class="parent">parent {rev}:</th> + <td class="parent"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td> + </tr>' + +changesetparent = '<a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> ' + +filerevparent = '<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{rename%filerename}{node|short}</a> ' +filerevchild = '<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a> ' + +filerename = '{file|escape}@' +filelogrename = ' + <tr> + <th>base:</th> + <td> + <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}"> + {file|escape}@{node|short} + </a> + </td> + </tr>' +fileannotateparent = ' + <tr> + <td class="metatag">parent:</td> + <td> + <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}"> + {rename%filerename}{node|short} + </a> + </td> + </tr>' +changesetchild = ' <a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>' +changelogchild = ' + <tr> + <th class="child">child</th> + <td class="child"> + <a href="{url}rev/{node|short}{sessionvars%urlparameter}"> + {node|short} + </a> + </td> + </tr>' +fileannotatechild = ' + <tr> + <td class="metatag">child:</td> + <td> + <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}"> + {node|short} + </a> + </td> + </tr>' +tags = tags.tmpl +tagentry = ' + <tr class="tagEntry parity{parity}"> + <td> + <a href="{url}rev/{node|short}{sessionvars%urlparameter}"> + {tag|escape} + </a> + </td> + <td class="node"> + {node|short} + </td> + </tr>' +branches = branches.tmpl +branchentry = ' + <tr class="tagEntry parity{parity}"> + <td> + <a href="{url}shortlog/{node|short}{sessionvars%urlparameter}" class="{status}"> + {branch|escape} + </a> + </td> + <td class="node"> + {node|short} + </td> + </tr>' +changelogtag = '<span class="tag">{name|escape}</span> ' +changesettag = '<span class="tag">{tag|escape}</span> ' +changelogbranchhead = '<span class="branchhead">{name|escape}</span> ' +changelogbranchname = '<span class="branchname">{name|escape}</span> ' + +filediffparent = ' + <tr> + <th class="parent">parent {rev}:</th> + <td class="parent"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td> + </tr>' +filelogparent = ' + <tr> + <th>parent {rev}:</th> + <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td> + </tr>' +filediffchild = ' + <tr> + <th class="child">child {rev}:</th> + <td class="child"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> + </td> + </tr>' +filelogchild = ' + <tr> + <th>child {rev}:</th> + <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td> + </tr>' + +indexentry = ' + <tr class="parity{parity}"> + <td><a href="{url}{sessionvars%urlparameter}">{name|escape}</a></td> + <td>{description}</td> + <td>{contact|obfuscate}</td> + <td class="age">{lastchange|age}</td> + <td class="indexlinks">{archives%indexarchiveentry}</td> + </tr>\n' +indexarchiveentry = '<a href="{url}archive/{node|short}{extension|urlescape}"> ↓{type|escape}</a>' +index = index.tmpl +archiveentry = ' + <li> + <a href="{url}archive/{node|short}{extension|urlescape}">{type|escape}</a> + </li>' +notfound = notfound.tmpl +error = error.tmpl +urlparameter = '{separator}{name}={value|urlescape}' +hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/paper/notfound.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,12 @@ +{header} +<title>Mercurial repository not found</title> +</head> +<body> + +<h2>Mercurial repository not found</h2> + +The specified repository "{repo|escape}" is unknown, sorry. + +Please go back to the <a href="{url}">main repository list page</a>. + +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/paper/search.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,43 @@ +{header} +<title>{repo|escape}: searching for {query|escape}</title> +</head> +<body> + +<div class="container"> +<div class="menu"> +<div class="logo"> +<a href="http://mercurial.selenic.com/"> +<img src="{staticurl}hglogo.png" width=75 height=90 border=0 alt="mercurial"></a> +</div> +<ul> +<li><a href="{url}shortlog{sessionvars%urlparameter}">log</a></li> +<li><a href="{url}graph{sessionvars%urlparameter}">graph</a></li> +<li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li> +<li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li> +</ul> +</div> + +<div class="main"> +<h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2> +<h3>searching for '{query|escape}'</h3> + +<form class="search" action="{url}log"> +{sessionvars%hiddenformentry} +<p><input name="rev" id="search1" type="text" size="30"></p> +<div id="hint">find changesets by author, revision, +files, or words in the commit message</div> +</form> + +<table class="bigtable"> + <tr> + <th class="age">age</th> + <th class="author">author</th> + <th class="description">description</th> + </tr> +{entries} +</table> + +</div> +</div> + +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/paper/shortlog.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,57 @@ +{header} +<title>{repo|escape}: log</title> +<link rel="alternate" type="application/atom+xml" + href="{url}atom-log" title="Atom feed for {repo|escape}" /> +<link rel="alternate" type="application/rss+xml" + href="{url}rss-log" title="RSS feed for {repo|escape}" /> +</head> +<body> + +<div class="container"> +<div class="menu"> +<div class="logo"> +<a href="http://mercurial.selenic.com/"> +<img src="{staticurl}hglogo.png" alt="mercurial" /></a> +</div> +<ul> +<li class="active">log</li> +<li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li> +<li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li> +<li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li> +</ul> +<ul> +<li><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a></li> +<li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">browse</a></li> +</ul> +<ul> +{archives%archiveentry} +</ul> +</div> + +<div class="main"> +<h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2> +<h3>log</h3> + +<form class="search" action="{url}log"> +{sessionvars%hiddenformentry} +<p><input name="rev" id="search1" type="text" size="30" /></p> +<div id="hint">find changesets by author, revision, +files, or words in the commit message</div> +</form> + +<div class="navigate">rev {rev}: {changenav%navshortentry}</div> + +<table class="bigtable"> + <tr> + <th class="age">age</th> + <th class="author">author</th> + <th class="description">description</th> + </tr> +{entries%shortlogentry} +</table> + +<div class="navigate">rev {rev}: {changenav%navshortentry}</div> +</div> +</div> + +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/paper/shortlogentry.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,5 @@ + <tr class="parity{parity}"> + <td class="age">{date|age}</td> + <td class="author">{author|person}</td> + <td class="description"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{desc|strip|firstline|escape|nonempty}</a>{inbranch%changelogbranchname}{branches%changelogbranchhead}{tags%changelogtag}</td> + </tr>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/paper/tags.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,45 @@ +{header} +<title>{repo|escape}: tags</title> +<link rel="alternate" type="application/atom+xml" + href="{url}atom-tags" title="Atom feed for {repo|escape}: tags" /> +<link rel="alternate" type="application/rss+xml" + href="{url}rss-tags" title="RSS feed for {repo|escape}: tags" /> +</head> +<body> + +<div class="container"> +<div class="menu"> +<div class="logo"> +<a href="http://mercurial.selenic.com/"> +<img src="{staticurl}hglogo.png" alt="mercurial" /></a> +</div> +<ul> +<li><a href="{url}shortlog{sessionvars%urlparameter}">log</a></li> +<li><a href="{url}graph{sessionvars%urlparameter}">graph</a></li> +<li class="active">tags</li> +<li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li> +</ul> +</div> + +<div class="main"> +<h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2> +<h3>tags</h3> + +<form class="search" action="{url}log"> +{sessionvars%hiddenformentry} +<p><input name="rev" id="search1" type="text" size="30" /></p> +<div id="hint">find changesets by author, revision, +files, or words in the commit message</div> +</form> + +<table class="bigtable"> +<tr> + <th>tag</th> + <th>node</th> +</tr> +{entries%tagentry} +</table> +</div> +</div> + +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/raw/changeset.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,9 @@ +{header} +# HG changeset patch +# User {author} +# Date {date|hgdate} +# Node ID {node} +{parent%changesetparent} +{desc} + +{diff}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/raw/error.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,2 @@ +{header} +error: {error}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/raw/fileannotate.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,5 @@ +{header} +{annotate%annotateline} +{footer} + +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/raw/filediff.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,5 @@ +{header} +{diff} +{footer} + +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/raw/index.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,2 @@ +{header} +{entries%indexentry}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/raw/manifest.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,3 @@ +{header} +{dentries%direntry}{fentries%fileentry} +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/raw/map Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,27 @@ +mimetype = 'text/plain; charset={encoding}' +header = '' +footer = '' +changeset = changeset.tmpl +difflineplus = '{line}' +difflineminus = '{line}' +difflineat = '{line}' +diffline = '{line}' +changesetparent = '# Parent {node}' +changesetchild = '# Child {node}' +filenodelink = '' +fileline = '{line}' +diffblock = '{lines}' +filediff = filediff.tmpl +fileannotate = fileannotate.tmpl +annotateline = '{author|user}@{rev}: {line}' +manifest = manifest.tmpl +direntry = 'drwxr-xr-x {basename}\n' +fileentry = '{permissions|permissions} {size} {basename}\n' +index = index.tmpl +notfound = notfound.tmpl +error = error.tmpl +indexentry = '{url}\n' +tags = '{entries%tagentry}' +tagentry = '{tag} {node}\n' +branches = '{entries%branchentry}' +branchentry = '{branch} {node} {status}\n'
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/raw/notfound.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,2 @@ +{header} +error: repository {repo} not found
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/rss/changelog.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,6 @@ +{header} + <title>{repo|escape} Changelog</title> + <description>{repo|escape} Changelog</description> + {entries%changelogentry} + </channel> +</rss> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/rss/changelogentry.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,7 @@ +<item> + <title>{desc|strip|firstline|strip|escape}</title> + <guid isPermaLink="true">{urlbase}{url}rev/{node|short}</guid> + <description><![CDATA[{desc|strip|escape|addbreaks|nonempty}]]></description> + <author>{author|obfuscate}</author> + <pubDate>{date|rfc822date}</pubDate> +</item>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/rss/error.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,10 @@ +{header} + <title>Error</title> + <description>Error</description> + <item> + <title>Error</title> + <description>{error|escape}</description> + <guid>http://mercurial.selenic.com/#error</guid> + </item> + </channel> +</rss>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/rss/filelog.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,6 @@ +{header} + <title>{repo|escape}: {file|escape} history</title> + <description>{file|escape} revision history</description> + {entries%filelogentry} + </channel> +</rss>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/rss/filelogentry.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,7 @@ +<item> + <title>{desc|strip|firstline|strip|escape}</title> + <link>{urlbase}{url}log{{node|short}}/{file|urlescape}</link> + <description><![CDATA[{desc|strip|escape|addbreaks|nonempty}]]></description> + <author>{author|obfuscate}</author> + <pubDate>{date|rfc822date}</pubDate> +</item>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/rss/header.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="{encoding}"?> +<rss version="2.0"> + <channel> + <link>{urlbase}{url}</link> + <language>en-us</language>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/rss/map Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,10 @@ +default = 'changelog' +mimetype = 'text/xml; charset={encoding}' +header = header.tmpl +changelog = changelog.tmpl +changelogentry = changelogentry.tmpl +filelog = filelog.tmpl +filelogentry = filelogentry.tmpl +tags = tags.tmpl +tagentry = tagentry.tmpl +error = error.tmpl
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/rss/tagentry.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,6 @@ +<item> + <title>{tag|escape}</title> + <link>{urlbase}{url}rev/{node|short}</link> + <description><![CDATA[{tag|strip|escape|addbreaks}]]></description> + <pubDate>{date|rfc822date}</pubDate> +</item>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/rss/tags.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,6 @@ +{header} + <title>{repo|escape}: tags </title> + <description>{repo|escape} tag history</description> + {entriesnotip%tagentry} + </channel> +</rss>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/spartan/branches.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,26 @@ +{header} +<title>{repo|escape}: branches</title> +<link rel="alternate" type="application/atom+xml" + href="{url}atom-branches" title="Atom feed for {repo|escape}: branches"> +<link rel="alternate" type="application/rss+xml" + href="{url}rss-branches" title="RSS feed for {repo|escape}: branches"> +</head> +<body> + +<div class="buttons"> +<a href="{url}log{sessionvars%urlparameter}">changelog</a> +<a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> +<a href="{url}graph{sessionvars%urlparameter}">graph</a> +<a href="{url}tags{sessionvars%urlparameter}">tags</a> +<a href="{url}file/{node|short}/{sessionvars%urlparameter}">files</a> +<a type="application/rss+xml" href="{url}rss-branches">rss</a> +<a type="application/atom+xml" href="{url}atom-branches">atom</a> +</div> + +<h2>branches:</h2> + +<ul id="tagEntries"> +{entries%branchentry} +</ul> + +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/spartan/changelog.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,43 @@ +{header} +<title>{repo|escape}: changelog</title> +<link rel="alternate" type="application/atom+xml" + href="{url}atom-log" title="Atom feed for {repo|escape}"> +<link rel="alternate" type="application/rss+xml" + href="{url}rss-log" title="RSS feed for {repo|escape}"> +</head> +<body> + +<div class="buttons"> +<a href="{url}shortlog/{rev}{sessionvars%urlparameter}">shortlog</a> +<a href="{url}graph{sessionvars%urlparameter}">graph</a> +<a href="{url}tags{sessionvars%urlparameter}">tags</a> +<a href="{url}branches{sessionvars%urlparameter}">branches</a> +<a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a> +{archives%archiveentry} +<a type="application/rss+xml" href="{url}rss-log">rss</a> +<a type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}">atom</a> +</div> + +<h2>changelog for {repo|escape}</h2> + +<form action="{url}log"> +{sessionvars%hiddenformentry} +<p> +<label for="search1">search:</label> +<input name="rev" id="search1" type="text" size="30"> +navigate: <small class="navigate">{changenav%naventry}</small> +</p> +</form> + +{entries%changelogentry} + +<form action="{url}log"> +{sessionvars%hiddenformentry} +<p> +<label for="search2">search:</label> +<input name="rev" id="search2" type="text" size="30"> +navigate: <small class="navigate">{changenav%naventry}</small> +</p> +</form> + +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/spartan/changelogentry.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,25 @@ +<table class="logEntry parity{parity}"> + <tr> + <th class="age">{date|age}:</th> + <th class="firstline">{desc|strip|firstline|escape|nonempty}</th> + </tr> + <tr> + <th class="revision">changeset {rev}:</th> + <td class="node"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td> + </tr> + {parent%changelogparent} + {child%changelogchild} + {changelogtag} + <tr> + <th class="author">author:</th> + <td class="author">{author|obfuscate}</td> + </tr> + <tr> + <th class="date">date:</th> + <td class="date">{date|date}</td> + </tr> + <tr> + <th class="files"><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>:</th> + <td class="files">{files}</td> + </tr> +</table>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/spartan/changeset.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,51 @@ +{header} +<title>{repo|escape}: changeset {node|short}</title> +</head> +<body> + +<div class="buttons"> +<a href="{url}log/{rev}{sessionvars%urlparameter}">changelog</a> +<a href="{url}shortlog/{rev}{sessionvars%urlparameter}">shortlog</a> +<a href="{url}graph{sessionvars%urlparameter}">graph</a> +<a href="{url}tags{sessionvars%urlparameter}">tags</a> +<a href="{url}branches{sessionvars%urlparameter}">branches</a> +<a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a> +<a href="{url}raw-rev/{node|short}">raw</a> +{archives%archiveentry} +</div> + +<h2>changeset: {desc|strip|escape|firstline|nonempty}</h2> + +<table id="changesetEntry"> +<tr> + <th class="changeset">changeset {rev}:</th> + <td class="changeset"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td> +</tr> +{parent%changesetparent} +{child%changesetchild} +{changesettag} +<tr> + <th class="author">author:</th> + <td class="author">{author|obfuscate}</td> +</tr> +<tr> + <th class="date">date:</th> + <td class="date">{date|date} ({date|age})</td> +</tr> +<tr> + <th class="files">files:</th> + <td class="files">{files}</td> +</tr> +<tr> + <th class="description">description:</th> + <td class="description">{desc|strip|escape|addbreaks|nonempty}</td> +</tr> +</table> + +<div id="changesetDiff"> +{diff} +</div> + +{footer} + +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/spartan/error.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,15 @@ +{header} +<title>Mercurial Error</title> +</head> +<body> + +<h2>Mercurial Error</h2> + +<p> +An error occurred while processing your request: +</p> +<p> +{error|escape} +</p> + +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/spartan/fileannotate.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,48 @@ +{header} +<title>{repo|escape}: {file|escape} annotate</title> +</head> +<body> + +<div class="buttons"> +<a href="{url}log/{rev}{sessionvars%urlparameter}">changelog</a> +<a href="{url}shortlog/{rev}{sessionvars%urlparameter}">shortlog</a> +<a href="{url}graph{sessionvars%urlparameter}">graph</a> +<a href="{url}tags{sessionvars%urlparameter}">tags</a> +<a href="{url}branches{sessionvars%urlparameter}">branches</a> +<a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> +<a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a> +<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> +<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> +<a href="{url}raw-annotate/{node|short}/{file|urlescape}">raw</a> +</div> + +<h2>Annotate {file|escape}</h2> + +<table> +<tr> + <td class="metatag">changeset {rev}:</td> + <td><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td></tr> +{parent%fileannotateparent} +{child%fileannotatechild} +<tr> + <td class="metatag">author:</td> + <td>{author|obfuscate}</td></tr> +<tr> + <td class="metatag">date:</td> + <td>{date|date} ({date|age})</td> +</tr> +<tr> + <td class="metatag">permissions:</td> + <td>{permissions|permissions}</td> +</tr> +<tr> + <td class="metatag">description:</td> + <td>{desc|strip|escape|addbreaks|nonempty}</td> +</tr> +</table> + +<table cellspacing="0" cellpadding="0"> +{annotate%annotateline} +</table> + +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/spartan/filediff.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,36 @@ +{header} +<title>{repo|escape}: {file|escape} diff</title> +</head> +<body> + +<div class="buttons"> +<a href="{url}log/{rev}{sessionvars%urlparameter}">changelog</a> +<a href="{url}shortlog/{rev}{sessionvars%urlparameter}">shortlog</a> +<a href="{url}graph{sessionvars%urlparameter}">graph</a> +<a href="{url}tags{sessionvars%urlparameter}">tags</a> +<a href="{url}branches{sessionvars%urlparameter}">branches</a> +<a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> +<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> +<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> +<a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> +<a href="{url}raw-diff/{node|short}/{file|urlescape}">raw</a> +</div> + +<h2>{file|escape}</h2> + +<table id="filediffEntry"> +<tr> + <th class="revision">revision {rev}:</th> + <td class="revision"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td> +</tr> +{parent%filediffparent} +{child%filediffchild} +</table> + +<div id="fileDiff"> +{diff} +</div> + +{footer} + +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/spartan/filelog.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,28 @@ +{header} +<title>{repo|escape}: {file|escape} history</title> +<link rel="alternate" type="application/atom+xml" + href="{url}atom-log/tip/{file|urlescape}" title="Atom feed for {repo|escape}:{file}"> +<link rel="alternate" type="application/rss+xml" + href="{url}rss-log/tip/{file|urlescape}" title="RSS feed for {repo|escape}:{file}"> +</head> +<body> + +<div class="buttons"> +<a href="{url}log{sessionvars%urlparameter}">changelog</a> +<a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> +<a href="{url}graph{sessionvars%urlparameter}">graph</a> +<a href="{url}tags{sessionvars%urlparameter}">tags</a> +<a href="{url}branches{sessionvars%urlparameter}">branches</a> +<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> +<a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> +<a type="application/rss+xml" href="{url}rss-log/tip/{file|urlescape}">rss</a> +<a type="application/atom+xml" href="{url}atom-log/tip/{file|urlescape}" title="Atom feed for {repo|escape}:{file}">atom</a> +</div> + +<h2>{file|escape} revision history</h2> + +<p>navigate: <small class="navigate">{nav%filenaventry}</small></p> + +{entries%filelogentry} + +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/spartan/filelogentry.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,25 @@ +<table class="logEntry parity{parity}"> + <tr> + <th class="age">{date|age}:</th> + <th class="firstline"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{desc|strip|firstline|escape|nonempty}</a></th> + </tr> + <tr> + <th class="revision">revision {filerev}:</td> + <td class="node"> + <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a> + <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">(diff)</a> + <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">(annotate)</a> + </td> + </tr> + {rename%filelogrename} + <tr> + <th class="author">author:</th> + <td class="author">{author|obfuscate}</td> + </tr> + <tr> + <th class="date">date:</th> + <td class="date">{date|date}</td> + </tr> +</table> + +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/spartan/filerevision.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,46 @@ +{header} +<title>{repo|escape}:{file|escape}</title> +</head> +<body> + +<div class="buttons"> +<a href="{url}log/{rev}{sessionvars%urlparameter}">changelog</a> +<a href="{url}shortlog/{rev}{sessionvars%urlparameter}">shortlog</a> +<a href="{url}graph{sessionvars%urlparameter}">graph</a> +<a href="{url}tags{sessionvars%urlparameter}">tags</a> +<a href="{url}branches{sessionvars%urlparameter}">branches</a> +<a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> +<a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a> +<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> +<a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> +<a href="{url}raw-file/{node|short}/{file|urlescape}">raw</a> +</div> + +<h2>{file|escape}</h2> + +<table> +<tr> + <td class="metatag">changeset {rev}:</td> + <td><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td></tr> +{parent%filerevparent} +{child%filerevchild} +<tr> + <td class="metatag">author:</td> + <td>{author|obfuscate}</td></tr> +<tr> + <td class="metatag">date:</td> + <td>{date|date} ({date|age})</td></tr> +<tr> + <td class="metatag">permissions:</td> + <td>{permissions|permissions}</td></tr> +<tr> + <td class="metatag">description:</td> + <td>{desc|strip|escape|addbreaks|nonempty}</td> +</tr> +</table> + +<pre> +{text%fileline} +</pre> + +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/spartan/footer.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,8 @@ +{motd} +<div class="logo"> +<a href="http://mercurial.selenic.com/"> +<img src="{staticurl}hglogo.png" width=75 height=90 border=0 alt="mercurial"></a> +</div> + +</body> +</html>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/spartan/graph.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,96 @@ +{header} +<title>{repo|escape}: graph</title> +<link rel="alternate" type="application/atom+xml" + href="{url}atom-tags" title="Atom feed for {repo|escape}: tags"> +<link rel="alternate" type="application/rss+xml" + href="{url}rss-tags" title="RSS feed for {repo|escape}: tags"> +<!--[if IE]><script type="text/javascript" src="{staticurl}excanvas.js"></script><![endif]--> +</head> +<body> + +<div class="buttons"> +<a href="{url}log{sessionvars%urlparameter}">changelog</a> +<a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> +<a href="{url}tags{sessionvars%urlparameter}">tags</a> +<a href="{url}branches{sessionvars%urlparameter}">branches</a> +<a href="{url}file/{node|short}/{sessionvars%urlparameter}">files</a> +</div> + +<h2>graph</h2> + +<form action="{url}log"> +{sessionvars%hiddenformentry} +<p> +<label for="search1">search:</label> +<input name="rev" id="search1" type="text" size="30"> +navigate: <small class="navigate">{changenav%navgraphentry}</small> +</p> +</form> + +<noscript>The revision graph only works with JavaScript-enabled browsers.</noscript> + +<div id="wrapper"> +<ul id="nodebgs"></ul> +<canvas id="graph" width="224" height="{canvasheight}"></canvas> +<ul id="graphnodes"></ul> +</div> + +<script type="text/javascript" src="{staticurl}graph.js"></script> +<script type="text/javascript"> +<!-- hide script content + +var data = {jsdata|json}; +var graph = new Graph(); +graph.scale({bg_height}); + +graph.edge = function(x0, y0, x1, y1, color) { + + this.setColor(color, 0.0, 0.65); + this.ctx.beginPath(); + this.ctx.moveTo(x0, y0); + this.ctx.lineTo(x1, y1); + this.ctx.stroke(); + +} + +var revlink = '<li style="_STYLE"><span class="desc">'; +revlink += '<a href="{url}rev/_NODEID{sessionvars%urlparameter}" title="_NODEID">_DESC</a>'; +revlink += '</span><span class="info">_DATE ago, by _USER</span></li>'; + +graph.vertex = function(x, y, color, parity, cur) { + + this.ctx.beginPath(); + color = this.setColor(color, 0.25, 0.75); + this.ctx.arc(x, y, radius, 0, Math.PI * 2, true); + this.ctx.fill(); + + var bg = '<li class="bg parity' + parity + '"></li>'; + var left = (this.columns + 1) * this.bg_height; + var nstyle = 'padding-left: ' + left + 'px;'; + var item = revlink.replace(/_STYLE/, nstyle); + item = item.replace(/_PARITY/, 'parity' + parity); + item = item.replace(/_NODEID/, cur[0]); + item = item.replace(/_NODEID/, cur[0]); + item = item.replace(/_DESC/, cur[3]); + item = item.replace(/_USER/, cur[4]); + item = item.replace(/_DATE/, cur[5]); + + return [bg, item]; + +} + +graph.render(data); + +// stop hiding script --> +</script> + +<form action="{url}log"> +{sessionvars%hiddenformentry} +<p> +<label for="search1">search:</label> +<input name="rev" id="search1" type="text" size="30"> +navigate: <small class="navigate">{changenav%navgraphentry}</small> +</p> +</form> + +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/spartan/header.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,6 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<link rel="icon" href="{staticurl}hgicon.png" type="image/png"> +<meta name="robots" content="index, nofollow" /> +<link rel="stylesheet" href="{staticurl}style.css" type="text/css" />
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/spartan/index.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,19 @@ +{header} +<title>Mercurial repositories index</title> +</head> +<body> + +<h2>Mercurial Repositories</h2> + +<table> + <tr> + <td><a href="?sort={sort_name}">Name</a></td> + <td><a href="?sort={sort_description}">Description</a></td> + <td><a href="?sort={sort_contact}">Contact</a></td> + <td><a href="?sort={sort_lastchange}">Last change</a></td> + <td> </td> + </tr> + {entries%indexentry} +</table> + +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/spartan/manifest.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,28 @@ +{header} +<title>{repo|escape}: files for changeset {node|short}</title> +</head> +<body> + +<div class="buttons"> +<a href="{url}log/{rev}{sessionvars%urlparameter}">changelog</a> +<a href="{url}shortlog/{rev}{sessionvars%urlparameter}">shortlog</a> +<a href="{url}graph{sessionvars%urlparameter}">graph</a> +<a href="{url}tags{sessionvars%urlparameter}">tags</a> +<a href="{url}branches{sessionvars%urlparameter}">branches</a> +<a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> +{archives%archiveentry} +</div> + +<h2>files for changeset {node|short}: {path|escape}</h2> + +<table cellpadding="0" cellspacing="0"> +<tr class="parity{upparity}"> + <td><tt>drwxr-xr-x</tt> + <td> + <td> + <td><a href="{url}file/{node|short}{up|urlescape}{sessionvars%urlparameter}">[up]</a> +</tr> +{dentries%direntry} +{fentries%fileentry} +</table> +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/spartan/map Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,178 @@ +default = 'shortlog' +mimetype = 'text/html; charset={encoding}' +header = header.tmpl +footer = footer.tmpl +search = search.tmpl +changelog = changelog.tmpl +shortlog = shortlog.tmpl +shortlogentry = shortlogentry.tmpl +graph = graph.tmpl +naventry = '<a href="{url}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> ' +navshortentry = '<a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> ' +navgraphentry = '<a href="{url}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> ' +filenaventry = '<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a> ' +filedifflink = '<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> ' +filenodelink = '<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> ' +filenolink = '{file|escape} ' +fileellipses = '...' +changelogentry = changelogentry.tmpl +searchentry = changelogentry.tmpl +changeset = changeset.tmpl +manifest = manifest.tmpl + +direntry = ' + <tr class="parity{parity}"> + <td><tt>drwxr-xr-x</tt> + <td> + <td> + <td> + <a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">{basename|escape}/</a> + <a href="{url}file/{node|short}{path|urlescape}/{emptydirs|urlescape}{sessionvars%urlparameter}"> + {emptydirs|urlescape} + </a>' + +fileentry = ' + <tr class="parity{parity}"> + <td><tt>{permissions|permissions}</tt> + <td align=right><tt class="date">{date|isodate}</tt> + <td align=right><tt>{size}</tt> + <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{basename|escape}</a>' + +filerevision = filerevision.tmpl +fileannotate = fileannotate.tmpl +filediff = filediff.tmpl +filelog = filelog.tmpl +fileline = '<div class="parity{parity}"><a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</div>' +filelogentry = filelogentry.tmpl + +# The ensures that all table cells have content (even if there +# is an empty line in the annotated file), which in turn ensures that +# all table rows have equal height. +annotateline = ' + <tr class="parity{parity}"> + <td class="annotate"> + <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}" + title="{node|short}: {desc|escape|firstline}">{author|user}@{rev}</a> + </td> + <td> + <a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a> + </td> + <td><pre> {line|escape}</pre></td> + </tr>' +difflineplus = '<span class="plusline"><a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>{line|escape}</span>' +difflineminus = '<span class="minusline"><a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>{line|escape}</span>' +difflineat = '<span class="atline"><a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>{line|escape}</span>' +diffline = '<a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>{line|escape}' +changelogparent = ' + <tr> + <th class="parent">parent {rev}:</th> + <td class="parent"> + <a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> + </td> + </tr>' +changesetparent = ' + <tr> + <th class="parent">parent {rev}:</th> + <td class="parent"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td> + </tr>' +filerevparent = ' + <tr> + <td class="metatag">parent:</td> + <td> + <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}"> + {rename%filerename}{node|short} + </a> + </td> + </tr>' +filerename = '{file|escape}@' +filelogrename = ' + <tr> + <th>base:</th> + <td> + <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}"> + {file|escape}@{node|short} + </a> + </td> + </tr>' +fileannotateparent = ' + <tr> + <td class="metatag">parent:</td> + <td> + <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}"> + {rename%filerename}{node|short} + </a> + </td> + </tr>' +changesetchild = ' + <tr> + <th class="child">child {rev}:</th> + <td class="child"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td> + </tr>' +changelogchild = ' + <tr> + <th class="child">child {rev}:</th> + <td class="child"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td> + </tr>' +filerevchild = ' + <tr> + <td class="metatag">child:</td> + <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td> + </tr>' +fileannotatechild = ' + <tr> + <td class="metatag">child:</td> + <td><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td> + </tr>' +tags = tags.tmpl +tagentry = ' + <li class="tagEntry parity{parity}"> + <tt class="node">{node}</tt> + <a href="{url}rev/{node|short}{sessionvars%urlparameter}">{tag|escape}</a> + </li>' +branches = branches.tmpl +branchentry = ' + <li class="tagEntry parity{parity}"> + <tt class="node">{node}</tt> + <a href="{url}shortlog/{node|short}{sessionvars%urlparameter}" class="{status}">{branch|escape}</a> + </li>' +diffblock = '<pre class="parity{parity}">{lines}</pre>' +changelogtag = '<tr><th class="tag">tag:</th><td class="tag">{tag|escape}</td></tr>' +changesettag = '<tr><th class="tag">tag:</th><td class="tag">{tag|escape}</td></tr>' +filediffparent = ' + <tr> + <th class="parent">parent {rev}:</th> + <td class="parent"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td> + </tr>' +filelogparent = ' + <tr> + <th>parent {rev}:</th> + <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td> + </tr>' +filediffchild = ' + <tr> + <th class="child">child {rev}:</th> + <td class="child"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td> + </tr>' +filelogchild = ' + <tr> + <th>child {rev}:</th> + <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td> + </tr>' +indexentry = ' + <tr class="parity{parity}"> + <td><a href="{url}{sessionvars%urlparameter}">{name|escape}</a></td> + <td>{description}</td> + <td>{contact|obfuscate}</td> + <td class="age">{lastchange|age} ago</td> + <td class="indexlinks"> + <a href="{url}rss-log">RSS</a> + <a href="{url}atom-log">Atom</a> + {archives%archiveentry} + </td> + </tr>' +index = index.tmpl +archiveentry = '<a href="{url}archive/{node|short}{extension|urlescape}">{type|escape}</a> ' +notfound = notfound.tmpl +error = error.tmpl +urlparameter = '{separator}{name}={value|urlescape}' +hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/spartan/notfound.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,12 @@ +{header} +<title>Mercurial repository not found</title> +</head> +<body> + +<h2>Mercurial repository not found</h2> + +The specified repository "{repo|escape}" is unknown, sorry. + +Please go back to the <a href="{url}">main repository list page</a>. + +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/spartan/search.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,36 @@ +{header} +<title>{repo|escape}: searching for {query|escape}</title> +</head> +<body> + +<div class="buttons"> +<a href="{url}log{sessionvars%urlparameter}">changelog</a> +<a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> +<a href="{url}graph{sessionvars%urlparameter}">graph</a> +<a href="{url}tags{sessionvars%urlparameter}">tags</a> +<a href="{url}branches{sessionvars%urlparameter}">branches</a> +<a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a> +{archives%archiveentry} +</div> + +<h2>searching for {query|escape}</h2> + +<form> +{sessionvars%hiddenformentry} +<p> +search: +<input name="rev" type="text" width="30" value="{query|escape}"> +</p> +</form> + +{entries} + +<form> +{sessionvars%hiddenformentry} +<p> +search: +<input name="rev" type="text" width="30" value="{query|escape}"> +</p> +</form> + +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/spartan/shortlog.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,43 @@ +{header} +<title>{repo|escape}: shortlog</title> +<link rel="alternate" type="application/atom+xml" + href="{url}atom-log" title="Atom feed for {repo|escape}"> +<link rel="alternate" type="application/rss+xml" + href="{url}rss-log" title="RSS feed for {repo|escape}"> +</head> +<body> + +<div class="buttons"> +<a href="{url}log/{rev}{sessionvars%urlparameter}">changelog</a> +<a href="{url}graph{sessionvars%urlparameter}">graph</a> +<a href="{url}tags{sessionvars%urlparameter}">tags</a> +<a href="{url}branches{sessionvars%urlparameter}">branches</a> +<a href="{url}file/{node|short}/{sessionvars%urlparameter}">files</a> +{archives%archiveentry} +<a type="application/rss+xml" href="{url}rss-log">rss</a> +<a type="application/rss+xml" href="{url}atom-log" title="Atom feed for {repo|escape}">atom</a> +</div> + +<h2>shortlog for {repo|escape}</h2> + +<form action="{url}log"> +{sessionvars%hiddenformentry} +<p> +<label for="search1">search:</label> +<input name="rev" id="search1" type="text" size="30"> +navigate: <small class="navigate">{changenav%navshortentry}</small> +</p> +</form> + +{entries%shortlogentry} + +<form action="{url}log"> +{sessionvars%hiddenformentry} +<p> +<label for="search2">search:</label> +<input name="rev" id="search2" type="text" size="30"> +navigate: <small class="navigate">{changenav%navshortentry}</small> +</p> +</form> + +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/spartan/shortlogentry.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,7 @@ +<table class="slogEntry parity{parity}"> + <tr> + <td class="age">{date|age}</td> + <td class="author">{author|person}</td> + <td class="node"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{desc|strip|firstline|escape|nonempty}</a></td> + </tr> +</table>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/spartan/tags.tmpl Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,26 @@ +{header} +<title>{repo|escape}: tags</title> +<link rel="alternate" type="application/atom+xml" + href="{url}atom-tags" title="Atom feed for {repo|escape}: tags"> +<link rel="alternate" type="application/rss+xml" + href="{url}rss-tags" title="RSS feed for {repo|escape}: tags"> +</head> +<body> + +<div class="buttons"> +<a href="{url}log{sessionvars%urlparameter}">changelog</a> +<a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> +<a href="{url}graph{sessionvars%urlparameter}">graph</a> +<a href="{url}branches{sessionvars%urlparameter}">branches</a> +<a href="{url}file/{node|short}/{sessionvars%urlparameter}">files</a> +<a type="application/rss+xml" href="{url}rss-tags">rss</a> +<a type="application/atom+xml" href="{url}atom-tags">atom</a> +</div> + +<h2>tags:</h2> + +<ul id="tagEntries"> +{entries%tagentry} +</ul> + +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/static/excanvas.js Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,19 @@ +if(!window.CanvasRenderingContext2D){(function(){var I=Math,i=I.round,L=I.sin,M=I.cos,m=10,A=m/2,Q={init:function(a){var b=a||document;if(/MSIE/.test(navigator.userAgent)&&!window.opera){var c=this;b.attachEvent("onreadystatechange",function(){c.r(b)})}},r:function(a){if(a.readyState=="complete"){if(!a.namespaces["s"]){a.namespaces.add("g_vml_","urn:schemas-microsoft-com:vml")}var b=a.createStyleSheet();b.cssText="canvas{display:inline-block;overflow:hidden;text-align:left;width:300px;height:150px}g_vml_\\:*{behavior:url(#default#VML)}"; +var c=a.getElementsByTagName("canvas");for(var d=0;d<c.length;d++){if(!c[d].getContext){this.initElement(c[d])}}}},q:function(a){var b=a.outerHTML,c=a.ownerDocument.createElement(b);if(b.slice(-2)!="/>"){var d="/"+a.tagName,e;while((e=a.nextSibling)&&e.tagName!=d){e.removeNode()}if(e){e.removeNode()}}a.parentNode.replaceChild(c,a);return c},initElement:function(a){a=this.q(a);a.getContext=function(){if(this.l){return this.l}return this.l=new K(this)};a.attachEvent("onpropertychange",V);a.attachEvent("onresize", +W);var b=a.attributes;if(b.width&&b.width.specified){a.style.width=b.width.nodeValue+"px"}else{a.width=a.clientWidth}if(b.height&&b.height.specified){a.style.height=b.height.nodeValue+"px"}else{a.height=a.clientHeight}return a}};function V(a){var b=a.srcElement;switch(a.propertyName){case "width":b.style.width=b.attributes.width.nodeValue+"px";b.getContext().clearRect();break;case "height":b.style.height=b.attributes.height.nodeValue+"px";b.getContext().clearRect();break}}function W(a){var b=a.srcElement; +if(b.firstChild){b.firstChild.style.width=b.clientWidth+"px";b.firstChild.style.height=b.clientHeight+"px"}}Q.init();var R=[];for(var E=0;E<16;E++){for(var F=0;F<16;F++){R[E*16+F]=E.toString(16)+F.toString(16)}}function J(){return[[1,0,0],[0,1,0],[0,0,1]]}function G(a,b){var c=J();for(var d=0;d<3;d++){for(var e=0;e<3;e++){var g=0;for(var h=0;h<3;h++){g+=a[d][h]*b[h][e]}c[d][e]=g}}return c}function N(a,b){b.fillStyle=a.fillStyle;b.lineCap=a.lineCap;b.lineJoin=a.lineJoin;b.lineWidth=a.lineWidth;b.miterLimit= +a.miterLimit;b.shadowBlur=a.shadowBlur;b.shadowColor=a.shadowColor;b.shadowOffsetX=a.shadowOffsetX;b.shadowOffsetY=a.shadowOffsetY;b.strokeStyle=a.strokeStyle;b.d=a.d;b.e=a.e}function O(a){var b,c=1;a=String(a);if(a.substring(0,3)=="rgb"){var d=a.indexOf("(",3),e=a.indexOf(")",d+1),g=a.substring(d+1,e).split(",");b="#";for(var h=0;h<3;h++){b+=R[Number(g[h])]}if(g.length==4&&a.substr(3,1)=="a"){c=g[3]}}else{b=a}return[b,c]}function S(a){switch(a){case "butt":return"flat";case "round":return"round"; +case "square":default:return"square"}}function K(a){this.a=J();this.m=[];this.k=[];this.c=[];this.strokeStyle="#000";this.fillStyle="#000";this.lineWidth=1;this.lineJoin="miter";this.lineCap="butt";this.miterLimit=m*1;this.globalAlpha=1;this.canvas=a;var b=a.ownerDocument.createElement("div");b.style.width=a.clientWidth+"px";b.style.height=a.clientHeight+"px";b.style.overflow="hidden";b.style.position="absolute";a.appendChild(b);this.j=b;this.d=1;this.e=1}var j=K.prototype;j.clearRect=function(){this.j.innerHTML= +"";this.c=[]};j.beginPath=function(){this.c=[]};j.moveTo=function(a,b){this.c.push({type:"moveTo",x:a,y:b});this.f=a;this.g=b};j.lineTo=function(a,b){this.c.push({type:"lineTo",x:a,y:b});this.f=a;this.g=b};j.bezierCurveTo=function(a,b,c,d,e,g){this.c.push({type:"bezierCurveTo",cp1x:a,cp1y:b,cp2x:c,cp2y:d,x:e,y:g});this.f=e;this.g=g};j.quadraticCurveTo=function(a,b,c,d){var e=this.f+0.6666666666666666*(a-this.f),g=this.g+0.6666666666666666*(b-this.g),h=e+(c-this.f)/3,l=g+(d-this.g)/3;this.bezierCurveTo(e, +g,h,l,c,d)};j.arc=function(a,b,c,d,e,g){c*=m;var h=g?"at":"wa",l=a+M(d)*c-A,n=b+L(d)*c-A,o=a+M(e)*c-A,f=b+L(e)*c-A;if(l==o&&!g){l+=0.125}this.c.push({type:h,x:a,y:b,radius:c,xStart:l,yStart:n,xEnd:o,yEnd:f})};j.rect=function(a,b,c,d){this.moveTo(a,b);this.lineTo(a+c,b);this.lineTo(a+c,b+d);this.lineTo(a,b+d);this.closePath()};j.strokeRect=function(a,b,c,d){this.beginPath();this.moveTo(a,b);this.lineTo(a+c,b);this.lineTo(a+c,b+d);this.lineTo(a,b+d);this.closePath();this.stroke()};j.fillRect=function(a, +b,c,d){this.beginPath();this.moveTo(a,b);this.lineTo(a+c,b);this.lineTo(a+c,b+d);this.lineTo(a,b+d);this.closePath();this.fill()};j.createLinearGradient=function(a,b,c,d){var e=new H("gradient");return e};j.createRadialGradient=function(a,b,c,d,e,g){var h=new H("gradientradial");h.n=c;h.o=g;h.i.x=a;h.i.y=b;return h};j.drawImage=function(a,b){var c,d,e,g,h,l,n,o,f=a.runtimeStyle.width,k=a.runtimeStyle.height;a.runtimeStyle.width="auto";a.runtimeStyle.height="auto";var q=a.width,r=a.height;a.runtimeStyle.width= +f;a.runtimeStyle.height=k;if(arguments.length==3){c=arguments[1];d=arguments[2];h=(l=0);n=(e=q);o=(g=r)}else if(arguments.length==5){c=arguments[1];d=arguments[2];e=arguments[3];g=arguments[4];h=(l=0);n=q;o=r}else if(arguments.length==9){h=arguments[1];l=arguments[2];n=arguments[3];o=arguments[4];c=arguments[5];d=arguments[6];e=arguments[7];g=arguments[8]}else{throw"Invalid number of arguments";}var s=this.b(c,d),t=[],v=10,w=10;t.push(" <g_vml_:group",' coordsize="',m*v,",",m*w,'"',' coordorigin="0,0"', +' style="width:',v,";height:",w,";position:absolute;");if(this.a[0][0]!=1||this.a[0][1]){var x=[];x.push("M11='",this.a[0][0],"',","M12='",this.a[1][0],"',","M21='",this.a[0][1],"',","M22='",this.a[1][1],"',","Dx='",i(s.x/m),"',","Dy='",i(s.y/m),"'");var p=s,y=this.b(c+e,d),z=this.b(c,d+g),B=this.b(c+e,d+g);p.x=Math.max(p.x,y.x,z.x,B.x);p.y=Math.max(p.y,y.y,z.y,B.y);t.push("padding:0 ",i(p.x/m),"px ",i(p.y/m),"px 0;filter:progid:DXImageTransform.Microsoft.Matrix(",x.join(""),", sizingmethod='clip');")}else{t.push("top:", +i(s.y/m),"px;left:",i(s.x/m),"px;")}t.push(' ">','<g_vml_:image src="',a.src,'"',' style="width:',m*e,";"," height:",m*g,';"',' cropleft="',h/q,'"',' croptop="',l/r,'"',' cropright="',(q-h-n)/q,'"',' cropbottom="',(r-l-o)/r,'"'," />","</g_vml_:group>");this.j.insertAdjacentHTML("BeforeEnd",t.join(""))};j.stroke=function(a){var b=[],c=O(a?this.fillStyle:this.strokeStyle),d=c[0],e=c[1]*this.globalAlpha,g=10,h=10;b.push("<g_vml_:shape",' fillcolor="',d,'"',' filled="',Boolean(a),'"',' style="position:absolute;width:', +g,";height:",h,';"',' coordorigin="0 0" coordsize="',m*g," ",m*h,'"',' stroked="',!a,'"',' strokeweight="',this.lineWidth,'"',' strokecolor="',d,'"',' path="');var l={x:null,y:null},n={x:null,y:null};for(var o=0;o<this.c.length;o++){var f=this.c[o];if(f.type=="moveTo"){b.push(" m ");var k=this.b(f.x,f.y);b.push(i(k.x),",",i(k.y))}else if(f.type=="lineTo"){b.push(" l ");var k=this.b(f.x,f.y);b.push(i(k.x),",",i(k.y))}else if(f.type=="close"){b.push(" x ")}else if(f.type=="bezierCurveTo"){b.push(" c "); +var k=this.b(f.x,f.y),q=this.b(f.cp1x,f.cp1y),r=this.b(f.cp2x,f.cp2y);b.push(i(q.x),",",i(q.y),",",i(r.x),",",i(r.y),",",i(k.x),",",i(k.y))}else if(f.type=="at"||f.type=="wa"){b.push(" ",f.type," ");var k=this.b(f.x,f.y),s=this.b(f.xStart,f.yStart),t=this.b(f.xEnd,f.yEnd);b.push(i(k.x-this.d*f.radius),",",i(k.y-this.e*f.radius)," ",i(k.x+this.d*f.radius),",",i(k.y+this.e*f.radius)," ",i(s.x),",",i(s.y)," ",i(t.x),",",i(t.y))}if(k){if(l.x==null||k.x<l.x){l.x=k.x}if(n.x==null||k.x>n.x){n.x=k.x}if(l.y== +null||k.y<l.y){l.y=k.y}if(n.y==null||k.y>n.y){n.y=k.y}}}b.push(' ">');if(typeof this.fillStyle=="object"){var v={x:"50%",y:"50%"},w=n.x-l.x,x=n.y-l.y,p=w>x?w:x;v.x=i(this.fillStyle.i.x/w*100+50)+"%";v.y=i(this.fillStyle.i.y/x*100+50)+"%";var y=[];if(this.fillStyle.p=="gradientradial"){var z=this.fillStyle.n/p*100,B=this.fillStyle.o/p*100-z}else{var z=0,B=100}var C={offset:null,color:null},D={offset:null,color:null};this.fillStyle.h.sort(function(T,U){return T.offset-U.offset});for(var o=0;o<this.fillStyle.h.length;o++){var u= +this.fillStyle.h[o];y.push(u.offset*B+z,"% ",u.color,",");if(u.offset>C.offset||C.offset==null){C.offset=u.offset;C.color=u.color}if(u.offset<D.offset||D.offset==null){D.offset=u.offset;D.color=u.color}}y.pop();b.push("<g_vml_:fill",' color="',D.color,'"',' color2="',C.color,'"',' type="',this.fillStyle.p,'"',' focusposition="',v.x,", ",v.y,'"',' colors="',y.join(""),'"',' opacity="',e,'" />')}else if(a){b.push('<g_vml_:fill color="',d,'" opacity="',e,'" />')}else{b.push("<g_vml_:stroke",' opacity="', +e,'"',' joinstyle="',this.lineJoin,'"',' miterlimit="',this.miterLimit,'"',' endcap="',S(this.lineCap),'"',' weight="',this.lineWidth,'px"',' color="',d,'" />')}b.push("</g_vml_:shape>");this.j.insertAdjacentHTML("beforeEnd",b.join(""));this.c=[]};j.fill=function(){this.stroke(true)};j.closePath=function(){this.c.push({type:"close"})};j.b=function(a,b){return{x:m*(a*this.a[0][0]+b*this.a[1][0]+this.a[2][0])-A,y:m*(a*this.a[0][1]+b*this.a[1][1]+this.a[2][1])-A}};j.save=function(){var a={};N(this,a); +this.k.push(a);this.m.push(this.a);this.a=G(J(),this.a)};j.restore=function(){N(this.k.pop(),this);this.a=this.m.pop()};j.translate=function(a,b){var c=[[1,0,0],[0,1,0],[a,b,1]];this.a=G(c,this.a)};j.rotate=function(a){var b=M(a),c=L(a),d=[[b,c,0],[-c,b,0],[0,0,1]];this.a=G(d,this.a)};j.scale=function(a,b){this.d*=a;this.e*=b;var c=[[a,0,0],[0,b,0],[0,0,1]];this.a=G(c,this.a)};j.clip=function(){};j.arcTo=function(){};j.createPattern=function(){return new P};function H(a){this.p=a;this.n=0;this.o= +0;this.h=[];this.i={x:0,y:0}}H.prototype.addColorStop=function(a,b){b=O(b);this.h.push({offset:1-a,color:b})};function P(){}G_vmlCanvasManager=Q;CanvasRenderingContext2D=K;CanvasGradient=H;CanvasPattern=P})()};
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/static/graph.js Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,137 @@ +// branch_renderer.js - Rendering of branch DAGs on the client side +// +// Copyright 2008 Dirkjan Ochtman <dirkjan AT ochtman DOT nl> +// Copyright 2006 Alexander Schremmer <alex AT alexanderweb DOT de> +// +// derived from code written by Scott James Remnant <scott@ubuntu.com> +// Copyright 2005 Canonical Ltd. +// +// This software may be used and distributed according to the terms +// of the GNU General Public License, incorporated herein by reference. + +var colors = [ + [ 1.0, 0.0, 0.0 ], + [ 1.0, 1.0, 0.0 ], + [ 0.0, 1.0, 0.0 ], + [ 0.0, 1.0, 1.0 ], + [ 0.0, 0.0, 1.0 ], + [ 1.0, 0.0, 1.0 ] +]; + +function Graph() { + + this.canvas = document.getElementById('graph'); + if (navigator.userAgent.indexOf('MSIE') >= 0) this.canvas = window.G_vmlCanvasManager.initElement(this.canvas); + this.ctx = this.canvas.getContext('2d'); + this.ctx.strokeStyle = 'rgb(0, 0, 0)'; + this.ctx.fillStyle = 'rgb(0, 0, 0)'; + this.cur = [0, 0]; + this.line_width = 3; + this.bg = [0, 4]; + this.cell = [2, 0]; + this.columns = 0; + this.revlink = ''; + + this.scale = function(height) { + this.bg_height = height; + this.box_size = Math.floor(this.bg_height / 1.2); + this.cell_height = this.box_size; + } + + function colorPart(num) { + num *= 255 + num = num < 0 ? 0 : num; + num = num > 255 ? 255 : num; + var digits = Math.round(num).toString(16); + if (num < 16) { + return '0' + digits; + } else { + return digits; + } + } + + this.setColor = function(color, bg, fg) { + + // Set the colour. + // + // Picks a distinct colour based on an internal wheel; the bg + // parameter provides the value that should be assigned to the 'zero' + // colours and the fg parameter provides the multiplier that should be + // applied to the foreground colours. + + color %= colors.length; + var red = (colors[color][0] * fg) || bg; + var green = (colors[color][1] * fg) || bg; + var blue = (colors[color][2] * fg) || bg; + red = Math.round(red * 255); + green = Math.round(green * 255); + blue = Math.round(blue * 255); + var s = 'rgb(' + red + ', ' + green + ', ' + blue + ')'; + this.ctx.strokeStyle = s; + this.ctx.fillStyle = s; + return s; + + } + + this.render = function(data) { + + var backgrounds = ''; + var nodedata = ''; + + for (var i in data) { + + var parity = i % 2; + this.cell[1] += this.bg_height; + this.bg[1] += this.bg_height; + + var cur = data[i]; + var node = cur[1]; + var edges = cur[2]; + var fold = false; + + for (var j in edges) { + + line = edges[j]; + start = line[0]; + end = line[1]; + color = line[2]; + + if (end > this.columns || start > this.columns) { + this.columns += 1; + } + + if (start == this.columns && start > end) { + var fold = true; + } + + x0 = this.cell[0] + this.box_size * start + this.box_size / 2; + y0 = this.bg[1] - this.bg_height / 2; + x1 = this.cell[0] + this.box_size * end + this.box_size / 2; + y1 = this.bg[1] + this.bg_height / 2; + + this.edge(x0, y0, x1, y1, color); + + } + + // Draw the revision node in the right column + + column = node[0] + color = node[1] + + radius = this.box_size / 8; + x = this.cell[0] + this.box_size * column + this.box_size / 2; + y = this.bg[1] - this.bg_height / 2; + var add = this.vertex(x, y, color, parity, cur); + backgrounds += add[0]; + nodedata += add[1]; + + if (fold) this.columns -= 1; + + } + + document.getElementById('nodebgs').innerHTML += backgrounds; + document.getElementById('graphnodes').innerHTML += nodedata; + + } + +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/static/style-coal.css Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,265 @@ +body { + margin: 0; + padding: 0; + background: black url(background.png) repeat-x; + font-family: sans-serif; +} + +.container { + padding-right: 150px; +} + +.main { + position: relative; + background: white; + padding: 2em; + border-right: 15px solid black; + border-bottom: 15px solid black; +} + +#.main { + width: 98%; +} + +.overflow { + width: 100%; + overflow: auto; +} + +.menu { + background: #999; + padding: 10px; + width: 75px; + margin: 0; + font-size: 80%; + text-align: left; + position: fixed; + top: 27px; + left: auto; + right: 27px; +} + +#.menu { + position: absolute !important; + top:expression(eval(document.body.scrollTop + 27)); +} + +.menu ul { + list-style: none; + padding: 0; + margin: 10px 0 0 0; +} + +.menu li { + margin-bottom: 3px; + padding: 2px 4px; + background: white; + color: black; + font-weight: normal; +} + +.menu li.active { + background: black; + color: white; +} + +.menu img { + width: 75px; + height: 90px; + border: 0; +} + +.menu a { color: black; display: block; } + +.search { + position: absolute; + top: .7em; + right: 2em; +} + +form.search div#hint { + display: none; + position: absolute; + top: 40px; + right: 0px; + width: 190px; + padding: 5px; + background: #ffc; + font-size: 70%; + border: 1px solid yellow; + -moz-border-radius: 5px; /* this works only in camino/firefox */ + -webkit-border-radius: 5px; /* this is just for Safari */ +} + +form.search:hover div#hint { display: block; } + +a { text-decoration:none; } +.age { white-space:nowrap; } +.date { white-space:nowrap; } +.indexlinks { white-space:nowrap; } +.parity0 { background-color: #f0f0f0; } +.parity1 { background-color: white; } +.plusline { color: green; } +.minusline { color: #dc143c; } /* crimson */ +.atline { color: purple; } + +.navigate { + text-align: right; + font-size: 60%; + margin: 1em 0; +} + +.tag { + color: #999; + font-size: 70%; + font-weight: normal; + margin-left: .5em; + vertical-align: baseline; +} + +.branchhead { + color: #000; + font-size: 80%; + font-weight: normal; + margin-left: .5em; + vertical-align: baseline; +} + +ul#graphnodes .branchhead { + font-size: 75%; +} + +.branchname { + color: #000; + font-size: 60%; + font-weight: normal; + margin-left: .5em; + vertical-align: baseline; +} + +h3 .branchname { + font-size: 80%; +} + +/* Common */ +pre { margin: 0; } + +h2 { font-size: 120%; border-bottom: 1px solid #999; } +h2 a { color: #000; } +h3 { + margin-top: -.7em; + font-size: 100%; +} + +/* log and tags tables */ +.bigtable { + border-bottom: 1px solid #999; + border-collapse: collapse; + font-size: 90%; + width: 100%; + font-weight: normal; + text-align: left; +} + +.bigtable td { + vertical-align: top; +} + +.bigtable th { + padding: 1px 4px; + border-bottom: 1px solid #999; +} +.bigtable tr { border: none; } +.bigtable .age { width: 6em; } +.bigtable .author { width: 12em; } +.bigtable .description { } +.bigtable .node { width: 5em; font-family: monospace;} +.bigtable .lineno { width: 2em; text-align: right;} +.bigtable .lineno a { color: #999; font-size: smaller; font-family: monospace;} +.bigtable .permissions { width: 8em; text-align: left;} +.bigtable .size { width: 5em; text-align: right; } +.bigtable .annotate { text-align: right; } +.bigtable td.annotate { font-size: smaller; } +.bigtable td.source { font-size: inherit; } + +.source, .sourcefirst, .sourcelast { + font-family: monospace; + white-space: pre; + padding: 1px 4px; + font-size: 90%; +} +.sourcefirst { border-bottom: 1px solid #999; font-weight: bold; } +.sourcelast { border-top: 1px solid #999; } +.source a { color: #999; font-size: smaller; font-family: monospace;} +.bottomline { border-bottom: 1px solid #999; } + +.fileline { font-family: monospace; } +.fileline img { border: 0; } + +.tagEntry .closed { color: #99f; } + +/* Changeset entry */ +#changesetEntry { + border-collapse: collapse; + font-size: 90%; + width: 100%; + margin-bottom: 1em; +} + +#changesetEntry th { + padding: 1px 4px; + width: 4em; + text-align: right; + font-weight: normal; + color: #999; + margin-right: .5em; + vertical-align: top; +} + +div.description { + border-left: 3px solid #999; + margin: 1em 0 1em 0; + padding: .3em; +} + +/* Graph */ +div#wrapper { + position: relative; + border-top: 1px solid black; + border-bottom: 1px solid black; + margin: 0; + padding: 0; +} + +canvas { + position: absolute; + z-index: 5; + top: -0.7em; + margin: 0; +} + +ul#graphnodes { + position: absolute; + z-index: 10; + top: -1.0em; + list-style: none inside none; + padding: 0; +} + +ul#nodebgs { + list-style: none inside none; + padding: 0; + margin: 0; + top: -0.7em; +} + +ul#graphnodes li, ul#nodebgs li { + height: 39px; +} + +ul#graphnodes li .info { + display: block; + font-size: 70%; + position: relative; + top: -3px; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/static/style-gitweb.css Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,123 @@ +body { font-family: sans-serif; font-size: 12px; margin:0px; border:solid #d9d8d1; border-width:1px; margin:10px; } +a { color:#0000cc; } +a:hover, a:visited, a:active { color:#880000; } +div.page_header { height:25px; padding:8px; font-size:18px; font-weight:bold; background-color:#d9d8d1; } +div.page_header a:visited { color:#0000cc; } +div.page_header a:hover { color:#880000; } +div.page_nav { padding:8px; } +div.page_nav a:visited { color:#0000cc; } +div.page_path { padding:8px; border:solid #d9d8d1; border-width:0px 0px 1px} +div.page_footer { padding:4px 8px; background-color: #d9d8d1; } +div.page_footer_text { float:left; color:#555555; font-style:italic; } +div.page_body { padding:8px; } +div.title, a.title { + display:block; padding:6px 8px; + font-weight:bold; background-color:#edece6; text-decoration:none; color:#000000; +} +a.title:hover { background-color: #d9d8d1; } +div.title_text { padding:6px 0px; border: solid #d9d8d1; border-width:0px 0px 1px; } +div.log_body { padding:8px 8px 8px 150px; } +.age { white-space:nowrap; } +span.age { position:relative; float:left; width:142px; font-style:italic; } +div.log_link { + padding:0px 8px; + font-size:10px; font-family:sans-serif; font-style:normal; + position:relative; float:left; width:136px; +} +div.list_head { padding:6px 8px 4px; border:solid #d9d8d1; border-width:1px 0px 0px; font-style:italic; } +a.list { text-decoration:none; color:#000000; } +a.list:hover { text-decoration:underline; color:#880000; } +table { padding:8px 4px; } +th { padding:2px 5px; font-size:12px; text-align:left; } +tr.light:hover, .parity0:hover { background-color:#edece6; } +tr.dark, .parity1 { background-color:#f6f6f0; } +tr.dark:hover, .parity1:hover { background-color:#edece6; } +td { padding:2px 5px; font-size:12px; vertical-align:top; } +td.link { padding:2px 5px; font-family:sans-serif; font-size:10px; } +td.indexlinks { white-space: nowrap; } +td.indexlinks a { + padding: 2px 5px; line-height: 10px; + border: 1px solid; + color: #ffffff; background-color: #7777bb; + border-color: #aaaadd #333366 #333366 #aaaadd; + font-weight: bold; text-align: center; text-decoration: none; + font-size: 10px; +} +td.indexlinks a:hover { background-color: #6666aa; } +div.pre { font-family:monospace; font-size:12px; white-space:pre; } +div.diff_info { font-family:monospace; color:#000099; background-color:#edece6; font-style:italic; } +div.index_include { border:solid #d9d8d1; border-width:0px 0px 1px; padding:12px 8px; } +div.search { margin:4px 8px; position:absolute; top:56px; right:12px } +.linenr { color:#999999; text-decoration:none } +div.rss_logo { float: right; white-space: nowrap; } +div.rss_logo a { + padding:3px 6px; line-height:10px; + border:1px solid; border-color:#fcc7a5 #7d3302 #3e1a01 #ff954e; + color:#ffffff; background-color:#ff6600; + font-weight:bold; font-family:sans-serif; font-size:10px; + text-align:center; text-decoration:none; +} +div.rss_logo a:hover { background-color:#ee5500; } +pre { margin: 0; } +span.logtags span { + padding: 0px 4px; + font-size: 10px; + font-weight: normal; + border: 1px solid; + background-color: #ffaaff; + border-color: #ffccff #ff00ee #ff00ee #ffccff; +} +span.logtags span.tagtag { + background-color: #ffffaa; + border-color: #ffffcc #ffee00 #ffee00 #ffffcc; +} +span.logtags span.branchtag { + background-color: #aaffaa; + border-color: #ccffcc #00cc33 #00cc33 #ccffcc; +} +span.logtags span.inbranchtag { + background-color: #d5dde6; + border-color: #e3ecf4 #9398f4 #9398f4 #e3ecf4; +} + +/* Graph */ +div#wrapper { + position: relative; + margin: 0; + padding: 0; + margin-top: 3px; +} + +canvas { + position: absolute; + z-index: 5; + top: -0.9em; + margin: 0; +} + +ul#nodebgs { + list-style: none inside none; + padding: 0; + margin: 0; + top: -0.7em; +} + +ul#graphnodes li, ul#nodebgs li { + height: 39px; +} + +ul#graphnodes { + position: absolute; + z-index: 10; + top: -0.8em; + list-style: none inside none; + padding: 0; +} + +ul#graphnodes li .info { + display: block; + font-size: 100%; + position: relative; + top: -3px; + font-style: italic; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/static/style-monoblue.css Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,472 @@ +/*** Initial Settings ***/ +* { + margin: 0; + padding: 0; + font-weight: normal; + font-style: normal; +} + +html { + font-size: 100%; + font-family: sans-serif; +} + +body { + font-size: 77%; + margin: 15px 50px; + background: #4B4B4C; +} + +a { + color:#0000cc; + text-decoration: none; +} +/*** end of Initial Settings ***/ + + +/** common settings **/ +div#container { + background: #FFFFFF; + position: relative; + color: #666; +} + +div.page-header { + padding: 50px 20px 0; + background: #006699 top left repeat-x; + position: relative; +} + div.page-header h1 { + margin: 10px 0 30px; + font-size: 1.8em; + font-weight: bold; + font-family: osaka,'MS P Gothic', Georgia, serif; + letter-spacing: 1px; + color: #DDD; + } + div.page-header h1 a { + font-weight: bold; + color: #FFF; + } + div.page-header a { + text-decoration: none; + } + + div.page-header form { + position: absolute; + margin-bottom: 2px; + bottom: 0; + right: 20px; + } + div.page-header form label { + color: #DDD; + } + div.page-header form input { + padding: 2px; + border: solid 1px #DDD; + } + div.page-header form dl { + overflow: hidden; + } + div.page-header form dl dt { + font-size: 1.2em; + } + div.page-header form dl dt, + div.page-header form dl dd { + margin: 0 0 0 5px; + float: left; + height: 24px; + line-height: 20px; + } + + ul.page-nav { + margin: 10px 0 0 0; + list-style-type: none; + overflow: hidden; + width: 800px; + } + ul.page-nav li { + margin: 0 2px 0 0; + float: left; + width: 80px; + height: 24px; + font-size: 1.1em; + line-height: 24px; + text-align: center; + } + ul.page-nav li.current { + background: #FFF; + } + ul.page-nav li a { + height: 24px; + color: #666; + background: #DDD; + display: block; + text-decoration: none; + } + ul.page-nav li a:hover { + color:#333; + background: #FFF; + } + +ul.submenu { + margin: 10px 0 -10px 20px; + list-style-type: none; +} +ul.submenu li { + margin: 0 10px 0 0; + font-size: 1.2em; + display: inline; +} + +h2 { + margin: 20px 0 10px; + height: 30px; + line-height: 30px; + text-indent: 20px; + background: #FFF; + font-size: 1.2em; + border-top: dotted 1px #D5E1E6; + font-weight: bold; +} +h2.no-link { + color:#006699; +} +h2.no-border { + color: #FFF; + background: #006699; + border: 0; +} +h2 a { + font-weight:bold; + color:#006699; +} + +div.page-path { + text-align: right; + padding: 20px 30px 10px 0; + border:solid #d9d8d1; + border-width:0px 0px 1px; + font-size: 1.2em; +} + +div.page-footer { + margin: 50px 0 0; + position: relative; +} + div.page-footer p { + position: relative; + left: 20px; + bottom: 5px; + font-size: 1.2em; + } + + ul.rss-logo { + position: absolute; + top: -10px; + right: 20px; + height: 20px; + list-style-type: none; + } + ul.rss-logo li { + display: inline; + } + ul.rss-logo li a { + padding: 3px 6px; + line-height: 10px; + border:1px solid; + border-color:#fcc7a5 #7d3302 #3e1a01 #ff954e; + color:#ffffff; + background-color:#ff6600; + font-weight:bold; + font-family:sans-serif; + font-size:10px; + text-align:center; + text-decoration:none; + } + div.rss-logo li a:hover { + background-color:#ee5500; + } + +p.normal { + margin: 20px 0 20px 30px; + font-size: 1.2em; +} + +table { + margin: 10px 0 0 20px; + width: 95%; + border-collapse: collapse; +} +table tr td { + font-size: 1.1em; +} +table tr td.nowrap { + white-space: nowrap; +} +/* +table tr.parity0:hover, +table tr.parity1:hover { + background: #D5E1E6; +} +*/ +table tr.parity0 { + background: #F1F6F7; +} +table tr.parity1 { + background: #FFFFFF; +} +table tr td { + padding: 5px 5px; +} +table.annotated tr td { + padding: 0px 5px; +} + +span.logtags span { + padding: 2px 6px; + font-weight: normal; + font-size: 11px; + border: 1px solid; + background-color: #ffaaff; + border-color: #ffccff #ff00ee #ff00ee #ffccff; +} +span.logtags span.tagtag { + background-color: #ffffaa; + border-color: #ffffcc #ffee00 #ffee00 #ffffcc; +} +span.logtags span.branchtag { + background-color: #aaffaa; + border-color: #ccffcc #00cc33 #00cc33 #ccffcc; +} +span.logtags span.inbranchtag { + background-color: #d5dde6; + border-color: #e3ecf4 #9398f4 #9398f4 #e3ecf4; +} + +div.diff pre { + margin: 10px 0 0 0; +} +div.diff pre span { + font-family: monospace; + white-space: pre; + font-size: 1.2em; + padding: 3px 0; +} +td.source { + white-space: pre; + font-family: monospace; + margin: 10px 30px 0; + font-size: 1.2em; + font-family: monospace; +} + div.source div.parity0, + div.source div.parity1 { + padding: 1px; + font-size: 1.2em; + } + div.source div.parity0 { + background: #F1F6F7; + } + div.source div.parity1 { + background: #FFFFFF; + } +div.parity0:hover, +div.parity1:hover { + background: #D5E1E6; +} +.linenr { + color: #999; + text-align: right; +} +.lineno { + text-align: right; +} +.lineno a { + color: #999; +} +td.linenr { + width: 60px; +} + +div#powered-by { + position: absolute; + width: 75px; + top: 15px; + right: 20px; + font-size: 1.2em; +} +div#powered-by a { + color: #EEE; + text-decoration: none; +} +div#powered-by a:hover { + text-decoration: underline; +} +/* +div#monoblue-corner-top-left { + position: absolute; + top: 0; + left: 0; + width: 10px; + height: 10px; + background: url(./monoblue-corner.png) top left no-repeat !important; + background: none; +} +div#monoblue-corner-top-right { + position: absolute; + top: 0; + right: 0; + width: 10px; + height: 10px; + background: url(./monoblue-corner.png) top right no-repeat !important; + background: none; +} +div#monoblue-corner-bottom-left { + position: absolute; + bottom: 0; + left: 0; + width: 10px; + height: 10px; + background: url(./monoblue-corner.png) bottom left no-repeat !important; + background: none; +} +div#monoblue-corner-bottom-right { + position: absolute; + bottom: 0; + right: 0; + width: 10px; + height: 10px; + background: url(./monoblue-corner.png) bottom right no-repeat !important; + background: none; +} +*/ +/** end of common settings **/ + +/** summary **/ +dl.overview { + margin: 0 0 0 30px; + font-size: 1.1em; + overflow: hidden; +} + dl.overview dt, + dl.overview dd { + margin: 5px 0; + float: left; + } + dl.overview dt { + clear: left; + font-weight: bold; + width: 150px; + } +/** end of summary **/ + +/** chagelog **/ +h3.changelog { + margin: 20px 0 5px 30px; + padding: 0 0 2px; + font-size: 1.4em; + border-bottom: dotted 1px #D5E1E6; +} +ul.changelog-entry { + margin: 0 0 10px 30px; + list-style-type: none; + position: relative; +} +ul.changelog-entry li span.revdate { + font-size: 1.1em; +} +ul.changelog-entry li.age { + position: absolute; + top: -25px; + right: 10px; + font-size: 1.4em; + color: #CCC; + font-weight: bold; + font-style: italic; +} +ul.changelog-entry li span.name { + font-size: 1.2em; + font-weight: bold; +} +ul.changelog-entry li.description { + margin: 10px 0 0; + font-size: 1.1em; +} +/** end of changelog **/ + +/** file **/ +p.files { + margin: 0 0 0 20px; + font-size: 2.0em; + font-weight: bold; +} +/** end of file **/ + +/** changeset **/ +h3.changeset { + margin: 20px 0 5px 20px; + padding: 0 0 2px; + font-size: 1.6em; + border-bottom: dotted 1px #D5E1E6; +} +p.changeset-age { + position: relative; +} +p.changeset-age span { + position: absolute; + top: -25px; + right: 10px; + font-size: 1.4em; + color: #CCC; + font-weight: bold; + font-style: italic; +} +p.description { + margin: 10px 30px 0 30px; + padding: 10px; + border: solid 1px #CCC; + font-size: 1.2em; +} +/** end of changeset **/ + +/** canvas **/ +div#wrapper { + position: relative; + font-size: 1.2em; +} + +canvas { + position: absolute; + z-index: 5; + top: -0.7em; +} + +ul#nodebgs li.parity0 { + background: #F1F6F7; +} + +ul#nodebgs li.parity1 { + background: #FFFFFF; +} + +ul#graphnodes { + position: absolute; + z-index: 10; + top: 7px; + list-style: none inside none; +} + +ul#nodebgs { + list-style: none inside none; +} + +ul#graphnodes li, ul#nodebgs li { + height: 39px; +} + +ul#graphnodes li .info { + display: block; + position: relative; +} +/** end of canvas **/
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/static/style-paper.css Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,254 @@ +body { + margin: 0; + padding: 0; + background: white; + font-family: sans-serif; +} + +.container { + padding-left: 115px; +} + +.main { + position: relative; + background: white; + padding: 2em 2em 2em 0; +} + +#.main { + width: 98%; +} + +.overflow { + width: 100%; + overflow: auto; +} + +.menu { + width: 90px; + margin: 0; + font-size: 80%; + text-align: left; + position: absolute; + top: 20px; + left: 20px; + right: auto; +} + +.menu ul { + list-style: none; + padding: 0; + margin: 10px 0 0 0; + border-left: 2px solid #999; +} + +.menu li { + margin-bottom: 3px; + padding: 2px 4px; + background: white; + color: black; + font-weight: normal; +} + +.menu li.active { + font-weight: bold; +} + +.menu img { + width: 75px; + height: 90px; + border: 0; +} + +.menu a { color: black; display: block; } + +.search { + position: absolute; + top: .7em; + right: 2em; +} + +form.search div#hint { + display: none; + position: absolute; + top: 40px; + right: 0px; + width: 190px; + padding: 5px; + background: #ffc; + font-size: 70%; + border: 1px solid yellow; + -moz-border-radius: 5px; /* this works only in camino/firefox */ + -webkit-border-radius: 5px; /* this is just for Safari */ +} + +form.search:hover div#hint { display: block; } + +a { text-decoration:none; } +.age { white-space:nowrap; } +.date { white-space:nowrap; } +.indexlinks { white-space:nowrap; } +.parity0 { background-color: #f0f0f0; } +.parity1 { background-color: white; } +.plusline { color: green; } +.minusline { color: #dc143c; } /* crimson */ +.atline { color: purple; } + +.navigate { + text-align: right; + font-size: 60%; + margin: 1em 0; +} + +.tag { + color: #999; + font-size: 70%; + font-weight: normal; + margin-left: .5em; + vertical-align: baseline; +} + +.branchhead { + color: #000; + font-size: 80%; + font-weight: normal; + margin-left: .5em; + vertical-align: baseline; +} + +ul#graphnodes .branchhead { + font-size: 75%; +} + +.branchname { + color: #000; + font-size: 60%; + font-weight: normal; + margin-left: .5em; + vertical-align: baseline; +} + +h3 .branchname { + font-size: 80%; +} + +/* Common */ +pre { margin: 0; } + +h2 { font-size: 120%; border-bottom: 1px solid #999; } +h2 a { color: #000; } +h3 { + margin-top: -.7em; + font-size: 100%; +} + +/* log and tags tables */ +.bigtable { + border-bottom: 1px solid #999; + border-collapse: collapse; + font-size: 90%; + width: 100%; + font-weight: normal; + text-align: left; +} + +.bigtable td { + vertical-align: top; +} + +.bigtable th { + padding: 1px 4px; + border-bottom: 1px solid #999; +} +.bigtable tr { border: none; } +.bigtable .age { width: 7em; } +.bigtable .author { width: 12em; } +.bigtable .description { } +.bigtable .node { width: 5em; font-family: monospace;} +.bigtable .permissions { width: 8em; text-align: left;} +.bigtable .size { width: 5em; text-align: right; } +.bigtable .annotate { text-align: right; } +.bigtable td.annotate { font-size: smaller; } +.bigtable td.source { font-size: inherit; } + +.source, .sourcefirst, .sourcelast { + font-family: monospace; + white-space: pre; + padding: 1px 4px; + font-size: 90%; +} +.sourcefirst { border-bottom: 1px solid #999; font-weight: bold; } +.sourcelast { border-top: 1px solid #999; } +.source a { color: #999; font-size: smaller; font-family: monospace;} +.bottomline { border-bottom: 1px solid #999; } + +.fileline { font-family: monospace; } +.fileline img { border: 0; } + +.tagEntry .closed { color: #99f; } + +/* Changeset entry */ +#changesetEntry { + border-collapse: collapse; + font-size: 90%; + width: 100%; + margin-bottom: 1em; +} + +#changesetEntry th { + padding: 1px 4px; + width: 4em; + text-align: right; + font-weight: normal; + color: #999; + margin-right: .5em; + vertical-align: top; +} + +div.description { + border-left: 2px solid #999; + margin: 1em 0 1em 0; + padding: .3em; +} + +/* Graph */ +div#wrapper { + position: relative; + border-top: 1px solid black; + border-bottom: 1px solid black; + margin: 0; + padding: 0; +} + +canvas { + position: absolute; + z-index: 5; + top: -0.7em; + margin: 0; +} + +ul#graphnodes { + position: absolute; + z-index: 10; + top: -1.0em; + list-style: none inside none; + padding: 0; +} + +ul#nodebgs { + list-style: none inside none; + padding: 0; + margin: 0; + top: -0.7em; +} + +ul#graphnodes li, ul#nodebgs li { + height: 39px; +} + +ul#graphnodes li .info { + display: block; + font-size: 70%; + position: relative; + top: -3px; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/static/style.css Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,105 @@ +a { text-decoration:none; } +.age { white-space:nowrap; } +.date { white-space:nowrap; } +.indexlinks { white-space:nowrap; } +.parity0 { background-color: #ddd; } +.parity1 { background-color: #eee; } +.lineno { width: 60px; color: #aaa; font-size: smaller; + text-align: right; } +.plusline { color: green; } +.minusline { color: red; } +.atline { color: purple; } +.annotate { font-size: smaller; text-align: right; padding-right: 1em; } +.buttons a { + background-color: #666; + padding: 2pt; + color: white; + font-family: sans; + font-weight: bold; +} +.navigate a { + background-color: #ccc; + padding: 2pt; + font-family: sans; + color: black; +} + +.metatag { + background-color: #888; + color: white; + text-align: right; +} + +/* Common */ +pre { margin: 0; } + +.logo { + float: right; + clear: right; +} + +/* Changelog/Filelog entries */ +.logEntry { width: 100%; } +.logEntry .age { width: 15%; } +.logEntry th { font-weight: normal; text-align: right; vertical-align: top; } +.logEntry th.age, .logEntry th.firstline { font-weight: bold; } +.logEntry th.firstline { text-align: left; width: inherit; } + +/* Shortlog entries */ +.slogEntry { width: 100%; } +.slogEntry .age { width: 8em; } +.slogEntry td { font-weight: normal; text-align: left; vertical-align: top; } +.slogEntry td.author { width: 15em; } + +/* Tag entries */ +#tagEntries { list-style: none; margin: 0; padding: 0; } +#tagEntries .tagEntry { list-style: none; margin: 0; padding: 0; } + +/* Changeset entry */ +#changesetEntry { } +#changesetEntry th { font-weight: normal; background-color: #888; color: #fff; text-align: right; } +#changesetEntry th.files, #changesetEntry th.description { vertical-align: top; } + +/* File diff view */ +#filediffEntry { } +#filediffEntry th { font-weight: normal; background-color: #888; color: #fff; text-align: right; } + +/* Graph */ +div#wrapper { + position: relative; + margin: 0; + padding: 0; +} + +canvas { + position: absolute; + z-index: 5; + top: -0.6em; + margin: 0; +} + +ul#nodebgs { + list-style: none inside none; + padding: 0; + margin: 0; + top: -0.7em; +} + +ul#graphnodes li, ul#nodebgs li { + height: 39px; +} + +ul#graphnodes { + position: absolute; + z-index: 10; + top: -0.85em; + list-style: none inside none; + padding: 0; +} + +ul#graphnodes li .info { + display: block; + font-size: 70%; + position: relative; + top: -1px; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/templates/template-vars.txt Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,37 @@ +repo the name of the repo +rev a changeset.manifest revision +node a changeset node +changesets total number of changesets +file a filename +filerev a file revision +filerevs total number of file revisions +up the directory of the relevant file +path a path in the manifest, starting with "/" +basename a short pathname +date a date string +age age in hours, days, etc +line a line of text (escaped) +desc a description (escaped, with breaks) +shortdesc a short description (escaped) +author a name or email addressv(obfuscated) +parent a list of the parent +child a list of the children +tags a list of tag + +header the global page header +footer the global page footer + +files a list of file links +file_copies a list of pairs of name, source filenames +dirs a set of directory links +diff a diff of one or more files +annotate an annotated file +entries the entries relevant to the page + +Templates and commands: + changelog(rev) - a page for browsing changesets + naventry - a link for jumping to a changeset number + filenodelink - jump to file diff + fileellipses - printed after maxfiles + changelogentry - an entry in the log + manifest - browse a manifest as a directory tree
--- a/mercurial/ui.py Tue Dec 08 23:23:59 2009 +0100 +++ b/mercurial/ui.py Tue Dec 08 23:36:06 2009 +0100 @@ -29,8 +29,11 @@ self._ocfg = src._ocfg.copy() self._trustusers = src._trustusers.copy() self._trustgroups = src._trustgroups.copy() + self.environ = src.environ self.fixconfig() else: + # shared read-only environment + self.environ = os.environ # we always trust global config files for f in util.rcpath(): self.readconfig(f, trust=True)
--- a/setup.py Tue Dec 08 23:23:59 2009 +0100 +++ b/setup.py Tue Dec 08 23:36:06 2009 +0100 @@ -44,7 +44,7 @@ # simplified version of distutils.ccompiler.CCompiler.has_function # that actually removes its temporary files. -def has_function(cc, funcname): +def hasfunction(cc, funcname): tmpdir = tempfile.mkdtemp(prefix='hg-install-') devnull = oldstderr = None try: @@ -165,13 +165,7 @@ except ImportError: version = 'unknown' -class install_package_data(install_data): - def finalize_options(self): - self.set_undefined_options('install', - ('install_lib', 'install_dir')) - install_data.finalize_options(self) - -class build_mo(build): +class hgbuildmo(build): description = "build translations (.mo files)" @@ -193,22 +187,23 @@ pofile = join(podir, po) modir = join('locale', po[:-3], 'LC_MESSAGES') mofile = join(modir, 'hg.mo') - cmd = ['msgfmt', '-v', '-o', mofile, pofile] + mobuildfile = join('mercurial', mofile) + cmd = ['msgfmt', '-v', '-o', mobuildfile, pofile] if sys.platform != 'sunos5': # msgfmt on Solaris does not know about -c cmd.append('-c') - self.mkpath(modir) - self.make_file([pofile], mofile, spawn, (cmd,)) - self.distribution.data_files.append((join('mercurial', modir), - [mofile])) + self.mkpath(join('mercurial', modir)) + self.make_file([pofile], mobuildfile, spawn, (cmd,)) -build.sub_commands.append(('build_mo', None)) +# Insert hgbuildmo first so that files in mercurial/locale/ are found +# when build_py is run next. +build.sub_commands.insert(0, ('build_mo', None)) Distribution.pure = 0 Distribution.global_options.append(('pure', None, "use pure (slow) Python " "code instead of C extensions")) -class hg_build_py(build_py): +class hgbuildpy(build_py): def finalize_options(self): build_py.finalize_options(self) @@ -230,11 +225,10 @@ else: yield module -cmdclass = {'install_data': install_package_data, - 'build_mo': build_mo, - 'build_py': hg_build_py} +cmdclass = {'build_mo': hgbuildmo, + 'build_py': hgbuildpy} -ext_modules=[ +extmodules = [ Extension('mercurial.base85', ['mercurial/base85.c']), Extension('mercurial.bdiff', ['mercurial/bdiff.c']), Extension('mercurial.diffhelpers', ['mercurial/diffhelpers.c']), @@ -250,18 +244,35 @@ # The inotify extension is only usable with Linux 2.6 kernels. # You also need a reasonably recent C library. cc = new_compiler() - if has_function(cc, 'inotify_add_watch'): - ext_modules.append(Extension('hgext.inotify.linux._inotify', + if hasfunction(cc, 'inotify_add_watch'): + extmodules.append(Extension('hgext.inotify.linux._inotify', ['hgext/inotify/linux/_inotify.c'])) packages.extend(['hgext.inotify', 'hgext.inotify.linux']) -datafiles = [] -for root in ('templates', 'i18n', 'help'): - for dir, dirs, files in os.walk(root): - dirs[:] = [x for x in dirs if not x.startswith('.')] - files = [x for x in files if not x.startswith('.')] - datafiles.append((os.path.join('mercurial', dir), - [os.path.join(dir, file_) for file_ in files])) +packagedata = {'mercurial': ['locale/*/LC_MESSAGES/hg.mo', + 'help/*.txt']} + +def ordinarypath(p): + return p and p[0] != '.' and p[-1] != '~' + +for root in ('templates', ): + for curdir, dirs, files in os.walk(os.path.join('mercurial', root)): + curdir = curdir.split(os.sep, 1)[1] + dirs[:] = filter(ordinarypath, dirs) + for f in filter(ordinarypath, files): + f = os.path.join(curdir, f) + packagedata['mercurial'].append(f) + +datafiles = [ + ('share/bash_completion.d', ['contrib/bash/hg']), + ('share/zsh/site-functions', ['contrib/zsh/_hg']), + ('share/mercurial/www', ['hgweb.cgi', + 'hgwebdir.cgi', + 'contrib/hgwebdir.fcgi', + 'contrib/hgwebdir.wsgi']), + ('share/mercurial/examples', ['contrib/sample.hgrc', + 'contrib/mergetools.hgrc']), +] setup(name='mercurial', version=version, @@ -272,8 +283,9 @@ license='GNU GPL', scripts=scripts, packages=packages, - ext_modules=ext_modules, + ext_modules=extmodules, data_files=datafiles, + package_data=packagedata, cmdclass=cmdclass, options=dict(py2exe=dict(packages=['hgext', 'email']), bdist_mpkg=dict(zipdist=True,
--- a/templates/atom/changelog.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ -{header} - <!-- Changelog --> - <id>{urlbase}{url}</id> - <link rel="self" href="{urlbase}{url}atom-log"/> - <link rel="alternate" href="{urlbase}{url}"/> - <title>{repo|escape} Changelog</title> - {latestentry%feedupdated} - -{entries%changelogentry} -</feed>
--- a/templates/atom/changelogentry.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,16 +0,0 @@ - <entry> - <title>{desc|strip|firstline|strip|escape|nonempty}</title> - <id>{urlbase}{url}#changeset-{node}</id> - <link href="{urlbase}{url}rev/{node|short}"/> - <author> - <name>{author|person|escape}</name> - <email>{author|email|obfuscate}</email> - </author> - <updated>{date|rfc3339date}</updated> - <published>{date|rfc3339date}</published> - <content type="xhtml"> - <div xmlns="http://www.w3.org/1999/xhtml"> - <pre xml:space="preserve">{desc|escape|nonempty}</pre> - </div> - </content> - </entry>
--- a/templates/atom/error.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,17 +0,0 @@ -{header} - <!-- Error --> - <id>{urlbase}{url}</id> - <link rel="self" href="{urlbase}{url}atom-log"/> - <link rel="alternate" href="{urlbase}{url}"/> - <title>Error</title> - <updated>1970-01-01T00:00:00+00:00</updated> - <entry> - <title>Error</title> - <id>http://mercurial.selenic.com/#error</id> - <author> - <name>mercurial</name> - </author> - <updated>1970-01-01T00:00:00+00:00</updated> - <content type="text">{error|escape}</content> - </entry> -</feed>
--- a/templates/atom/filelog.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,8 +0,0 @@ -{header} - <id>{urlbase}{url}atom-log/tip/{file|escape}</id> - <link rel="self" href="{urlbase}{url}atom-log/tip/{file|urlescape}"/> - <title>{repo|escape}: {file|escape} history</title> - {latestentry%feedupdated} - -{entries%changelogentry} -</feed>
--- a/templates/atom/header.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -<?xml version="1.0" encoding="{encoding}"?> -<feed xmlns="http://www.w3.org/2005/Atom"> \ No newline at end of file
--- a/templates/atom/map Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,11 +0,0 @@ -default = 'changelog' -feedupdated = '<updated>{date|rfc3339date}</updated>' -mimetype = 'application/atom+xml; charset={encoding}' -header = header.tmpl -changelog = changelog.tmpl -changelogentry = changelogentry.tmpl -filelog = filelog.tmpl -filelogentry = filelogentry.tmpl -tags = tags.tmpl -tagentry = tagentry.tmpl -error = error.tmpl
--- a/templates/atom/tagentry.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,8 +0,0 @@ - <entry> - <title>{tag|escape}</title> - <link rel="alternate" href="{urlbase}{url}rev/{node|short}"/> - <id>{urlbase}{url}#tag-{node}</id> - <updated>{date|rfc3339date}</updated> - <published>{date|rfc3339date}</published> - <content type="text">{tag|strip|escape}</content> - </entry>
--- a/templates/atom/tags.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,11 +0,0 @@ -{header} - <id>{urlbase}{url}</id> - <link rel="self" href="{urlbase}{url}atom-tags"/> - <link rel="alternate" href="{urlbase}{url}tags"/> - <title>{repo|escape}: tags</title> - <summary>{repo|escape} tag history</summary> - <author><name>Mercurial SCM</name></author> - {latestentry%feedupdated} - -{entriesnotip%tagentry} -</feed>
--- a/templates/coal/header.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,6 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US"> -<head> -<link rel="icon" href="{staticurl}hgicon.png" type="image/png" /> -<meta name="robots" content="index, nofollow" /> -<link rel="stylesheet" href="{staticurl}style-coal.css" type="text/css" />
--- a/templates/coal/map Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,191 +0,0 @@ -default = 'shortlog' - -mimetype = 'text/html; charset={encoding}' -header = header.tmpl -footer = ../paper/footer.tmpl -search = ../paper/search.tmpl - -changelog = ../paper/shortlog.tmpl -shortlog = ../paper/shortlog.tmpl -shortlogentry = ../paper/shortlogentry.tmpl -graph = ../paper/graph.tmpl - -naventry = '<a href="{url}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> ' -navshortentry = '<a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> ' -navgraphentry = '<a href="{url}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> ' -filenaventry = '<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a> ' -filedifflink = '<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> ' -filenodelink = '<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> ' -filenolink = '{file|escape} ' -fileellipses = '...' -changelogentry = ../paper/shortlogentry.tmpl -searchentry = ../paper/shortlogentry.tmpl -changeset = ../paper/changeset.tmpl -manifest = ../paper/manifest.tmpl - -direntry = ' - <tr class="fileline parity{parity}"> - <td class="name"> - <a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}"> - <img src="{staticurl}coal-folder.png" alt="dir."/> {basename|escape}/ - </a> - <a href="{url}file/{node|short}{path|urlescape}/{emptydirs|urlescape}{sessionvars%urlparameter}"> - {emptydirs|escape} - </a> - </td> - <td class="size"></td> - <td class="permissions">drwxr-xr-x</td> - </tr>' - -fileentry = ' - <tr class="fileline parity{parity}"> - <td class="filename"> - <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}"> - <img src="{staticurl}coal-file.png" alt="file"/> {basename|escape} - </a> - </td> - <td class="size">{size}</td> - <td class="permissions">{permissions|permissions}</td> - </tr>' - -filerevision = ../paper/filerevision.tmpl -fileannotate = ../paper/fileannotate.tmpl -filediff = ../paper/filediff.tmpl -filelog = ../paper/filelog.tmpl -fileline = ' - <div class="parity{parity} source"><a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</div>' -filelogentry = ../paper/filelogentry.tmpl - -annotateline = ' - <tr class="parity{parity}"> - <td class="annotate"> - <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#{targetline}" - title="{node|short}: {desc|escape|firstline}">{author|user}@{rev}</a> - </td> - <td class="source"><a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</td> - </tr>' - -diffblock = '<div class="source bottomline parity{parity}"><pre>{lines}</pre></div>' -difflineplus = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span class="plusline">{line|escape}</span>' -difflineminus = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span class="minusline">{line|escape}</span>' -difflineat = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span class="atline">{line|escape}</span>' -diffline = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}' - -changelogparent = ' - <tr> - <th class="parent">parent {rev}:</th> - <td class="parent"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td> - </tr>' - -changesetparent = '<a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> ' - -filerevparent = '<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{rename%filerename}{node|short}</a> ' -filerevchild = '<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a> ' - -filerename = '{file|escape}@' -filelogrename = ' - <tr> - <th>base:</th> - <td> - <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}"> - {file|escape}@{node|short} - </a> - </td> - </tr>' -fileannotateparent = ' - <tr> - <td class="metatag">parent:</td> - <td> - <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}"> - {rename%filerename}{node|short} - </a> - </td> - </tr>' -changesetchild = ' <a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>' -changelogchild = ' - <tr> - <th class="child">child</th> - <td class="child"> - <a href="{url}rev/{node|short}{sessionvars%urlparameter}"> - {node|short} - </a> - </td> - </tr>' -fileannotatechild = ' - <tr> - <td class="metatag">child:</td> - <td> - <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}"> - {node|short} - </a> - </td> - </tr>' -tags = ../paper/tags.tmpl -tagentry = ' - <tr class="tagEntry parity{parity}"> - <td> - <a href="{url}rev/{node|short}{sessionvars%urlparameter}"> - {tag|escape} - </a> - </td> - <td class="node"> - {node|short} - </td> - </tr>' -branches = ../paper/branches.tmpl -branchentry = ' - <tr class="tagEntry parity{parity}"> - <td> - <a href="{url}shortlog/{node|short}{sessionvars%urlparameter}" class="{status}"> - {branch|escape} - </a> - </td> - <td class="node"> - {node|short} - </td> - </tr>' -changelogtag = '<span class="tag">{name|escape}</span> ' -changesettag = '<span class="tag">{tag|escape}</span> ' -changelogbranchhead = '<span class="branchhead">{name|escape}</span> ' -changelogbranchname = '<span class="branchname">{name|escape}</span> ' - -filediffparent = ' - <tr> - <th class="parent">parent {rev}:</th> - <td class="parent"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td> - </tr>' -filelogparent = ' - <tr> - <th>parent {rev}:</th> - <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td> - </tr>' -filediffchild = ' - <tr> - <th class="child">child {rev}:</th> - <td class="child"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> - </td> - </tr>' -filelogchild = ' - <tr> - <th>child {rev}:</th> - <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td> - </tr>' - -indexentry = ' - <tr class="parity{parity}"> - <td><a href="{url}{sessionvars%urlparameter}">{name|escape}</a></td> - <td>{description}</td> - <td>{contact|obfuscate}</td> - <td class="age">{lastchange|age} ago</td> - <td class="indexlinks">{archives%indexarchiveentry}</td> - </tr>\n' -indexarchiveentry = '<a href="{url}archive/{node|short}{extension|urlescape}"> ↓{type|escape}</a>' -index = ../paper/index.tmpl -archiveentry = ' - <li> - <a href="{url}archive/{node|short}{extension|urlescape}">{type|escape}</a> - </li>' -notfound = ../paper/notfound.tmpl -error = ../paper/error.tmpl -urlparameter = '{separator}{name}={value|urlescape}' -hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'
--- a/templates/gitweb/branches.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,30 +0,0 @@ -{header} -<title>{repo|escape}: Branches</title> -<link rel="alternate" type="application/atom+xml" - href="{url}atom-tags" title="Atom feed for {repo|escape}"/> -<link rel="alternate" type="application/rss+xml" - href="{url}rss-tags" title="RSS feed for {repo|escape}"/> -</head> -<body> - -<div class="page_header"> -<a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / branches -</div> - -<div class="page_nav"> -<a href="{url}summary{sessionvars%urlparameter}">summary</a> | -<a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> | -<a href="{url}log{sessionvars%urlparameter}">changelog</a> | -<a href="{url}graph{sessionvars%urlparameter}">graph</a> | -<a href="{url}tags{sessionvars%urlparameter}">tags</a> | -branches | -<a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a> -<br/> -</div> - -<div class="title"> </div> -<table cellspacing="0"> -{entries%branchentry} -</table> - -{footer}
--- a/templates/gitweb/changelog.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ -{header} -<title>{repo|escape}: Changelog</title> -<link rel="alternate" type="application/atom+xml" - href="{url}atom-log" title="Atom feed for {repo|escape}"/> -<link rel="alternate" type="application/rss+xml" - href="{url}rss-log" title="RSS feed for {repo|escape}"/> -</head> -<body> - -<div class="page_header"> -<a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / changelog -</div> - -<form action="{url}log"> -{sessionvars%hiddenformentry} -<div class="search"> -<input type="text" name="rev" /> -</div> -</form> - -<div class="page_nav"> -<a href="{url}summary{sessionvars%urlparameter}">summary</a> | -<a href="{url}shortlog/{rev}{sessionvars%urlparameter}">shortlog</a> | -changelog | -<a href="{url}graph{sessionvars%urlparameter}">graph</a> | -<a href="{url}tags{sessionvars%urlparameter}">tags</a> | -<a href="{url}branches{sessionvars%urlparameter}">branches</a> | -<a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>{archives%archiveentry} -<br/> -{changenav%naventry}<br/> -</div> - -{entries%changelogentry} - -<div class="page_nav"> -{changenav%naventry}<br/> -</div> - -{footer}
--- a/templates/gitweb/changelogentry.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,14 +0,0 @@ -<div> -<a class="title" href="{url}rev/{node|short}{sessionvars%urlparameter}"><span class="age">{date|age}</span>{desc|strip|firstline|escape|nonempty}<span class="logtags"> {inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}</span></a> -</div> -<div class="title_text"> -<div class="log_link"> -<a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a><br/> -</div> -<i>{author|obfuscate} [{date|rfc822date}] rev {rev}</i><br/> -</div> -<div class="log_body"> -{desc|strip|escape|addbreaks|nonempty} -<br/> -<br/> -</div>
--- a/templates/gitweb/changeset.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,50 +0,0 @@ -{header} -<title>{repo|escape}: changeset {rev}:{node|short}</title> -<link rel="alternate" type="application/atom+xml" - href="{url}atom-log" title="Atom feed for {repo|escape}"/> -<link rel="alternate" type="application/rss+xml" - href="{url}rss-log" title="RSS feed for {repo|escape}"/> -</head> -<body> - -<div class="page_header"> -<a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / changeset -</div> - -<div class="page_nav"> -<a href="{url}summary{sessionvars%urlparameter}">summary</a> | -<a href="{url}shortlog/{rev}{sessionvars%urlparameter}">shortlog</a> | -<a href="{url}log/{rev}{sessionvars%urlparameter}">changelog</a> | -<a href="{url}graph{sessionvars%urlparameter}">graph</a> | -<a href="{url}tags{sessionvars%urlparameter}">tags</a> | -<a href="{url}branches{sessionvars%urlparameter}">branches</a> | -<a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a> | -changeset | -<a href="{url}raw-rev/{node|short}">raw</a> {archives%archiveentry}<br/> -</div> - -<div> -<a class="title" href="{url}raw-rev/{node|short}">{desc|strip|escape|firstline|nonempty} <span class="logtags">{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}</span></a> -</div> -<div class="title_text"> -<table cellspacing="0"> -<tr><td>author</td><td>{author|obfuscate}</td></tr> -<tr><td></td><td>{date|date} ({date|age})</td></tr> -{branch%changesetbranch} -<tr><td>changeset {rev}</td><td style="font-family:monospace">{node|short}</td></tr> -{parent%changesetparent} -{child%changesetchild} -</table></div> - -<div class="page_body"> -{desc|strip|escape|addbreaks|nonempty} -</div> -<div class="list_head"></div> -<div class="title_text"> -<table cellspacing="0"> -{files} -</table></div> - -<div class="page_body">{diff}</div> - -{footer}
--- a/templates/gitweb/error.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,25 +0,0 @@ -{header} -<title>{repo|escape}: Error</title> -<link rel="alternate" type="application/atom+xml" - href="{url}atom-log" title="Atom feed for {repo|escape}"/> -<link rel="alternate" type="application/rss+xml" - href="{url}rss-log" title="RSS feed for {repo|escape}"/> -</head> -<body> - -<div class="page_header"> -<a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / error -</div> - -<div class="page_nav"> -<a href="{url}summary{sessionvars%urlparameter}">summary</a> | <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> | <a href="{url}log{sessionvars%urlparameter}">changelog</a> | <a href="{url}tags{sessionvars%urlparameter}">tags</a> | <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a><br/> -</div> - -<div class="page_body"> -<br/> -<i>An error occurred while processing your request</i><br/> -<br/> -{error|escape} -</div> - -{footer}
--- a/templates/gitweb/fileannotate.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,61 +0,0 @@ -{header} -<title>{repo|escape}: {file|escape}@{node|short} (annotated)</title> -<link rel="alternate" type="application/atom+xml" - href="{url}atom-log" title="Atom feed for {repo|escape}"/> -<link rel="alternate" type="application/rss+xml" - href="{url}rss-log" title="RSS feed for {repo|escape}"/> -</head> -<body> - -<div class="page_header"> -<a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / annotate -</div> - -<div class="page_nav"> -<a href="{url}summary{sessionvars%urlparameter}">summary</a> | -<a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> | -<a href="{url}log{sessionvars%urlparameter}">changelog</a> | -<a href="{url}graph{sessionvars%urlparameter}">graph</a> | -<a href="{url}tags{sessionvars%urlparameter}">tags</a> | -<a href="{url}branches{sessionvars%urlparameter}">branches</a> | -<a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a> | -<a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> | -<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> | -<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> | -annotate | -<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> | -<a href="{url}raw-annotate/{node|short}/{file|urlescape}">raw</a><br/> -</div> - -<div class="title">{file|escape}</div> - -<div class="title_text"> -<table cellspacing="0"> -<tr> - <td>author</td> - <td>{author|obfuscate}</td></tr> -<tr> - <td></td> - <td>{date|date} ({date|age})</td></tr> -{branch%filerevbranch} -<tr> - <td>changeset {rev}</td> - <td style="font-family:monospace"><a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td></tr> -{parent%fileannotateparent} -{child%fileannotatechild} -<tr> - <td>permissions</td> - <td style="font-family:monospace">{permissions|permissions}</td></tr> -</table> -</div> - -<div class="page_path"> -{desc|strip|escape|addbreaks|nonempty} -</div> -<div class="page_body"> -<table> -{annotate%annotateline} -</table> -</div> - -{footer}
--- a/templates/gitweb/filediff.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ -{header} -<title>{repo|escape}: diff {file|escape}</title> -<link rel="alternate" type="application/atom+xml" - href="{url}atom-log" title="Atom feed for {repo|escape}"/> -<link rel="alternate" type="application/rss+xml" - href="{url}rss-log" title="RSS feed for {repo|escape}"/> -</head> -<body> - -<div class="page_header"> -<a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / diff -</div> - -<div class="page_nav"> -<a href="{url}summary{sessionvars%urlparameter}">summary</a> | -<a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> | -<a href="{url}log{sessionvars%urlparameter}">changelog</a> | -<a href="{url}graph{sessionvars%urlparameter}">graph</a> | -<a href="{url}tags{sessionvars%urlparameter}">tags</a> | -<a href="{url}branches{sessionvars%urlparameter}">branches</a> | -<a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a> | -<a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> | -<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> | -<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> | -<a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> | -diff | -<a href="{url}raw-diff/{node|short}/{file|urlescape}">raw</a><br/> -</div> - -<div class="title">{file|escape}</div> - -<table> -{branch%filerevbranch} -<tr> - <td>changeset {rev}</td> - <td style="font-family:monospace"><a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td></tr> -{parent%filediffparent} -{child%filediffchild} -</table> - -<div class="list_head"></div> - -<div class="page_body"> -{diff} -</div> - -{footer}
--- a/templates/gitweb/filelog.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,40 +0,0 @@ -{header} -<title>{repo|escape}: File revisions</title> -<link rel="alternate" type="application/atom+xml" - href="{url}atom-log" title="Atom feed for {repo|escape}"/> -<link rel="alternate" type="application/rss+xml" - href="{url}rss-log" title="RSS feed for {repo|escape}"/> -</head> -<body> - -<div class="page_header"> -<a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / file revisions -</div> - -<div class="page_nav"> -<a href="{url}summary{sessionvars%urlparameter}">summary</a> | -<a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> | -<a href="{url}log{sessionvars%urlparameter}">changelog</a> | -<a href="{url}graph{sessionvars%urlparameter}">graph</a> | -<a href="{url}tags{sessionvars%urlparameter}">tags</a> | -<a href="{url}branches{sessionvars%urlparameter}">branches</a> | -<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> | -revisions | -<a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> | -<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> | -<a href="{url}rss-log/{node|short}/{file|urlescape}">rss</a> -<br/> -{nav%filenaventry} -</div> - -<div class="title" >{file|urlescape}</div> - -<table> -{entries%filelogentry} -</table> - -<div class="page_nav"> -{nav%filenaventry} -</div> - -{footer}
--- a/templates/gitweb/filerevision.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,60 +0,0 @@ -{header} -<title>{repo|escape}: {file|escape}@{node|short}</title> -<link rel="alternate" type="application/atom+xml" - href="{url}atom-log" title="Atom feed for {repo|escape}"/> -<link rel="alternate" type="application/rss+xml" - href="{url}rss-log" title="RSS feed for {repo|escape}"/> -</head> -<body> - -<div class="page_header"> -<a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / file revision -</div> - -<div class="page_nav"> -<a href="{url}summary{sessionvars%urlparameter}">summary</a> | -<a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> | -<a href="{url}log{sessionvars%urlparameter}">changelog</a> | -<a href="{url}graph{sessionvars%urlparameter}">graph</a> | -<a href="{url}tags{sessionvars%urlparameter}">tags</a> | -<a href="{url}branches{sessionvars%urlparameter}">branches</a> | -<a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a> | -<a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> | -file | -<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> | -<a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> | -<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> | -<a href="{url}raw-file/{node|short}/{file|urlescape}">raw</a><br/> -</div> - -<div class="title">{file|escape}</div> - -<div class="title_text"> -<table cellspacing="0"> -<tr> - <td>author</td> - <td>{author|obfuscate}</td></tr> -<tr> - <td></td> - <td>{date|date} ({date|age})</td></tr> -{branch%filerevbranch} -<tr> - <td>changeset {rev}</td> - <td style="font-family:monospace"><a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td></tr> -{parent%filerevparent} -{child%filerevchild} -<tr> - <td>permissions</td> - <td style="font-family:monospace">{permissions|permissions}</td></tr> -</table> -</div> - -<div class="page_path"> -{desc|strip|escape|addbreaks|nonempty} -</div> - -<div class="page_body"> -{text%fileline} -</div> - -{footer}
--- a/templates/gitweb/footer.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,11 +0,0 @@ -<div class="page_footer"> -<div class="page_footer_text">{repo|escape}</div> -<div class="rss_logo"> -<a href="{url}rss-log">RSS</a> -<a href="{url}atom-log">Atom</a> -</div> -<br /> -{motd} -</div> -</body> -</html>
--- a/templates/gitweb/graph.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,121 +0,0 @@ -{header} -<title>{repo|escape}: Graph</title> -<link rel="alternate" type="application/atom+xml" - href="{url}atom-log" title="Atom feed for {repo|escape}"/> -<link rel="alternate" type="application/rss+xml" - href="{url}rss-log" title="RSS feed for {repo|escape}"/> -<!--[if IE]><script type="text/javascript" src="{staticurl}excanvas.js"></script><![endif]--> -</head> -<body> - -<div class="page_header"> -<a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / graph -</div> - -<form action="{url}log"> -{sessionvars%hiddenformentry} -<div class="search"> -<input type="text" name="rev" /> -</div> -</form> -<div class="page_nav"> -<a href="{url}summary{sessionvars%urlparameter}">summary</a> | -<a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> | -<a href="{url}log/{rev}{sessionvars%urlparameter}">changelog</a> | -graph | -<a href="{url}tags{sessionvars%urlparameter}">tags</a> | -<a href="{url}branches{sessionvars%urlparameter}">branches</a> | -<a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a> -<br/> -<a href="{url}graph/{rev}{lessvars%urlparameter}">less</a> -<a href="{url}graph/{rev}{morevars%urlparameter}">more</a> -| {changenav%navgraphentry}<br/> -</div> - -<div class="title"> </div> - -<noscript>The revision graph only works with JavaScript-enabled browsers.</noscript> - -<div id="wrapper"> -<ul id="nodebgs"></ul> -<canvas id="graph" width="224" height="{canvasheight}"></canvas> -<ul id="graphnodes"></ul> -</div> - -<script type="text/javascript" src="{staticurl}graph.js"></script> -<script> -<!-- hide script content - -var data = {jsdata|json}; -var graph = new Graph(); -graph.scale({bg_height}); - -graph.edge = function(x0, y0, x1, y1, color) { - - this.setColor(color, 0.0, 0.65); - this.ctx.beginPath(); - this.ctx.moveTo(x0, y0); - this.ctx.lineTo(x1, y1); - this.ctx.stroke(); - -} - -var revlink = '<li style="_STYLE"><span class="desc">'; -revlink += '<a class="list" href="{url}rev/_NODEID{sessionvars%urlparameter}" title="_NODEID"><b>_DESC</b></a>'; -revlink += '</span> _TAGS'; -revlink += '<span class="info">_DATE ago, by _USER</span></li>'; - -graph.vertex = function(x, y, color, parity, cur) { - - this.ctx.beginPath(); - color = this.setColor(color, 0.25, 0.75); - this.ctx.arc(x, y, radius, 0, Math.PI * 2, true); - this.ctx.fill(); - - var bg = '<li class="bg parity' + parity + '"></li>'; - var left = (this.columns + 1) * this.bg_height; - var nstyle = 'padding-left: ' + left + 'px;'; - var item = revlink.replace(/_STYLE/, nstyle); - item = item.replace(/_PARITY/, 'parity' + parity); - item = item.replace(/_NODEID/, cur[0]); - item = item.replace(/_NODEID/, cur[0]); - item = item.replace(/_DESC/, cur[3]); - item = item.replace(/_USER/, cur[4]); - item = item.replace(/_DATE/, cur[5]); - - var tagspan = ''; - if (cur[7].length || (cur[6][0] != 'default' || cur[6][1])) { - tagspan = '<span class="logtags">'; - if (cur[6][1]) { - tagspan += '<span class="branchtag" title="' + cur[6][0] + '">'; - tagspan += cur[6][0] + '</span> '; - } else if (!cur[6][1] && cur[6][0] != 'default') { - tagspan += '<span class="inbranchtag" title="' + cur[6][0] + '">'; - tagspan += cur[6][0] + '</span> '; - } - if (cur[7].length) { - for (var t in cur[7]) { - var tag = cur[7][t]; - tagspan += '<span class="tagtag">' + tag + '</span> '; - } - } - tagspan += '</span>'; - } - - item = item.replace(/_TAGS/, tagspan); - return [bg, item]; - -} - -graph.render(data); - -// stop hiding script --> -</script> - -<div class="page_nav"> -<a href="{url}graph/{rev}{lessvars%urlparameter}">less</a> -<a href="{url}graph/{rev}{morevars%urlparameter}">more</a> -| {changenav%navgraphentry} -</div> - -{footer}
--- a/templates/gitweb/header.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="{encoding}"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US"> -<head> -<link rel="icon" href="{staticurl}hgicon.png" type="image/png" /> -<meta name="robots" content="index, nofollow"/> -<link rel="stylesheet" href="{staticurl}style-gitweb.css" type="text/css" /> -
--- a/templates/gitweb/index.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -{header} -<title>Mercurial repositories index</title> -</head> -<body> - -<div class="page_header"> - <a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a> - Repositories list -</div> - -<table cellspacing="0"> - <tr> - <td><a href="?sort={sort_name}">Name</a></td> - <td><a href="?sort={sort_description}">Description</a></td> - <td><a href="?sort={sort_contact}">Contact</a></td> - <td><a href="?sort={sort_lastchange}">Last change</a></td> - <td> </td> - <td> </td> - </tr> - {entries%indexentry} -</table> -<div class="page_footer"> -{motd} -</div> -</body> -</html>
--- a/templates/gitweb/manifest.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,38 +0,0 @@ -{header} -<title>{repo|escape}: files</title> -<link rel="alternate" type="application/atom+xml" - href="{url}atom-log" title="Atom feed for {repo|escape}"/> -<link rel="alternate" type="application/rss+xml" - href="{url}rss-log" title="RSS feed for {repo|escape}"/> -</head> -<body> - -<div class="page_header"> -<a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / files -</div> - -<div class="page_nav"> -<a href="{url}summary{sessionvars%urlparameter}">summary</a> | -<a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> | -<a href="{url}log{sessionvars%urlparameter}">changelog</a> | -<a href="{url}graph{sessionvars%urlparameter}">graph</a> | -<a href="{url}tags{sessionvars%urlparameter}">tags</a> | -<a href="{url}branches{sessionvars%urlparameter}">branches</a> | -files | -<a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> {archives%archiveentry}<br/> -</div> - -<div class="title">{path|escape} <span class="logtags">{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}</span></div> -<table cellspacing="0"> -<tr class="parity{upparity}"> -<td style="font-family:monospace">drwxr-xr-x</td> -<td style="font-family:monospace"></td> -<td style="font-family:monospace"></td> -<td><a href="{url}file/{node|short}{up|urlescape}{sessionvars%urlparameter}">[up]</a></td> -<td class="link"> </td> -</tr> -{dentries%direntry} -{fentries%fileentry} -</table> - -{footer}
--- a/templates/gitweb/map Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,248 +0,0 @@ -default = 'summary' -mimetype = 'text/html; charset={encoding}' -header = header.tmpl -footer = footer.tmpl -search = search.tmpl -changelog = changelog.tmpl -summary = summary.tmpl -error = error.tmpl -notfound = notfound.tmpl -naventry = '<a href="{url}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> ' -navshortentry = '<a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> ' -navgraphentry = '<a href="{url}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> ' -filenaventry = '<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a> ' -filedifflink = '<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> ' -filenodelink = ' - <tr class="parity{parity}"> - <td><a class="list" href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td> - <td></td> - <td class="link"> - <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> | - <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> | - <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> | - <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> - </td> - </tr>' -filenolink = ' - <tr class="parity{parity}"> - <td><a class="list" href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td> - <td></td> - <td class="link"> - file | - annotate | - <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> | - <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> - </td> - </tr>' -fileellipses = '...' -changelogentry = changelogentry.tmpl -searchentry = changelogentry.tmpl -changeset = changeset.tmpl -manifest = manifest.tmpl -direntry = ' - <tr class="parity{parity}"> - <td style="font-family:monospace">drwxr-xr-x</td> - <td style="font-family:monospace"></td> - <td style="font-family:monospace"></td> - <td> - <a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">{basename|escape}</a> - <a href="{url}file/{node|short}{path|urlescape}/{emptydirs|urlescape}{sessionvars%urlparameter}">{emptydirs|escape}</a> - </td> - <td class="link"> - <a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a> - </td> - </tr>' -fileentry = ' - <tr class="parity{parity}"> - <td style="font-family:monospace">{permissions|permissions}</td> - <td style="font-family:monospace" align=right>{date|isodate}</td> - <td style="font-family:monospace" align=right>{size}</td> - <td class="list"> - <a class="list" href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{basename|escape}</a> - </td> - <td class="link"> - <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> | - <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> | - <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> - </td> - </tr>' -filerevision = filerevision.tmpl -fileannotate = fileannotate.tmpl -filediff = filediff.tmpl -filelog = filelog.tmpl -fileline = ' - <div style="font-family:monospace" class="parity{parity}"> - <pre><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</pre> - </div>' -annotateline = ' - <tr style="font-family:monospace" class="parity{parity}"> - <td class="linenr" style="text-align: right;"> - <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}" - title="{node|short}: {desc|escape|firstline}">{author|user}@{rev}</a> - </td> - <td><pre><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a></pre></td> - <td><pre>{line|escape}</pre></td> - </tr>' -difflineplus = '<span style="color:#008800;"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>' -difflineminus = '<span style="color:#cc0000;"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>' -difflineat = '<span style="color:#990099;"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>' -diffline = '<span><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>' -changelogparent = ' - <tr> - <th class="parent">parent {rev}:</th> - <td class="parent"> - <a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> - </td> - </tr>' -changesetbranch = '<tr><td>branch</td><td>{name}</td></tr>' -changesetparent = ' - <tr> - <td>parent {rev}</td> - <td style="font-family:monospace"> - <a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> - </td> - </tr>' -filerevbranch = '<tr><td>branch</td><td>{name}</td></tr>' -filerevparent = ' - <tr> - <td>parent {rev}</td> - <td style="font-family:monospace"> - <a class="list" href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}"> - {rename%filerename}{node|short} - </a> - </td> - </tr>' -filerename = '{file|escape}@' -filelogrename = '| <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">base</a>' -fileannotateparent = ' - <tr> - <td>parent {rev}</td> - <td style="font-family:monospace"> - <a class="list" href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}"> - {rename%filerename}{node|short} - </a> - </td> - </tr>' -changelogchild = ' - <tr> - <th class="child">child {rev}:</th> - <td class="child"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td> - </tr>' -changesetchild = ' - <tr> - <td>child {rev}</td> - <td style="font-family:monospace"> - <a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> - </td> - </tr>' -filerevchild = ' - <tr> - <td>child {rev}</td> - <td style="font-family:monospace"> - <a class="list" href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td> - </tr>' -fileannotatechild = ' - <tr> - <td>child {rev}</td> - <td style="font-family:monospace"> - <a class="list" href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td> - </tr>' -tags = tags.tmpl -tagentry = ' - <tr class="parity{parity}"> - <td class="age"><i>{date|age}</i></td> - <td><a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}"><b>{tag|escape}</b></a></td> - <td class="link"> - <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> | - <a href="{url}log/{node|short}{sessionvars%urlparameter}">changelog</a> | - <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a> - </td> - </tr>' -branches = branches.tmpl -branchentry = ' - <tr class="parity{parity}"> - <td class="age"><i>{date|age}</i></td> - <td><a class="list" href="{url}shortlog/{node|short}{sessionvars%urlparameter}"><b>{node|short}</b></a></td> - <td class="{status}">{branch|escape}</td> - <td class="link"> - <a href="{url}changeset/{node|short}{sessionvars%urlparameter}">changeset</a> | - <a href="{url}log/{node|short}{sessionvars%urlparameter}">changelog</a> | - <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a> - </td> - </tr>' -diffblock = '<pre>{lines}</pre>' -filediffparent = ' - <tr> - <td>parent {rev}</td> - <td style="font-family:monospace"> - <a class="list" href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}"> - {node|short} - </a> - </td> - </tr>' -filelogparent = ' - <tr> - <td align="right">parent {rev}: </td> - <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td> - </tr>' -filediffchild = ' - <tr> - <td>child {rev}</td> - <td style="font-family:monospace"> - <a class="list" href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a> - </td> - </tr>' -filelogchild = ' - <tr> - <td align="right">child {rev}: </td> - <td><a href="{url}file{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td> - </tr>' -shortlog = shortlog.tmpl -graph = graph.tmpl -tagtag = '<span class="tagtag" title="{name}">{name}</span> ' -branchtag = '<span class="branchtag" title="{name}">{name}</span> ' -inbranchtag = '<span class="inbranchtag" title="{name}">{name}</span> ' -shortlogentry = ' - <tr class="parity{parity}"> - <td class="age"><i>{date|age}</i></td> - <td><i>{author|person}</i></td> - <td> - <a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}"> - <b>{desc|strip|firstline|escape|nonempty}</b> - <span class="logtags">{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}</span> - </a> - </td> - <td class="link" nowrap> - <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> | - <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a> - </td> - </tr>' -filelogentry = ' - <tr class="parity{parity}"> - <td class="age"><i>{date|age}</i></td> - <td> - <a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}"> - <b>{desc|strip|firstline|escape|nonempty}</b> - </a> - </td> - <td class="link"> - <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> | <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> | <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> {rename%filelogrename}</td> - </tr>' -archiveentry = ' | <a href="{url}archive/{node|short}{extension}">{type|escape}</a> ' -indexentry = ' - <tr class="parity{parity}"> - <td> - <a class="list" href="{url}{sessionvars%urlparameter}"> - <b>{name|escape}</b> - </a> - </td> - <td>{description}</td> - <td>{contact|obfuscate}</td> - <td class="age">{lastchange|age}</td> - <td class="indexlinks">{archives%indexarchiveentry}</td> - <td><div class="rss_logo"><a href="{url}rss-log">RSS</a> <a href="{url}atom-log">Atom</a></div></td> - </tr>\n' -indexarchiveentry = ' <a href="{url}archive/{node|short}{extension}">{type|escape}</a> ' -index = index.tmpl -urlparameter = '{separator}{name}={value|urlescape}' -hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'
--- a/templates/gitweb/notfound.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,18 +0,0 @@ -{header} -<title>Mercurial repository not found</title> -</head> - -<body> - -<div class="page_header"> -<a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a> Not found: {repo|escape} -</div> - -<div class="page_body"> -The specified repository "{repo|escape}" is unknown, sorry. -<br/> -<br/> -Please go back to the <a href="{url}">main repository list page</a>. -</div> - -{footer}
--- a/templates/gitweb/search.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -{header} -<title>{repo|escape}: Search</title> -<link rel="alternate" type="application/atom+xml" - href="{url}atom-log" title="Atom feed for {repo|escape}"/> -<link rel="alternate" type="application/rss+xml" - href="{url}rss-log" title="RSS feed for {repo|escape}"/> -</head> -<body> - -<div class="page_header"> -<a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / search - -<form action="{url}log"> -{sessionvars%hiddenformentry} -<div class="search"> -<input type="text" name="rev" value="{query|escape}" /> -</div> -</form> -</div> - -<div class="page_nav"> -<a href="{url}summary{sessionvars%urlparameter}">summary</a> | -<a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> | -<a href="{url}log{sessionvars%urlparameter}">changelog</a> | -<a href="{url}graph{sessionvars%urlparameter}">graph</a> | -<a href="{url}tags{sessionvars%urlparameter}">tags</a> | -<a href="{url}branches{sessionvars%urlparameter}">branches</a> | -<a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>{archives%archiveentry} -<br/> -</div> - -<div class="title">searching for {query|escape}</div> - -{entries} - -{footer}
--- a/templates/gitweb/shortlog.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,41 +0,0 @@ -{header} -<title>{repo|escape}: Shortlog</title> -<link rel="alternate" type="application/atom+xml" - href="{url}atom-log" title="Atom feed for {repo|escape}"/> -<link rel="alternate" type="application/rss+xml" - href="{url}rss-log" title="RSS feed for {repo|escape}"/> -</head> -<body> - -<div class="page_header"> -<a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / shortlog -</div> - -<form action="{url}log"> -{sessionvars%hiddenformentry} -<div class="search"> -<input type="text" name="rev" /> -</div> -</form> -<div class="page_nav"> -<a href="{url}summary{sessionvars%urlparameter}">summary</a> | -shortlog | -<a href="{url}log/{rev}{sessionvars%urlparameter}">changelog</a> | -<a href="{url}graph{sessionvars%urlparameter}">graph</a> | -<a href="{url}tags{sessionvars%urlparameter}">tags</a> | -<a href="{url}branches{sessionvars%urlparameter}">branches</a> | -<a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>{archives%archiveentry} -<br/> -{changenav%navshortentry}<br/> -</div> - -<div class="title"> </div> -<table cellspacing="0"> -{entries%shortlogentry} -</table> - -<div class="page_nav"> -{changenav%navshortentry} -</div> - -{footer}
--- a/templates/gitweb/summary.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,58 +0,0 @@ -{header} -<title>{repo|escape}: Summary</title> -<link rel="alternate" type="application/atom+xml" - href="{url}atom-log" title="Atom feed for {repo|escape}"/> -<link rel="alternate" type="application/rss+xml" - href="{url}rss-log" title="RSS feed for {repo|escape}"/> -</head> -<body> - -<div class="page_header"> -<a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / summary - -<form action="{url}log"> -{sessionvars%hiddenformentry} -<div class="search"> -<input type="text" name="rev" /> -</div> -</form> -</div> - -<div class="page_nav"> -summary | -<a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> | -<a href="{url}log{sessionvars%urlparameter}">changelog</a> | -<a href="{url}graph{sessionvars%urlparameter}">graph</a> | -<a href="{url}tags{sessionvars%urlparameter}">tags</a> | -<a href="{url}branches{sessionvars%urlparameter}">branches</a> | -<a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>{archives%archiveentry} -<br/> -</div> - -<div class="title"> </div> -<table cellspacing="0"> -<tr><td>description</td><td>{desc}</td></tr> -<tr><td>owner</td><td>{owner|obfuscate}</td></tr> -<tr><td>last change</td><td>{lastchange|rfc822date}</td></tr> -</table> - -<div><a class="title" href="{url}shortlog{sessionvars%urlparameter}">changes</a></div> -<table cellspacing="0"> -{shortlog} -<tr class="light"><td colspan="4"><a class="list" href="{url}shortlog{sessionvars%urlparameter}">...</a></td></tr> -</table> - -<div><a class="title" href="{url}tags{sessionvars%urlparameter}">tags</a></div> -<table cellspacing="0"> -{tags} -<tr class="light"><td colspan="3"><a class="list" href="{url}tags{sessionvars%urlparameter}">...</a></td></tr> -</table> - -<div><a class="title" href="#">branches</a></div> -<table cellspacing="0"> -{branches%branchentry} -<tr class="light"> - <td colspan="4"><a class="list" href="#">...</a></td> -</tr> -</table> -{footer}
--- a/templates/gitweb/tags.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,30 +0,0 @@ -{header} -<title>{repo|escape}: Tags</title> -<link rel="alternate" type="application/atom+xml" - href="{url}atom-tags" title="Atom feed for {repo|escape}"/> -<link rel="alternate" type="application/rss+xml" - href="{url}rss-tags" title="RSS feed for {repo|escape}"/> -</head> -<body> - -<div class="page_header"> -<a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / tags -</div> - -<div class="page_nav"> -<a href="{url}summary{sessionvars%urlparameter}">summary</a> | -<a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> | -<a href="{url}log{sessionvars%urlparameter}">changelog</a> | -<a href="{url}graph{sessionvars%urlparameter}">graph</a> | -tags | -<a href="{url}branches{sessionvars%urlparameter}">branches</a> | -<a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a> -<br/> -</div> - -<div class="title"> </div> -<table cellspacing="0"> -{entries%tagentry} -</table> - -{footer}
--- a/templates/map-cmdline.changelog Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,14 +0,0 @@ -header = '{date|shortdate} {author|person} <{author|email}>\n\n' -header_verbose = '' -changeset = '\t* {files|stringify|fill68|tabindent}{desc|fill68|tabindent|strip}\n\t[{node|short}]{tags}\n\n' -changeset_quiet = '\t* {desc|firstline|fill68|tabindent|strip}\n\n' -changeset_verbose = '{date|isodate} {author|person} <{author|email}> ({node|short}{tags})\n\n\t* {file_adds|stringify|fill68|tabindent}{file_dels|stringify|fill68|tabindent}{files|stringify|fill68|tabindent}{desc|fill68|tabindent|strip}\n\n' -start_tags = ' [' -tag = '{tag}, ' -last_tag = '{tag}]' -file = '{file}, ' -last_file = '{file}:\n\t' -file_add = '{file_add}, ' -last_file_add = '{file_add}: new file.\n* ' -file_del = '{file_del}, ' -last_file_del = '{file_del}: deleted file.\n* '
--- a/templates/map-cmdline.compact Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,9 +0,0 @@ -changeset = '{rev}{tags}{parents} {node|short} {date|isodate} {author|user}\n {desc|firstline|strip}\n\n' -changeset_quiet = '{rev}:{node|short}\n' -changeset_verbose = '{rev}{tags}{parents} {node|short} {date|isodate} {author}\n {desc|strip}\n\n' -start_tags = '[' -tag = '{tag},' -last_tag = '{tag}]' -start_parents = ':' -parent = '{rev},' -last_parent = '{rev}'
--- a/templates/map-cmdline.default Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,24 +0,0 @@ -changeset = 'changeset: {rev}:{node|short}\n{branches}{tags}{parents}user: {author}\ndate: {date|date}\nsummary: {desc|firstline}\n\n' -changeset_quiet = '{rev}:{node|short}\n' -changeset_verbose = 'changeset: {rev}:{node|short}\n{branches}{tags}{parents}user: {author}\ndate: {date|date}\n{files}{file_copies}description:\n{desc|strip}\n\n\n' -changeset_debug = 'changeset: {rev}:{node}\n{branches}{tags}{parents}{manifest}user: {author}\ndate: {date|date}\n{file_mods}{file_adds}{file_dels}{file_copies}{extras}description:\n{desc|strip}\n\n\n' -start_files = 'files: ' -file = ' {file}' -end_files = '\n' -start_file_mods = 'files: ' -file_mod = ' {file_mod}' -end_file_mods = '\n' -start_file_adds = 'files+: ' -file_add = ' {file_add}' -end_file_adds = '\n' -start_file_dels = 'files-: ' -file_del = ' {file_del}' -end_file_dels = '\n' -start_file_copies = 'copies: ' -file_copy = ' {name} ({source})' -end_file_copies = '\n' -parent = 'parent: {rev}:{node|formatnode}\n' -manifest = 'manifest: {rev}:{node}\n' -branch = 'branch: {branch}\n' -tag = 'tag: {tag}\n' -extra = 'extra: {key}={value|stringescape}\n'
--- a/templates/monoblue/branches.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -{header} - <title>{repo|escape}: Branches</title> - <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/> - <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/> -</head> - -<body> -<div id="container"> - <div class="page-header"> - <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / Branches</h1> - - <form action="{url}log"> - {sessionvars%hiddenformentry} - <dl class="search"> - <dt><label>Search: </label></dt> - <dd><input type="text" name="rev" /></dd> - </dl> - </form> - - <ul class="page-nav"> - <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li> - <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li> - <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li> - <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li> - <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li> - <li class="current">branches</li> - <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li> - </ul> - </div> - - <h2 class="no-link no-border">tags</h2> - <table cellspacing="0"> -{entries%branchentry} - </table> - -{footer}
--- a/templates/monoblue/changelog.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,40 +0,0 @@ -{header} - <title>{repo|escape}: changelog</title> - <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/> - <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/> -</head> - -<body> -<div id="container"> - <div class="page-header"> - <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / changelog</h1> - - <form action="{url}log"> - {sessionvars%hiddenformentry} - <dl class="search"> - <dt><label>Search: </label></dt> - <dd><input type="text" name="rev" /></dd> - </dl> - </form> - - <ul class="page-nav"> - <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li> - <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li> - <li class="current">changelog</li> - <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li> - <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li> - <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li> - <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>{archives%archiveentry}</li> - </ul> - </div> - - <h2 class="no-link no-border">changelog</h2> - <div> - {entries%changelogentry} - </div> - - <div class="page-path"> -{changenav%naventry} - </div> - -{footer}
--- a/templates/monoblue/changelogentry.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,6 +0,0 @@ -<h3 class="changelog"><a class="title" href="{url}rev/{node|short}{sessionvars%urlparameter}">{desc|strip|firstline|escape|nonempty}<span class="logtags"> {inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}</span></a></h3> -<ul class="changelog-entry"> - <li class="age">{date|age}</li> - <li>by <span class="name">{author|obfuscate}</span> <span class="revdate">[{date|rfc822date}] rev {rev}</span></li> - <li class="description">{desc|strip|escape|addbreaks|nonempty}</li> -</ul>
--- a/templates/monoblue/changeset.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,63 +0,0 @@ -{header} -<title>{repo|escape}: changeset {rev}:{node|short}</title> - <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/> - <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/> -</head> - -<body> -<div id="container"> - <div class="page-header"> - <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / files</h1> - - <form action="{url}log"> - {sessionvars%hiddenformentry} - <dl class="search"> - <dt><label>Search: </label></dt> - <dd><input type="text" name="rev" /></dd> - </dl> - </form> - - <ul class="page-nav"> - <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li> - <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li> - <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li> - <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li> - <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li> - <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li> - <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li> - </ul> - </div> - - <ul class="submenu"> - <li class="current">changeset</li> - <li><a href="{url}raw-rev/{node|short}">raw</a> {archives%archiveentry}</li> - </ul> - - <h2 class="no-link no-border">changeset</h2> - - <h3 class="changeset"><a href="{url}raw-rev/{node|short}">{desc|strip|escape|firstline|nonempty} <span class="logtags">{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}</span></a></h3> - <p class="changeset-age"><span>{date|age}</span></p> - - <dl class="overview"> - <dt>author</dt> - <dd>{author|obfuscate}</dd> - <dt>date</dt> - <dd>{date|date}</dd> - {branch%changesetbranch} - <dt>changeset {rev}</dt> - <dd>{node|short}</dd> - {parent%changesetparent} - {child%changesetchild} - </dl> - - <p class="description">{desc|strip|escape|addbreaks|nonempty}</p> - - <table> - {files} - </table> - - <div class="diff"> - {diff} - </div> - -{footer}
--- a/templates/monoblue/error.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,34 +0,0 @@ -{header} - <title>{repo|escape}: Error</title> - <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/> - <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/> -</head> - -<body> -<div id="container"> - <div class="page-header"> - <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / Not found: {repo|escape}</h1> - - <form action="{url}log"> - {sessionvars%hiddenformentry} - <dl class="search"> - <dt><label>Search: </label></dt> - <dd><input type="text" name="rev" /></dd> - </dl> - </form> - - <ul class="page-nav"> - <li class="current">summary</li> - <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li> - <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li> - <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li> - <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li> - <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li> - <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li> - </ul> - </div> - - <h2 class="no-link no-border">An error occurred while processing your request</h2> - <p class="normal">{error|escape}</p> - -{footer}
--- a/templates/monoblue/fileannotate.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,63 +0,0 @@ -{header} -<title>{repo|escape}: {file|escape}@{node|short} (annotated)</title> - <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/> - <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/> -</head> - -<body> -<div id="container"> - <div class="page-header"> - <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / annotate</h1> - - <form action="{url}log"> - {sessionvars%hiddenformentry} - <dl class="search"> - <dt><label>Search: </label></dt> - <dd><input type="text" name="rev" /></dd> - </dl> - </form> - - <ul class="page-nav"> - <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li> - <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li> - <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li> - <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li> - <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li> - <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li> - <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a></li> - </ul> - </div> - - <ul class="submenu"> - <li><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a></li> - <li><a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a></li> - <li class="current">annotate</li> - <li><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li> - <li><a href="{url}raw-annotate/{node|short}/{file|urlescape}">raw</a></li> - </ul> - - <h2 class="no-link no-border">{file|escape}@{node|short} (annotated)</h2> - <h3 class="changeset">{file|escape}</h3> - <p class="changeset-age"><span>{date|age}</span></p> - - <dl class="overview"> - <dt>author</dt> - <dd>{author|obfuscate}</dd> - <dt>date</dt> - <dd>{date|date}</dd> - {branch%filerevbranch} - <dt>changeset {rev}</dt> - <dd><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd> - {parent%fileannotateparent} - {child%fileannotatechild} - <dt>permissions</dt> - <dd>{permissions|permissions}</dd> - </dl> - - <p class="description">{desc|strip|escape|addbreaks|nonempty}</p> - - <table class="annotated"> - {annotate%annotateline} - </table> - -{footer}
--- a/templates/monoblue/filediff.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,54 +0,0 @@ -{header} -<title>{repo|escape}: diff {file|escape}</title> - <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/> - <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/> -</head> - -<body> -<div id="container"> - <div class="page-header"> - <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / file diff</h1> - - <form action="{url}log"> - {sessionvars%hiddenformentry} - <dl class="search"> - <dt><label>Search: </label></dt> - <dd><input type="text" name="rev" /></dd> - </dl> - </form> - - <ul class="page-nav"> - <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li> - <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li> - <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li> - <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li> - <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li> - <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li> - <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a></li> - </ul> - </div> - - <ul class="submenu"> - <li><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a></li> - <li><a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a></li> - <li><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li> - <li class="current">diff</li> - <li><a href="{url}raw-diff/{node|short}/{file|urlescape}">raw</a></li> - </ul> - - <h2 class="no-link no-border">diff: {file|escape}</h2> - <h3 class="changeset">{file|escape}</h3> - - <dl class="overview"> - {branch%filerevbranch} - <dt>changeset {rev}</dt> - <dd><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd> - {parent%filediffparent} - {child%filediffchild} - </dl> - - <div class="diff"> - {diff} - </div> - -{footer}
--- a/templates/monoblue/filelog.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,49 +0,0 @@ -{header} -<title>{repo|escape}: File revisions</title> - <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/> - <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/> -</head> - -<body> -<div id="container"> - <div class="page-header"> - <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / file revisions</h1> - - <form action="{url}log"> - {sessionvars%hiddenformentry} - <dl class="search"> - <dt><label>Search: </label></dt> - <dd><input type="text" name="rev" /></dd> - </dl> - </form> - - <ul class="page-nav"> - <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li> - <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li> - <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li> - <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li> - <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li> - <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li> - <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a></li> - </ul> - </div> - - <ul class="submenu"> - <li><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a></li> - <li class="current">revisions</li> - <li><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li> - <li><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li> - <li><a href="{url}rss-log/{node|short}/{file|urlescape}">rss</a></li> - </ul> - - <h2 class="no-link no-border">{file|urlescape}</h2> - - <table> - {entries%filelogentry} - </table> - - <div class="page-path"> - {nav%filenaventry} - </div> - -{footer}
--- a/templates/monoblue/filerevision.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,63 +0,0 @@ -{header} -<title>{repo|escape}: {file|escape}@{node|short}</title> - <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/> - <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/> -</head> - -<body> -<div id="container"> - <div class="page-header"> - <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / file revision</h1> - - <form action="{url}log"> - {sessionvars%hiddenformentry} - <dl class="search"> - <dt><label>Search: </label></dt> - <dd><input type="text" name="rev" /></dd> - </dl> - </form> - - <ul class="page-nav"> - <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li> - <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li> - <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li> - <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li> - <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li> - <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li> - <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a></li> - </ul> - </div> - - <ul class="submenu"> - <li class="current">file</li> - <li><a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a></li> - <li><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li> - <li><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li> - <li><a href="{url}raw-file/{node|short}/{file|urlescape}">raw</a></li> - </ul> - - <h2 class="no-link no-border">{file|escape}@{node|short}</h2> - <h3 class="changeset">{file|escape}</h3> - <p class="changeset-age"><span>{date|age}</span></p> - - <dl class="overview"> - <dt>author</dt> - <dd>{author|obfuscate}</dd> - <dt>date</dt> - <dd>{date|date}</dd> - {branch%filerevbranch} - <dt>changeset {rev}</dt> - <dd><a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd> - {parent%filerevparent} - {child%filerevchild} - <dt>permissions</dt> - <dd>{permissions|permissions}</dd> - </dl> - - <p class="description">{desc|strip|escape|addbreaks|nonempty}</p> - - <div class="source"> - {text%fileline} - </div> - -{footer}
--- a/templates/monoblue/footer.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,22 +0,0 @@ - <div class="page-footer"> - <p>Mercurial Repository: {repo|escape}</p> - <ul class="rss-logo"> - <li><a href="{url}rss-log">RSS</a></li> - <li><a href="{url}atom-log">Atom</a></li> - </ul> - {motd} - </div> - - <div id="powered-by"> - <p><a href="http://mercurial.selenic.com/" title="Mercurial"><img src="{staticurl}hglogo.png" width=75 height=90 border=0 alt="mercurial"></a></p> - </div> - - <div id="corner-top-left"></div> - <div id="corner-top-right"></div> - <div id="corner-bottom-left"></div> - <div id="corner-bottom-right"></div> - -</div> - -</body> -</html>
--- a/templates/monoblue/graph.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,118 +0,0 @@ -{header} - <title>{repo|escape}: graph</title> - <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/> - <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/> - <!--[if IE]><script type="text/javascript" src="{staticurl}excanvas.js"></script><![endif]--> -</head> - -<body> -<div id="container"> - <div class="page-header"> - <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / graph</h1> - - <form action="{url}log"> - {sessionvars%hiddenformentry} - <dl class="search"> - <dt><label>Search: </label></dt> - <dd><input type="text" name="rev" /></dd> - </dl> - </form> - - <ul class="page-nav"> - <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li> - <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li> - <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li> - <li class="current">graph</li> - <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li> - <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li> - <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li> - </ul> - </div> - - <h2 class="no-link no-border">graph</h2> - - <div id="noscript">The revision graph only works with JavaScript-enabled browsers.</div> - <div id="wrapper"> - <ul id="nodebgs"></ul> - <canvas id="graph" width="224" height="{canvasheight}"></canvas> - <ul id="graphnodes"></ul> - </div> - - <script type="text/javascript" src="{staticurl}graph.js"></script> - <script> - <!-- hide script content - - document.getElementById('noscript').style.display = 'none'; - - var data = {jsdata|json}; - var graph = new Graph(); - graph.scale({bg_height}); - - graph.edge = function(x0, y0, x1, y1, color) { - - this.setColor(color, 0.0, 0.65); - this.ctx.beginPath(); - this.ctx.moveTo(x0, y0); - this.ctx.lineTo(x1, y1); - this.ctx.stroke(); - - } - - var revlink = '<li style="_STYLE"><span class="desc">'; - revlink += '<a href="{url}rev/_NODEID{sessionvars%urlparameter}" title="_NODEID">_DESC</a>'; - revlink += '</span>_TAGS<span class="info">_DATE ago, by _USER</span></li>'; - - graph.vertex = function(x, y, color, parity, cur) { - - this.ctx.beginPath(); - color = this.setColor(color, 0.25, 0.75); - this.ctx.arc(x, y, radius, 0, Math.PI * 2, true); - this.ctx.fill(); - - var bg = '<li class="bg parity' + parity + '"></li>'; - var left = (this.columns + 1) * this.bg_height; - var nstyle = 'padding-left: ' + left + 'px;'; - var item = revlink.replace(/_STYLE/, nstyle); - item = item.replace(/_PARITY/, 'parity' + parity); - item = item.replace(/_NODEID/, cur[0]); - item = item.replace(/_NODEID/, cur[0]); - item = item.replace(/_DESC/, cur[3]); - item = item.replace(/_USER/, cur[4]); - item = item.replace(/_DATE/, cur[5]); - - var tagspan = ''; - if (cur[7].length || (cur[6][0] != 'default' || cur[6][1])) { - tagspan = '<span class="logtags">'; - if (cur[6][1]) { - tagspan += '<span class="branchtag" title="' + cur[6][0] + '">'; - tagspan += cur[6][0] + '</span> '; - } else if (!cur[6][1] && cur[6][0] != 'default') { - tagspan += '<span class="inbranchtag" title="' + cur[6][0] + '">'; - tagspan += cur[6][0] + '</span> '; - } - if (cur[7].length) { - for (var t in cur[7]) { - var tag = cur[7][t]; - tagspan += '<span class="tagtag">' + tag + '</span> '; - } - } - tagspan += '</span>'; - } - - item = item.replace(/_TAGS/, tagspan); - return [bg, item]; - - } - - graph.render(data); - - // stop hiding script --> - </script> - - <div class="page-path"> - <a href="{url}graph/{rev}{lessvars%urlparameter}">less</a> - <a href="{url}graph/{rev}{morevars%urlparameter}">more</a> - | {changenav%navgraphentry} - </div> - -{footer}
--- a/templates/monoblue/header.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,6 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head> - <link rel="icon" href="{staticurl}hgicon.png" type="image/png" /> - <meta name="robots" content="index, nofollow"/> - <link rel="stylesheet" href="{staticurl}style-monoblue.css" type="text/css" />
--- a/templates/monoblue/index.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ -{header} - <title>{repo|escape}: Mercurial repositories index</title> -</head> - -<body> -<div id="container"> - <div class="page-header"> - <h1>Mercurial Repositories</h1> - <ul class="page-nav"> - </ul> - </div> - - <table cellspacing="0"> - <tr> - <td><a href="?sort={sort_name}">Name</a></td> - <td><a href="?sort={sort_description}">Description</a></td> - <td><a href="?sort={sort_contact}">Contact</a></td> - <td><a href="?sort={sort_lastchange}">Last change</a></td> - <td> </td> - <td> </td> - </tr> - {entries%indexentry} - </table> - <div class="page-footer"> - {motd} - </div> - - <div id="powered-by"> - <p><a href="http://mercurial.selenic.com/" title="Mercurial"><img src="{staticurl}hglogo.png" width=75 height=90 border=0 alt="mercurial"></a></p> - </div> - - <div id="corner-top-left"></div> - <div id="corner-top-right"></div> - <div id="corner-bottom-left"></div> - <div id="corner-bottom-right"></div> - -</div> -</body> -</html>
--- a/templates/monoblue/manifest.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -{header} -<title>{repo|escape}: files</title> - <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/> - <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/> -</head> - -<body> -<div id="container"> - <div class="page-header"> - <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / files</h1> - - <form action="{url}log"> - {sessionvars%hiddenformentry} - <dl class="search"> - <dt><label>Search: </label></dt> - <dd><input type="text" name="rev" /></dd> - </dl> - </form> - - <ul class="page-nav"> - <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li> - <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li> - <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li> - <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li> - <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li> - <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li> - <li class="current">files</li> - </ul> - </div> - - <ul class="submenu"> - <li><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> {archives%archiveentry}</li> - {archives%archiveentry} - </ul> - - <h2 class="no-link no-border">files</h2> - <p class="files">{path|escape} <span class="logtags">{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}</span></p> - - <table> - <tr class="parity{upparity}"> - <td>drwxr-xr-x</td> - <td></td> - <td></td> - <td><a href="{url}file/{node|short}{up|urlescape}{sessionvars%urlparameter}">[up]</a></td> - <td class="link"> </td> - </tr> - {dentries%direntry} - {fentries%fileentry} - </table> - -{footer}
--- a/templates/monoblue/map Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,214 +0,0 @@ -default = 'summary' -mimetype = 'text/html; charset={encoding}' -header = header.tmpl -footer = footer.tmpl -search = search.tmpl -changelog = changelog.tmpl -summary = summary.tmpl -error = error.tmpl -notfound = notfound.tmpl -naventry = '<a href="{url}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> ' -navshortentry = '<a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> ' -navgraphentry = '<a href="{url}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> ' -filenaventry = '<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a>' -filedifflink = '<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> ' -filenodelink = ' - <tr class="parity{parity}"> - <td><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td> - <td></td> - <td> - <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> | - <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> | - <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> | - <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> - </td> - </tr>' -filenolink = ' - <tr class="parity{parity}"> - <td> - <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td><td></td><td>file | - annotate | - <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> | - <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> - </td> - </tr>' -fileellipses = '...' -changelogentry = changelogentry.tmpl -searchentry = changelogentry.tmpl -changeset = changeset.tmpl -manifest = manifest.tmpl -direntry = ' - <tr class="parity{parity}"> - <td>drwxr-xr-x</td> - <td></td> - <td></td> - <td><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">{basename|escape}</a></td> - <td><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a></td> - </tr>' -fileentry = ' - <tr class="parity{parity}"> - <td>{permissions|permissions}</td> - <td>{date|isodate}</td> - <td>{size}</td> - <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{basename|escape}</a></td> - <td> - <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> | - <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> | - <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> - </td> - </tr>' -filerevision = filerevision.tmpl -fileannotate = fileannotate.tmpl -filediff = filediff.tmpl -filelog = filelog.tmpl -fileline = ' - <div style="font-family:monospace" class="parity{parity}"> - <pre><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</pre> - </div>' -annotateline = ' - <tr class="parity{parity}"> - <td class="linenr"> - <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#{targetline}" - title="{node|short}: {desc|escape|firstline}">{author|user}@{rev}</a> - </td> - <td class="lineno"> - <a href="#{lineid}" id="{lineid}">{linenumber}</a> - </td> - <td class="source">{line|escape}</td> - </tr>' -difflineplus = '<span style="color:#008800;"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>' -difflineminus = '<span style="color:#cc0000;"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>' -difflineat = '<span style="color:#990099;"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>' -diffline = '<span><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>' -changelogparent = ' - <tr> - <th class="parent">parent {rev}:</th> - <td class="parent"> - <a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> - </td> - </tr>' -changesetbranch = '<dt>branch</dt><dd>{name}</dd>' -changesetparent = ' - <dt>parent {rev}</dt> - <dd><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>' -filerevbranch = '<dt>branch</dt><dd>{name}</dd>' -filerevparent = ' - <dt>parent {rev}</dt> - <dd> - <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}"> - {rename%filerename}{node|short} - </a> - </dd>' -filerename = '{file|escape}@' -filelogrename = '| <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">base</a>' -fileannotateparent = ' - <dt>parent {rev}</dt> - <dd> - <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}"> - {rename%filerename}{node|short} - </a> - </dd>' -changelogchild = ' - <dt>child {rev}:</dt> - <dd><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>' -changesetchild = ' - <dt>child {rev}</dt> - <dd><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>' -filerevchild = ' - <dt>child {rev}</dt> - <dd> - <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a> - </dd>' -fileannotatechild = ' - <dt>child {rev}</dt> - <dd> - <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a> - </dd>' -tags = tags.tmpl -tagentry = ' - <tr class="parity{parity}"> - <td class="nowrap">{date|age}</td> - <td><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{tag|escape}</a></td> - <td class="nowrap"> - <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> | - <a href="{url}log/{node|short}{sessionvars%urlparameter}">changelog</a> | - <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a> - </td> - </tr>' -branches = branches.tmpl -branchentry = ' - <tr class="parity{parity}"> - <td class="nowrap">{date|age}</td> - <td><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">{node|short}</a></td> - <td class="{status}">{branch|escape}</td> - <td class="nowrap"> - <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> | - <a href="{url}log/{node|short}{sessionvars%urlparameter}">changelog</a> | - <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a> - </td> - </tr>' -diffblock = '<pre>{lines}</pre>' -filediffparent = ' - <dt>parent {rev}</dt> - <dd><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></dd>' -filelogparent = ' - <tr> - <td align="right">parent {rev}: </td> - <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td> - </tr>' -filediffchild = ' - <dt>child {rev}</dt> - <dd><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></dd>' -filelogchild = ' - <tr> - <td align="right">child {rev}: </td> - <td><a href="{url}file{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td> - </tr>' -shortlog = shortlog.tmpl -tagtag = '<span class="tagtag" title="{name}">{name}</span> ' -branchtag = '<span class="branchtag" title="{name}">{name}</span> ' -inbranchtag = '<span class="inbranchtag" title="{name}">{name}</span> ' -shortlogentry = ' - <tr class="parity{parity}"> - <td class="nowrap">{date|age}</td> - <td>{author|person}</td> - <td> - <a href="{url}rev/{node|short}{sessionvars%urlparameter}"> - {desc|strip|firstline|escape|nonempty} - <span class="logtags">{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}</span> - </a> - </td> - <td class="nowrap"> - <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> | - <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a> - </td> - </tr>' -filelogentry = ' - <tr class="parity{parity}"> - <td class="nowrap">{date|age}</td> - <td><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{desc|strip|firstline|escape|nonempty}</a></td> - <td class="nowrap"> - <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> | <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> | <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> - {rename%filelogrename} - </td> - </tr>' -archiveentry = '<li><a href="{url}archive/{node|short}{extension}">{type|escape}</a></li>' -indexentry = ' - <tr class="parity{parity}"> - <td><a href="{url}{sessionvars%urlparameter}">{name|escape}</a></td> - <td>{description}</td> - <td>{contact|obfuscate}</td> - <td>{lastchange|age}</td> - <td class="indexlinks">{archives%indexarchiveentry}</td> - <td> - <div class="rss_logo"> - <a href="{url}rss-log">RSS</a> - <a href="{url}atom-log">Atom</a> - </div> - </td> - </tr>\n' -indexarchiveentry = '<a href="{url}archive/{node|short}{extension}">{type|escape}</a> ' -index = index.tmpl -urlparameter = '{separator}{name}={value|urlescape}' -hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />' -graph = graph.tmpl
--- a/templates/monoblue/notfound.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,35 +0,0 @@ -{header} - <title>{repo|escape}: Mercurial repository not found</title> - <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/> - <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/> -</head> - -<body> -<div id="container"> - <div class="page-header"> - <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / Not found: {repo|escape}</h1> - - <form action="{url}log"> - {sessionvars%hiddenformentry} - <dl class="search"> - <dt><label>Search: </label></dt> - <dd><input type="text" name="rev" /></dd> - </dl> - </form> - - <ul class="page-nav"> - <li class="current">summary</li> - <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li> - <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li> - <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li> - <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li> - <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li> - <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>{archives%archiveentry}</li> - </ul> - </div> - - <h2 class="no-link no-border">Not Found</h2> - <p class="normal">The specified repository "{repo|escape}" is unknown, sorry.</p> - <p class="normal">Please go back to the <a href="{url}">main repository list page</a>.</p> - -{footer}
--- a/templates/monoblue/search.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,34 +0,0 @@ -{header} - <title>{repo|escape}: Search</title> - <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/> - <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/> -</head> - -<body> -<div id="container"> - <div class="page-header"> - <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / search</h1> - - <form action="{url}log"> - {sessionvars%hiddenformentry} - <dl class="search"> - <dt><label>Search: </label></dt> - <dd><input type="text" name="rev" value="{query|escape}" /></dd> - </dl> - </form> - - <ul class="page-nav"> - <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li> - <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li> - <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li> - <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li> - <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li> - <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li> - <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>{archives%archiveentry} - </ul> - </div> - - <h2 class="no-link no-border">searching for {query|escape}</h2> - {entries} - -{footer}
--- a/templates/monoblue/shortlog.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,41 +0,0 @@ -{header} - <title>{repo|escape}: shortlog</title> - <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/> - <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/> -</head> - -<body> -<div id="container"> - <div class="page-header"> - <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / shortlog</h1> - - <form action="{url}log"> - {sessionvars%hiddenformentry} - <dl class="search"> - <dt><label>Search: </label></dt> - <dd><input type="text" name="rev" /></dd> - </dl> - </form> - - <ul class="page-nav"> - <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li> - <li class="current">shortlog</li> - <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li> - <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li> - <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li> - <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li> - <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>{archives%archiveentry}</li> - </ul> - </div> - - <h2 class="no-link no-border">shortlog</h2> - - <table> -{entries%shortlogentry} - </table> - - <div class="page-path"> -{changenav%navshortentry} - </div> - -{footer}
--- a/templates/monoblue/summary.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,66 +0,0 @@ -{header} - <title>{repo|escape}: Summary</title> - <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/> - <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/> -</head> - -<body> -<div id="container"> - <div class="page-header"> - <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / summary</h1> - - <form action="{url}log"> - {sessionvars%hiddenformentry} - <dl class="search"> - <dt><label>Search: </label></dt> - <dd><input type="text" name="rev" /></dd> - </dl> - </form> - - <ul class="page-nav"> - <li class="current">summary</li> - <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li> - <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li> - <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li> - <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li> - <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li> - <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li> - </ul> - </div> - - <h2 class="no-link no-border">Mercurial Repository Overview</h2> - <dl class="overview"> - <dt>name</dt> - <dd>{repo|escape}</dd> - <dt>description</dt> - <dd>{desc}</dd> - <dt>owner</dt> - <dd>{owner|obfuscate}</dd> - <dt>last change</dt> - <dd>{lastchange|rfc822date}</dd> - </dl> - - <h2><a href="{url}shortlog{sessionvars%urlparameter}">Changes</a></h2> - <table> -{shortlog} - <tr class="light"> - <td colspan="4"><a class="list" href="{url}shortlog{sessionvars%urlparameter}">...</a></td> - </tr> - </table> - - <h2><a href="{url}tags{sessionvars%urlparameter}">Tags</a></h2> - <table> -{tags} - <tr class="light"> - <td colspan="3"><a class="list" href="{url}tags{sessionvars%urlparameter}">...</a></td> - </tr> - </table> - - <h2 class="no-link">Branches</h2> - <table> - {branches%branchentry} - <tr class="light"> - <td colspan="4"><a class="list" href="#">...</a></td> - </tr> - </table> -{footer}
--- a/templates/monoblue/tags.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -{header} - <title>{repo|escape}: Tags</title> - <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/> - <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/> -</head> - -<body> -<div id="container"> - <div class="page-header"> - <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / Tags</h1> - - <form action="{url}log"> - {sessionvars%hiddenformentry} - <dl class="search"> - <dt><label>Search: </label></dt> - <dd><input type="text" name="rev" /></dd> - </dl> - </form> - - <ul class="page-nav"> - <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li> - <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li> - <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li> - <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li> - <li class="current">tags</li> - <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li> - <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li> - </ul> - </div> - - <h2 class="no-link no-border">tags</h2> - <table cellspacing="0"> -{entries%tagentry} - </table> - -{footer}
--- a/templates/paper/branches.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,45 +0,0 @@ -{header} -<title>{repo|escape}: branches</title> -<link rel="alternate" type="application/atom+xml" - href="{url}atom-tags" title="Atom feed for {repo|escape}: branches" /> -<link rel="alternate" type="application/rss+xml" - href="{url}rss-tags" title="RSS feed for {repo|escape}: branches" /> -</head> -<body> - -<div class="container"> -<div class="menu"> -<div class="logo"> -<a href="http://mercurial.selenic.com/"> -<img src="{staticurl}hglogo.png" alt="mercurial" /></a> -</div> -<ul> -<li><a href="{url}shortlog{sessionvars%urlparameter}">log</a></li> -<li><a href="{url}graph{sessionvars%urlparameter}">graph</a></li> -<li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li> -<li class="active">branches</li> -</ul> -</div> - -<div class="main"> -<h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2> -<h3>branches</h3> - -<form class="search" action="{url}log"> -{sessionvars%hiddenformentry} -<p><input name="rev" id="search1" type="text" size="30" /></p> -<div id="hint">find changesets by author, revision, -files, or words in the commit message</div> -</form> - -<table class="bigtable"> -<tr> - <th>branch</th> - <th>node</th> -</tr> -{entries%branchentry} -</table> -</div> -</div> - -{footer}
--- a/templates/paper/changeset.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,71 +0,0 @@ -{header} -<title>{repo|escape}: {node|short}</title> -</head> -<body> -<div class="container"> -<div class="menu"> -<div class="logo"> -<a href="http://mercurial.selenic.com/"> -<img src="{staticurl}hglogo.png" alt="mercurial" /></a> -</div> -<ul> - <li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li> - <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li> - <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li> - <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li> -</ul> -<ul> - <li class="active">changeset</li> - <li><a href="{url}raw-rev/{node|short}{sessionvars%urlparameter}">raw</a></li> - <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">browse</a></li> -</ul> -<ul> - {archives%archiveentry} -</ul> -</div> - -<div class="main"> - -<h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2> -<h3>changeset {rev}:{node|short} {changesetbranch%changelogbranchname} {changesettag}</h3> - -<form class="search" action="{url}log"> -{sessionvars%hiddenformentry} -<p><input name="rev" id="search1" type="text" size="30" /></p> -<div id="hint">find changesets by author, revision, -files, or words in the commit message</div> -</form> - -<div class="description">{desc|strip|escape|addbreaks|nonempty}</div> - -<table id="changesetEntry"> -<tr> - <th class="author">author</th> - <td class="author">{author|obfuscate}</td> -</tr> -<tr> - <th class="date">date</th> - <td class="date">{date|date} ({date|age})</td></tr> -<tr> - <th class="author">parents</th> - <td class="author">{parent%changesetparent}</td> -</tr> -<tr> - <th class="author">children</th> - <td class="author">{child%changesetchild}</td> -</tr> -<tr> - <th class="files">files</th> - <td class="files">{files}</td> -</tr> -</table> - -<div class="overflow"> -<div class="sourcefirst"> line diff</div> - -{diff} -</div> - -</div> -</div> -{footer}
--- a/templates/paper/error.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,43 +0,0 @@ -{header} -<title>{repo|escape}: error</title> -</head> -<body> - -<div class="container"> -<div class="menu"> -<div class="logo"> -<a href="http://mercurial.selenic.com/"> -<img src="{staticurl}hglogo.png" width=75 height=90 border=0 alt="mercurial" /></a> -</div> -<ul> -<li><a href="{url}shortlog{sessionvars%urlparameter}">log</a></li> -<li><a href="{url}graph{sessionvars%urlparameter}">graph</a></li> -<li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li> -<li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li> -</ul> -</div> - -<div class="main"> - -<h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2> -<h3>error</h3> - -<form class="search" action="{url}log"> -{sessionvars%hiddenformentry} -<p><input name="rev" id="search1" type="text" size="30"></p> -<div id="hint">find changesets by author, revision, -files, or words in the commit message</div> -</form> - -<div class="description"> -<p> -An error occurred while processing your request: -</p> -<p> -{error|escape} -</p> -</div> -</div> -</div> - -{footer}
--- a/templates/paper/fileannotate.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,78 +0,0 @@ -{header} -<title>{repo|escape}: {file|escape} annotate</title> -</head> -<body> - -<div class="container"> -<div class="menu"> -<div class="logo"> -<a href="http://mercurial.selenic.com/"> -<img src="{staticurl}hglogo.png" alt="mercurial" /></a> -</div> -<ul> -<li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li> -<li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li> -<li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li> -<li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li> -</ul> - -<ul> -<li><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a></li> -<li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">browse</a></li> -</ul> -<ul> -<li><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a></li> -<li><a href="{url}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a></li> -<li><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li> -<li class="active">annotate</li> -<li><a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file log</a></li> -<li><a href="{url}raw-annotate/{node|short}/{file|urlescape}">raw</a></li> -</ul> -</div> - -<div class="main"> -<h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2> -<h3>annotate {file|escape} @ {rev}:{node|short}</h3> - -<form class="search" action="{url}log"> -{sessionvars%hiddenformentry} -<p><input name="rev" id="search1" type="text" size="30" /></p> -<div id="hint">find changesets by author, revision, -files, or words in the commit message</div> -</form> - -<div class="description">{desc|strip|escape|addbreaks|nonempty}</div> - -<table id="changesetEntry"> -<tr> - <th class="author">author</th> - <td class="author">{author|obfuscate}</td> -</tr> -<tr> - <th class="date">date</th> - <td class="date">{date|date} ({date|age})</td> -</tr> -<tr> - <th class="author">parents</th> - <td class="author">{parent%filerevparent}</td> -</tr> -<tr> - <th class="author">children</th> - <td class="author">{child%filerevchild}</td> -</tr> -{changesettag} -</table> - -<div class="overflow"> -<table class="bigtable"> -<tr> - <th class="annotate">rev</th> - <th class="line"> line source</th> -</tr> -{annotate%annotateline} -</table> -</div> -</div> -</div> - -{footer}
--- a/templates/paper/filediff.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,73 +0,0 @@ -{header} -<title>{repo|escape}: {file|escape} diff</title> -</head> -<body> - -<div class="container"> -<div class="menu"> -<div class="logo"> -<a href="http://mercurial.selenic.com/"> -<img src="{staticurl}hglogo.png" alt="mercurial" /></a> -</div> -<ul> -<li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li> -<li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li> -<li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li> -<li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li> -</ul> -<ul> -<li><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a></li> -<li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">browse</a></li> -</ul> -<ul> -<li><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a></li> -<li><a href="{url}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a></li> -<li class="active">diff</li> -<li><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li> -<li><a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file log</a></li> -<li><a href="{url}raw-file/{node|short}/{file|urlescape}">raw</a></li> -</ul> -</div> - -<div class="main"> -<h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2> -<h3>diff {file|escape} @ {rev}:{node|short}</h3> - -<form class="search" action="{url}log"> -<p>{sessionvars%hiddenformentry}</p> -<p><input name="rev" id="search1" type="text" size="30" /></p> -<div id="hint">find changesets by author, revision, -files, or words in the commit message</div> -</form> - -<div class="description">{desc|strip|escape|addbreaks|nonempty}</div> - -<table id="changesetEntry"> -<tr> - <th>author</th> - <td>{author|obfuscate}</td> -</tr> -<tr> - <th>date</th> - <td>{date|date} ({date|age})</td> -</tr> -<tr> - <th>parents</th> - <td>{parent%filerevparent}</td> -</tr> -<tr> - <th>children</th> - <td>{child%filerevchild}</td> -</tr> -{changesettag} -</table> - -<div class="overflow"> -<div class="sourcefirst"> line diff</div> - -{diff} -</div> -</div> -</div> - -{footer}
--- a/templates/paper/filelog.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,60 +0,0 @@ -{header} -<title>{repo|escape}: {file|escape} history</title> -<link rel="alternate" type="application/atom+xml" - href="{url}atom-log/tip/{file|urlescape}" title="Atom feed for {repo|escape}:{file}" /> -<link rel="alternate" type="application/rss+xml" - href="{url}rss-log/tip/{file|urlescape}" title="RSS feed for {repo|escape}:{file}" /> -</head> -<body> - -<div class="container"> -<div class="menu"> -<div class="logo"> -<a href="http://mercurial.selenic.com/"> -<img src="{staticurl}hglogo.png" alt="mercurial" /></a> -</div> -<ul> -<li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li> -<li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li> -<li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li> -<li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li> -</ul> -<ul> -<li><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a></li> -<li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">browse</a></li> -</ul> -<ul> -<li><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a></li> -<li><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li> -<li><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li> -<li class="active">file log</li> -<li><a href="{url}raw-file/{node|short}/{file|urlescape}">raw</a></li> -</ul> -</div> - -<div class="main"> -<h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2> -<h3>log {file|escape}</h3> - -<form class="search" action="{url}log"> -{sessionvars%hiddenformentry} -<p><input name="rev" id="search1" type="text" size="30" /></p> -<div id="hint">find changesets by author, revision, -files, or words in the commit message</div> -</form> - -<div class="navigate">{nav%filenaventry}</div> - -<table class="bigtable"> - <tr> - <th class="age">age</th> - <th class="author">author</th> - <th class="description">description</th> - </tr> -{entries%filelogentry} -</table> - -</div> -</div> - -{footer}
--- a/templates/paper/filelogentry.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +0,0 @@ - <tr class="parity{parity}"> - <td class="age">{date|age}</td> - <td class="author">{author|person}</td> - <td class="description"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{desc|strip|firstline|escape|nonempty}</a>{inbranch%changelogbranchname}{branches%changelogbranchhead}{tags%changelogtag}</td> - </tr>
--- a/templates/paper/filerevision.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,73 +0,0 @@ -{header} -<title>{repo|escape}: {node|short} {file|escape}</title> -</head> -<body> - -<div class="container"> -<div class="menu"> -<div class="logo"> -<a href="http://mercurial.selenic.com/"> -<img src="{staticurl}hglogo.png" alt="mercurial" /></a> -</div> -<ul> -<li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li> -<li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li> -<li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li> -<li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li> -</ul> -<ul> -<li><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a></li> -<li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">browse</a></li> -</ul> -<ul> -<li class="active">file</li> -<li><a href="{url}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a></li> -<li><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li> -<li><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li> -<li><a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file log</a></li> -<li><a href="{url}raw-file/{node|short}/{file|urlescape}">raw</a></li> -</ul> -</div> - -<div class="main"> -<h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2> -<h3>view {file|escape} @ {rev}:{node|short}</h3> - -<form class="search" action="{url}log"> -{sessionvars%hiddenformentry} -<p><input name="rev" id="search1" type="text" size="30" /></p> -<div id="hint">find changesets by author, revision, -files, or words in the commit message</div> -</form> - -<div class="description">{desc|strip|escape|addbreaks|nonempty}</div> - -<table id="changesetEntry"> -<tr> - <th class="author">author</th> - <td class="author">{author|obfuscate}</td> -</tr> -<tr> - <th class="date">date</th> - <td class="date">{date|date} ({date|age})</td> -</tr> -<tr> - <th class="author">parents</th> - <td class="author">{parent%filerevparent}</td> -</tr> -<tr> - <th class="author">children</th> - <td class="author">{child%filerevchild}</td> -</tr> -{changesettag} -</table> - -<div class="overflow"> -<div class="sourcefirst"> line source</div> -{text%fileline} -<div class="sourcelast"></div> -</div> -</div> -</div> - -{footer}
--- a/templates/paper/footer.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,4 +0,0 @@ -{motd} - -</body> -</html>
--- a/templates/paper/graph.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,132 +0,0 @@ -{header} -<title>{repo|escape}: revision graph</title> -<link rel="alternate" type="application/atom+xml" - href="{url}atom-log" title="Atom feed for {repo|escape}: log" /> -<link rel="alternate" type="application/rss+xml" - href="{url}rss-log" title="RSS feed for {repo|escape}: log" /> -<!--[if IE]><script type="text/javascript" src="{staticurl}excanvas.js"></script><![endif]--> -</head> -<body> - -<div class="container"> -<div class="menu"> -<div class="logo"> -<a href="http://mercurial.selenic.com/"> -<img src="{staticurl}hglogo.png" alt="mercurial" /></a> -</div> -<ul> -<li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li> -<li class="active">graph</li> -<li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li> -<li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li> -</ul> -<ul> -<li><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a></li> -<li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">browse</a></li> -</ul> -</div> - -<div class="main"> -<h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2> -<h3>graph</h3> - -<form class="search" action="{url}log"> -{sessionvars%hiddenformentry} -<p><input name="rev" id="search1" type="text" size="30" /></p> -<div id="hint">find changesets by author, revision, -files, or words in the commit message</div> -</form> - -<div class="navigate"> -<a href="{url}graph/{rev}{lessvars%urlparameter}">less</a> -<a href="{url}graph/{rev}{morevars%urlparameter}">more</a> -| rev {rev}: {changenav%navgraphentry} -</div> - -<noscript><p>The revision graph only works with JavaScript-enabled browsers.</p></noscript> - -<div id="wrapper"> -<ul id="nodebgs"></ul> -<canvas id="graph" width="224" height="{canvasheight}"></canvas> -<ul id="graphnodes"></ul> -</div> - -<script type="text/javascript" src="{staticurl}graph.js"></script> -<script type="text/javascript"> -<!-- hide script content - -var data = {jsdata|json}; -var graph = new Graph(); -graph.scale({bg_height}); - -graph.edge = function(x0, y0, x1, y1, color) { - - this.setColor(color, 0.0, 0.65); - this.ctx.beginPath(); - this.ctx.moveTo(x0, y0); - this.ctx.lineTo(x1, y1); - this.ctx.stroke(); - -} - -var revlink = '<li style="_STYLE"><span class="desc">'; -revlink += '<a href="{url}rev/_NODEID{sessionvars%urlparameter}" title="_NODEID">_DESC</a>'; -revlink += '</span>_TAGS<span class="info">_DATE ago, by _USER</span></li>'; - -graph.vertex = function(x, y, color, parity, cur) { - - this.ctx.beginPath(); - color = this.setColor(color, 0.25, 0.75); - this.ctx.arc(x, y, radius, 0, Math.PI * 2, true); - this.ctx.fill(); - - var bg = '<li class="bg parity' + parity + '"></li>'; - var left = (this.columns + 1) * this.bg_height; - var nstyle = 'padding-left: ' + left + 'px;'; - var item = revlink.replace(/_STYLE/, nstyle); - item = item.replace(/_PARITY/, 'parity' + parity); - item = item.replace(/_NODEID/, cur[0]); - item = item.replace(/_NODEID/, cur[0]); - item = item.replace(/_DESC/, cur[3]); - item = item.replace(/_USER/, cur[4]); - item = item.replace(/_DATE/, cur[5]); - - var tagspan = ''; - if (cur[7].length || (cur[6][0] != 'default' || cur[6][1])) { - tagspan = '<span class="logtags">'; - if (cur[6][1]) { - tagspan += '<span class="branchhead" title="' + cur[6][0] + '">'; - tagspan += cur[6][0] + '</span> '; - } else if (!cur[6][1] && cur[6][0] != 'default') { - tagspan += '<span class="branchname" title="' + cur[6][0] + '">'; - tagspan += cur[6][0] + '</span> '; - } - if (cur[7].length) { - for (var t in cur[7]) { - var tag = cur[7][t]; - tagspan += '<span class="tag">' + tag + '</span> '; - } - } - tagspan += '</span>'; - } - - item = item.replace(/_TAGS/, tagspan); - return [bg, item]; - -} - -graph.render(data); - -// stop hiding script --> -</script> - -<div class="navigate"> -<a href="{url}graph/{rev}{lessvars%urlparameter}">less</a> -<a href="{url}graph/{rev}{morevars%urlparameter}">more</a> -| rev {rev}: {changenav%navgraphentry} -</div> - -</div> -</div> - -{footer}
--- a/templates/paper/header.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,6 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US"> -<head> -<link rel="icon" href="{staticurl}hgicon.png" type="image/png" /> -<meta name="robots" content="index, nofollow" /> -<link rel="stylesheet" href="{staticurl}style-paper.css" type="text/css" />
--- a/templates/paper/index.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -{header} -<title>Mercurial repositories index</title> -</head> -<body> - -<div class="container"> -<div class="menu"> -<a href="http://mercurial.selenic.com/"> -<img src="{staticurl}hglogo.png" width=75 height=90 border=0 alt="mercurial" /></a> -</div> -<div class="main"> -<h2>Mercurial Repositories</h2> - -<table class="bigtable"> - <tr> - <th><a href="?sort={sort_name}">Name</a></th> - <th><a href="?sort={sort_description}">Description</a></th> - <th><a href="?sort={sort_contact}">Contact</a></th> - <th><a href="?sort={sort_lastchange}">Last change</a></th> - <th> </th> - </tr> - {entries%indexentry} -</table> -</div> -</div> -{footer}
--- a/templates/paper/manifest.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,54 +0,0 @@ -{header} -<title>{repo|escape}: {node|short} {path|escape}</title> -</head> -<body> - -<div class="container"> -<div class="menu"> -<div class="logo"> -<a href="http://mercurial.selenic.com/"> -<img src="{staticurl}hglogo.png" alt="mercurial" /></a> -</div> -<ul> -<li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li> -<li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li> -<li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li> -<li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li> -</ul> -<ul> -<li><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a></li> -<li class="active">browse</li> -</ul> -<ul> -{archives%archiveentry} -</ul> -</div> - -<div class="main"> -<h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2> -<h3>directory {path|escape} @ {rev}:{node|short} {tags%changelogtag}</h3> - -<form class="search" action="{url}log"> -{sessionvars%hiddenformentry} -<p><input name="rev" id="search1" type="text" size="30" /></p> -<div id="hint">find changesets by author, revision, -files, or words in the commit message</div> -</form> - -<table class="bigtable"> -<tr> - <th class="name">name</th> - <th class="size">size</th> - <th class="permissions">permissions</th> -</tr> -<tr class="fileline parity{upparity}"> - <td class="name"><a href="{url}file/{node|short}{up|urlescape}{sessionvars%urlparameter}">[up]</a></td> - <td class="size"></td> - <td class="permissions">drwxr-xr-x</td> -</tr> -{dentries%direntry} -{fentries%fileentry} -</table> -</div> -</div> -{footer}
--- a/templates/paper/map Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,191 +0,0 @@ -default = 'shortlog' - -mimetype = 'text/html; charset={encoding}' -header = header.tmpl -footer = footer.tmpl -search = search.tmpl - -changelog = shortlog.tmpl -shortlog = shortlog.tmpl -shortlogentry = shortlogentry.tmpl -graph = graph.tmpl - -naventry = '<a href="{url}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> ' -navshortentry = '<a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> ' -navgraphentry = '<a href="{url}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> ' -filenaventry = '<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a> ' -filedifflink = '<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> ' -filenodelink = '<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> ' -filenolink = '{file|escape} ' -fileellipses = '...' -changelogentry = shortlogentry.tmpl -searchentry = shortlogentry.tmpl -changeset = changeset.tmpl -manifest = manifest.tmpl - -direntry = ' - <tr class="fileline parity{parity}"> - <td class="name"> - <a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}"> - <img src="{staticurl}coal-folder.png" alt="dir."/> {basename|escape}/ - </a> - <a href="{url}file/{node|short}{path|urlescape}/{emptydirs|urlescape}{sessionvars%urlparameter}"> - {emptydirs|escape} - </a> - </td> - <td class="size"></td> - <td class="permissions">drwxr-xr-x</td> - </tr>' - -fileentry = ' - <tr class="fileline parity{parity}"> - <td class="filename"> - <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}"> - <img src="{staticurl}coal-file.png" alt="file"/> {basename|escape} - </a> - </td> - <td class="size">{size}</td> - <td class="permissions">{permissions|permissions}</td> - </tr>' - -filerevision = filerevision.tmpl -fileannotate = fileannotate.tmpl -filediff = filediff.tmpl -filelog = filelog.tmpl -fileline = ' - <div class="parity{parity} source"><a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</div>' -filelogentry = filelogentry.tmpl - -annotateline = ' - <tr class="parity{parity}"> - <td class="annotate"> - <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#{targetline}" - title="{node|short}: {desc|escape|firstline}">{author|user}@{rev}</a> - </td> - <td class="source"><a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</td> - </tr>' - -diffblock = '<div class="source bottomline parity{parity}"><pre>{lines}</pre></div>' -difflineplus = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span class="plusline">{line|escape}</span>' -difflineminus = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span class="minusline">{line|escape}</span>' -difflineat = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span class="atline">{line|escape}</span>' -diffline = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}' - -changelogparent = ' - <tr> - <th class="parent">parent {rev}:</th> - <td class="parent"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td> - </tr>' - -changesetparent = '<a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> ' - -filerevparent = '<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{rename%filerename}{node|short}</a> ' -filerevchild = '<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a> ' - -filerename = '{file|escape}@' -filelogrename = ' - <tr> - <th>base:</th> - <td> - <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}"> - {file|escape}@{node|short} - </a> - </td> - </tr>' -fileannotateparent = ' - <tr> - <td class="metatag">parent:</td> - <td> - <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}"> - {rename%filerename}{node|short} - </a> - </td> - </tr>' -changesetchild = ' <a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>' -changelogchild = ' - <tr> - <th class="child">child</th> - <td class="child"> - <a href="{url}rev/{node|short}{sessionvars%urlparameter}"> - {node|short} - </a> - </td> - </tr>' -fileannotatechild = ' - <tr> - <td class="metatag">child:</td> - <td> - <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}"> - {node|short} - </a> - </td> - </tr>' -tags = tags.tmpl -tagentry = ' - <tr class="tagEntry parity{parity}"> - <td> - <a href="{url}rev/{node|short}{sessionvars%urlparameter}"> - {tag|escape} - </a> - </td> - <td class="node"> - {node|short} - </td> - </tr>' -branches = branches.tmpl -branchentry = ' - <tr class="tagEntry parity{parity}"> - <td> - <a href="{url}shortlog/{node|short}{sessionvars%urlparameter}" class="{status}"> - {branch|escape} - </a> - </td> - <td class="node"> - {node|short} - </td> - </tr>' -changelogtag = '<span class="tag">{name|escape}</span> ' -changesettag = '<span class="tag">{tag|escape}</span> ' -changelogbranchhead = '<span class="branchhead">{name|escape}</span> ' -changelogbranchname = '<span class="branchname">{name|escape}</span> ' - -filediffparent = ' - <tr> - <th class="parent">parent {rev}:</th> - <td class="parent"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td> - </tr>' -filelogparent = ' - <tr> - <th>parent {rev}:</th> - <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td> - </tr>' -filediffchild = ' - <tr> - <th class="child">child {rev}:</th> - <td class="child"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> - </td> - </tr>' -filelogchild = ' - <tr> - <th>child {rev}:</th> - <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td> - </tr>' - -indexentry = ' - <tr class="parity{parity}"> - <td><a href="{url}{sessionvars%urlparameter}">{name|escape}</a></td> - <td>{description}</td> - <td>{contact|obfuscate}</td> - <td class="age">{lastchange|age}</td> - <td class="indexlinks">{archives%indexarchiveentry}</td> - </tr>\n' -indexarchiveentry = '<a href="{url}archive/{node|short}{extension|urlescape}"> ↓{type|escape}</a>' -index = index.tmpl -archiveentry = ' - <li> - <a href="{url}archive/{node|short}{extension|urlescape}">{type|escape}</a> - </li>' -notfound = notfound.tmpl -error = error.tmpl -urlparameter = '{separator}{name}={value|urlescape}' -hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'
--- a/templates/paper/notfound.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{header} -<title>Mercurial repository not found</title> -</head> -<body> - -<h2>Mercurial repository not found</h2> - -The specified repository "{repo|escape}" is unknown, sorry. - -Please go back to the <a href="{url}">main repository list page</a>. - -{footer}
--- a/templates/paper/search.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,43 +0,0 @@ -{header} -<title>{repo|escape}: searching for {query|escape}</title> -</head> -<body> - -<div class="container"> -<div class="menu"> -<div class="logo"> -<a href="http://mercurial.selenic.com/"> -<img src="{staticurl}hglogo.png" width=75 height=90 border=0 alt="mercurial"></a> -</div> -<ul> -<li><a href="{url}shortlog{sessionvars%urlparameter}">log</a></li> -<li><a href="{url}graph{sessionvars%urlparameter}">graph</a></li> -<li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li> -<li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li> -</ul> -</div> - -<div class="main"> -<h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2> -<h3>searching for '{query|escape}'</h3> - -<form class="search" action="{url}log"> -{sessionvars%hiddenformentry} -<p><input name="rev" id="search1" type="text" size="30"></p> -<div id="hint">find changesets by author, revision, -files, or words in the commit message</div> -</form> - -<table class="bigtable"> - <tr> - <th class="age">age</th> - <th class="author">author</th> - <th class="description">description</th> - </tr> -{entries} -</table> - -</div> -</div> - -{footer}
--- a/templates/paper/shortlog.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,57 +0,0 @@ -{header} -<title>{repo|escape}: log</title> -<link rel="alternate" type="application/atom+xml" - href="{url}atom-log" title="Atom feed for {repo|escape}" /> -<link rel="alternate" type="application/rss+xml" - href="{url}rss-log" title="RSS feed for {repo|escape}" /> -</head> -<body> - -<div class="container"> -<div class="menu"> -<div class="logo"> -<a href="http://mercurial.selenic.com/"> -<img src="{staticurl}hglogo.png" alt="mercurial" /></a> -</div> -<ul> -<li class="active">log</li> -<li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li> -<li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li> -<li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li> -</ul> -<ul> -<li><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a></li> -<li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">browse</a></li> -</ul> -<ul> -{archives%archiveentry} -</ul> -</div> - -<div class="main"> -<h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2> -<h3>log</h3> - -<form class="search" action="{url}log"> -{sessionvars%hiddenformentry} -<p><input name="rev" id="search1" type="text" size="30" /></p> -<div id="hint">find changesets by author, revision, -files, or words in the commit message</div> -</form> - -<div class="navigate">rev {rev}: {changenav%navshortentry}</div> - -<table class="bigtable"> - <tr> - <th class="age">age</th> - <th class="author">author</th> - <th class="description">description</th> - </tr> -{entries%shortlogentry} -</table> - -<div class="navigate">rev {rev}: {changenav%navshortentry}</div> -</div> -</div> - -{footer}
--- a/templates/paper/shortlogentry.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +0,0 @@ - <tr class="parity{parity}"> - <td class="age">{date|age}</td> - <td class="author">{author|person}</td> - <td class="description"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{desc|strip|firstline|escape|nonempty}</a>{inbranch%changelogbranchname}{branches%changelogbranchhead}{tags%changelogtag}</td> - </tr>
--- a/templates/paper/tags.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,45 +0,0 @@ -{header} -<title>{repo|escape}: tags</title> -<link rel="alternate" type="application/atom+xml" - href="{url}atom-tags" title="Atom feed for {repo|escape}: tags" /> -<link rel="alternate" type="application/rss+xml" - href="{url}rss-tags" title="RSS feed for {repo|escape}: tags" /> -</head> -<body> - -<div class="container"> -<div class="menu"> -<div class="logo"> -<a href="http://mercurial.selenic.com/"> -<img src="{staticurl}hglogo.png" alt="mercurial" /></a> -</div> -<ul> -<li><a href="{url}shortlog{sessionvars%urlparameter}">log</a></li> -<li><a href="{url}graph{sessionvars%urlparameter}">graph</a></li> -<li class="active">tags</li> -<li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li> -</ul> -</div> - -<div class="main"> -<h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2> -<h3>tags</h3> - -<form class="search" action="{url}log"> -{sessionvars%hiddenformentry} -<p><input name="rev" id="search1" type="text" size="30" /></p> -<div id="hint">find changesets by author, revision, -files, or words in the commit message</div> -</form> - -<table class="bigtable"> -<tr> - <th>tag</th> - <th>node</th> -</tr> -{entries%tagentry} -</table> -</div> -</div> - -{footer}
--- a/templates/raw/changeset.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,9 +0,0 @@ -{header} -# HG changeset patch -# User {author} -# Date {date|hgdate} -# Node ID {node} -{parent%changesetparent} -{desc} - -{diff}
--- a/templates/raw/error.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -{header} -error: {error}
--- a/templates/raw/fileannotate.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +0,0 @@ -{header} -{annotate%annotateline} -{footer} - -
--- a/templates/raw/filediff.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +0,0 @@ -{header} -{diff} -{footer} - -
--- a/templates/raw/index.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -{header} -{entries%indexentry}
--- a/templates/raw/manifest.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ -{header} -{dentries%direntry}{fentries%fileentry} -{footer}
--- a/templates/raw/map Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,23 +0,0 @@ -mimetype = 'text/plain; charset={encoding}' -header = '' -footer = '' -changeset = changeset.tmpl -difflineplus = '{line}' -difflineminus = '{line}' -difflineat = '{line}' -diffline = '{line}' -changesetparent = '# Parent {node}' -changesetchild = '# Child {node}' -filenodelink = '' -fileline = '{line}' -diffblock = '{lines}' -filediff = filediff.tmpl -fileannotate = fileannotate.tmpl -annotateline = '{author|user}@{rev}: {line}' -manifest = manifest.tmpl -direntry = 'drwxr-xr-x {basename}\n' -fileentry = '{permissions|permissions} {size} {basename}\n' -index = index.tmpl -notfound = notfound.tmpl -error = error.tmpl -indexentry = '{url}\n'
--- a/templates/raw/notfound.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -{header} -error: repository {repo} not found
--- a/templates/rss/changelog.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,6 +0,0 @@ -{header} - <title>{repo|escape} Changelog</title> - <description>{repo|escape} Changelog</description> - {entries%changelogentry} - </channel> -</rss> \ No newline at end of file
--- a/templates/rss/changelogentry.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,7 +0,0 @@ -<item> - <title>{desc|strip|firstline|strip|escape}</title> - <guid isPermaLink="true">{urlbase}{url}rev/{node|short}</guid> - <description><![CDATA[{desc|strip|escape|addbreaks|nonempty}]]></description> - <author>{author|obfuscate}</author> - <pubDate>{date|rfc822date}</pubDate> -</item>
--- a/templates/rss/error.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ -{header} - <title>Error</title> - <description>Error</description> - <item> - <title>Error</title> - <description>{error|escape}</description> - <guid>http://mercurial.selenic.com/#error</guid> - </item> - </channel> -</rss>
--- a/templates/rss/filelog.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,6 +0,0 @@ -{header} - <title>{repo|escape}: {file|escape} history</title> - <description>{file|escape} revision history</description> - {entries%filelogentry} - </channel> -</rss>
--- a/templates/rss/filelogentry.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,7 +0,0 @@ -<item> - <title>{desc|strip|firstline|strip|escape}</title> - <link>{urlbase}{url}log{{node|short}}/{file|urlescape}</link> - <description><![CDATA[{desc|strip|escape|addbreaks|nonempty}]]></description> - <author>{author|obfuscate}</author> - <pubDate>{date|rfc822date}</pubDate> -</item>
--- a/templates/rss/header.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="{encoding}"?> -<rss version="2.0"> - <channel> - <link>{urlbase}{url}</link> - <language>en-us</language>
--- a/templates/rss/map Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ -default = 'changelog' -mimetype = 'text/xml; charset={encoding}' -header = header.tmpl -changelog = changelog.tmpl -changelogentry = changelogentry.tmpl -filelog = filelog.tmpl -filelogentry = filelogentry.tmpl -tags = tags.tmpl -tagentry = tagentry.tmpl -error = error.tmpl
--- a/templates/rss/tagentry.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,6 +0,0 @@ -<item> - <title>{tag|escape}</title> - <link>{urlbase}{url}rev/{node|short}</link> - <description><![CDATA[{tag|strip|escape|addbreaks}]]></description> - <pubDate>{date|rfc822date}</pubDate> -</item>
--- a/templates/rss/tags.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,6 +0,0 @@ -{header} - <title>{repo|escape}: tags </title> - <description>{repo|escape} tag history</description> - {entriesnotip%tagentry} - </channel> -</rss>
--- a/templates/spartan/branches.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -{header} -<title>{repo|escape}: branches</title> -<link rel="alternate" type="application/atom+xml" - href="{url}atom-branches" title="Atom feed for {repo|escape}: branches"> -<link rel="alternate" type="application/rss+xml" - href="{url}rss-branches" title="RSS feed for {repo|escape}: branches"> -</head> -<body> - -<div class="buttons"> -<a href="{url}log{sessionvars%urlparameter}">changelog</a> -<a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> -<a href="{url}graph{sessionvars%urlparameter}">graph</a> -<a href="{url}tags{sessionvars%urlparameter}">tags</a> -<a href="{url}file/{node|short}/{sessionvars%urlparameter}">files</a> -<a type="application/rss+xml" href="{url}rss-branches">rss</a> -<a type="application/atom+xml" href="{url}atom-branches">atom</a> -</div> - -<h2>branches:</h2> - -<ul id="tagEntries"> -{entries%branchentry} -</ul> - -{footer}
--- a/templates/spartan/changelog.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,43 +0,0 @@ -{header} -<title>{repo|escape}: changelog</title> -<link rel="alternate" type="application/atom+xml" - href="{url}atom-log" title="Atom feed for {repo|escape}"> -<link rel="alternate" type="application/rss+xml" - href="{url}rss-log" title="RSS feed for {repo|escape}"> -</head> -<body> - -<div class="buttons"> -<a href="{url}shortlog/{rev}{sessionvars%urlparameter}">shortlog</a> -<a href="{url}graph{sessionvars%urlparameter}">graph</a> -<a href="{url}tags{sessionvars%urlparameter}">tags</a> -<a href="{url}branches{sessionvars%urlparameter}">branches</a> -<a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a> -{archives%archiveentry} -<a type="application/rss+xml" href="{url}rss-log">rss</a> -<a type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}">atom</a> -</div> - -<h2>changelog for {repo|escape}</h2> - -<form action="{url}log"> -{sessionvars%hiddenformentry} -<p> -<label for="search1">search:</label> -<input name="rev" id="search1" type="text" size="30"> -navigate: <small class="navigate">{changenav%naventry}</small> -</p> -</form> - -{entries%changelogentry} - -<form action="{url}log"> -{sessionvars%hiddenformentry} -<p> -<label for="search2">search:</label> -<input name="rev" id="search2" type="text" size="30"> -navigate: <small class="navigate">{changenav%naventry}</small> -</p> -</form> - -{footer}
--- a/templates/spartan/changelogentry.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,25 +0,0 @@ -<table class="logEntry parity{parity}"> - <tr> - <th class="age">{date|age}:</th> - <th class="firstline">{desc|strip|firstline|escape|nonempty}</th> - </tr> - <tr> - <th class="revision">changeset {rev}:</th> - <td class="node"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td> - </tr> - {parent%changelogparent} - {child%changelogchild} - {changelogtag} - <tr> - <th class="author">author:</th> - <td class="author">{author|obfuscate}</td> - </tr> - <tr> - <th class="date">date:</th> - <td class="date">{date|date}</td> - </tr> - <tr> - <th class="files"><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>:</th> - <td class="files">{files}</td> - </tr> -</table>
--- a/templates/spartan/changeset.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -{header} -<title>{repo|escape}: changeset {node|short}</title> -</head> -<body> - -<div class="buttons"> -<a href="{url}log/{rev}{sessionvars%urlparameter}">changelog</a> -<a href="{url}shortlog/{rev}{sessionvars%urlparameter}">shortlog</a> -<a href="{url}graph{sessionvars%urlparameter}">graph</a> -<a href="{url}tags{sessionvars%urlparameter}">tags</a> -<a href="{url}branches{sessionvars%urlparameter}">branches</a> -<a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a> -<a href="{url}raw-rev/{node|short}">raw</a> -{archives%archiveentry} -</div> - -<h2>changeset: {desc|strip|escape|firstline|nonempty}</h2> - -<table id="changesetEntry"> -<tr> - <th class="changeset">changeset {rev}:</th> - <td class="changeset"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td> -</tr> -{parent%changesetparent} -{child%changesetchild} -{changesettag} -<tr> - <th class="author">author:</th> - <td class="author">{author|obfuscate}</td> -</tr> -<tr> - <th class="date">date:</th> - <td class="date">{date|date} ({date|age})</td> -</tr> -<tr> - <th class="files">files:</th> - <td class="files">{files}</td> -</tr> -<tr> - <th class="description">description:</th> - <td class="description">{desc|strip|escape|addbreaks|nonempty}</td> -</tr> -</table> - -<div id="changesetDiff"> -{diff} -</div> - -{footer} - -
--- a/templates/spartan/error.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,15 +0,0 @@ -{header} -<title>Mercurial Error</title> -</head> -<body> - -<h2>Mercurial Error</h2> - -<p> -An error occurred while processing your request: -</p> -<p> -{error|escape} -</p> - -{footer}
--- a/templates/spartan/fileannotate.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -{header} -<title>{repo|escape}: {file|escape} annotate</title> -</head> -<body> - -<div class="buttons"> -<a href="{url}log/{rev}{sessionvars%urlparameter}">changelog</a> -<a href="{url}shortlog/{rev}{sessionvars%urlparameter}">shortlog</a> -<a href="{url}graph{sessionvars%urlparameter}">graph</a> -<a href="{url}tags{sessionvars%urlparameter}">tags</a> -<a href="{url}branches{sessionvars%urlparameter}">branches</a> -<a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> -<a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a> -<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> -<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> -<a href="{url}raw-annotate/{node|short}/{file|urlescape}">raw</a> -</div> - -<h2>Annotate {file|escape}</h2> - -<table> -<tr> - <td class="metatag">changeset {rev}:</td> - <td><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td></tr> -{parent%fileannotateparent} -{child%fileannotatechild} -<tr> - <td class="metatag">author:</td> - <td>{author|obfuscate}</td></tr> -<tr> - <td class="metatag">date:</td> - <td>{date|date} ({date|age})</td> -</tr> -<tr> - <td class="metatag">permissions:</td> - <td>{permissions|permissions}</td> -</tr> -<tr> - <td class="metatag">description:</td> - <td>{desc|strip|escape|addbreaks|nonempty}</td> -</tr> -</table> - -<table cellspacing="0" cellpadding="0"> -{annotate%annotateline} -</table> - -{footer}
--- a/templates/spartan/filediff.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -{header} -<title>{repo|escape}: {file|escape} diff</title> -</head> -<body> - -<div class="buttons"> -<a href="{url}log/{rev}{sessionvars%urlparameter}">changelog</a> -<a href="{url}shortlog/{rev}{sessionvars%urlparameter}">shortlog</a> -<a href="{url}graph{sessionvars%urlparameter}">graph</a> -<a href="{url}tags{sessionvars%urlparameter}">tags</a> -<a href="{url}branches{sessionvars%urlparameter}">branches</a> -<a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> -<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> -<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> -<a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> -<a href="{url}raw-diff/{node|short}/{file|urlescape}">raw</a> -</div> - -<h2>{file|escape}</h2> - -<table id="filediffEntry"> -<tr> - <th class="revision">revision {rev}:</th> - <td class="revision"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td> -</tr> -{parent%filediffparent} -{child%filediffchild} -</table> - -<div id="fileDiff"> -{diff} -</div> - -{footer} - -
--- a/templates/spartan/filelog.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,28 +0,0 @@ -{header} -<title>{repo|escape}: {file|escape} history</title> -<link rel="alternate" type="application/atom+xml" - href="{url}atom-log/tip/{file|urlescape}" title="Atom feed for {repo|escape}:{file}"> -<link rel="alternate" type="application/rss+xml" - href="{url}rss-log/tip/{file|urlescape}" title="RSS feed for {repo|escape}:{file}"> -</head> -<body> - -<div class="buttons"> -<a href="{url}log{sessionvars%urlparameter}">changelog</a> -<a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> -<a href="{url}graph{sessionvars%urlparameter}">graph</a> -<a href="{url}tags{sessionvars%urlparameter}">tags</a> -<a href="{url}branches{sessionvars%urlparameter}">branches</a> -<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> -<a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> -<a type="application/rss+xml" href="{url}rss-log/tip/{file|urlescape}">rss</a> -<a type="application/atom+xml" href="{url}atom-log/tip/{file|urlescape}" title="Atom feed for {repo|escape}:{file}">atom</a> -</div> - -<h2>{file|escape} revision history</h2> - -<p>navigate: <small class="navigate">{nav%filenaventry}</small></p> - -{entries%filelogentry} - -{footer}
--- a/templates/spartan/filelogentry.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,25 +0,0 @@ -<table class="logEntry parity{parity}"> - <tr> - <th class="age">{date|age}:</th> - <th class="firstline"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{desc|strip|firstline|escape|nonempty}</a></th> - </tr> - <tr> - <th class="revision">revision {filerev}:</td> - <td class="node"> - <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a> - <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">(diff)</a> - <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">(annotate)</a> - </td> - </tr> - {rename%filelogrename} - <tr> - <th class="author">author:</th> - <td class="author">{author|obfuscate}</td> - </tr> - <tr> - <th class="date">date:</th> - <td class="date">{date|date}</td> - </tr> -</table> - -
--- a/templates/spartan/filerevision.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,46 +0,0 @@ -{header} -<title>{repo|escape}:{file|escape}</title> -</head> -<body> - -<div class="buttons"> -<a href="{url}log/{rev}{sessionvars%urlparameter}">changelog</a> -<a href="{url}shortlog/{rev}{sessionvars%urlparameter}">shortlog</a> -<a href="{url}graph{sessionvars%urlparameter}">graph</a> -<a href="{url}tags{sessionvars%urlparameter}">tags</a> -<a href="{url}branches{sessionvars%urlparameter}">branches</a> -<a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> -<a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a> -<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> -<a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> -<a href="{url}raw-file/{node|short}/{file|urlescape}">raw</a> -</div> - -<h2>{file|escape}</h2> - -<table> -<tr> - <td class="metatag">changeset {rev}:</td> - <td><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td></tr> -{parent%filerevparent} -{child%filerevchild} -<tr> - <td class="metatag">author:</td> - <td>{author|obfuscate}</td></tr> -<tr> - <td class="metatag">date:</td> - <td>{date|date} ({date|age})</td></tr> -<tr> - <td class="metatag">permissions:</td> - <td>{permissions|permissions}</td></tr> -<tr> - <td class="metatag">description:</td> - <td>{desc|strip|escape|addbreaks|nonempty}</td> -</tr> -</table> - -<pre> -{text%fileline} -</pre> - -{footer}
--- a/templates/spartan/footer.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,8 +0,0 @@ -{motd} -<div class="logo"> -<a href="http://mercurial.selenic.com/"> -<img src="{staticurl}hglogo.png" width=75 height=90 border=0 alt="mercurial"></a> -</div> - -</body> -</html>
--- a/templates/spartan/graph.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,96 +0,0 @@ -{header} -<title>{repo|escape}: graph</title> -<link rel="alternate" type="application/atom+xml" - href="{url}atom-tags" title="Atom feed for {repo|escape}: tags"> -<link rel="alternate" type="application/rss+xml" - href="{url}rss-tags" title="RSS feed for {repo|escape}: tags"> -<!--[if IE]><script type="text/javascript" src="{staticurl}excanvas.js"></script><![endif]--> -</head> -<body> - -<div class="buttons"> -<a href="{url}log{sessionvars%urlparameter}">changelog</a> -<a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> -<a href="{url}tags{sessionvars%urlparameter}">tags</a> -<a href="{url}branches{sessionvars%urlparameter}">branches</a> -<a href="{url}file/{node|short}/{sessionvars%urlparameter}">files</a> -</div> - -<h2>graph</h2> - -<form action="{url}log"> -{sessionvars%hiddenformentry} -<p> -<label for="search1">search:</label> -<input name="rev" id="search1" type="text" size="30"> -navigate: <small class="navigate">{changenav%navgraphentry}</small> -</p> -</form> - -<noscript>The revision graph only works with JavaScript-enabled browsers.</noscript> - -<div id="wrapper"> -<ul id="nodebgs"></ul> -<canvas id="graph" width="224" height="{canvasheight}"></canvas> -<ul id="graphnodes"></ul> -</div> - -<script type="text/javascript" src="{staticurl}graph.js"></script> -<script type="text/javascript"> -<!-- hide script content - -var data = {jsdata|json}; -var graph = new Graph(); -graph.scale({bg_height}); - -graph.edge = function(x0, y0, x1, y1, color) { - - this.setColor(color, 0.0, 0.65); - this.ctx.beginPath(); - this.ctx.moveTo(x0, y0); - this.ctx.lineTo(x1, y1); - this.ctx.stroke(); - -} - -var revlink = '<li style="_STYLE"><span class="desc">'; -revlink += '<a href="{url}rev/_NODEID{sessionvars%urlparameter}" title="_NODEID">_DESC</a>'; -revlink += '</span><span class="info">_DATE ago, by _USER</span></li>'; - -graph.vertex = function(x, y, color, parity, cur) { - - this.ctx.beginPath(); - color = this.setColor(color, 0.25, 0.75); - this.ctx.arc(x, y, radius, 0, Math.PI * 2, true); - this.ctx.fill(); - - var bg = '<li class="bg parity' + parity + '"></li>'; - var left = (this.columns + 1) * this.bg_height; - var nstyle = 'padding-left: ' + left + 'px;'; - var item = revlink.replace(/_STYLE/, nstyle); - item = item.replace(/_PARITY/, 'parity' + parity); - item = item.replace(/_NODEID/, cur[0]); - item = item.replace(/_NODEID/, cur[0]); - item = item.replace(/_DESC/, cur[3]); - item = item.replace(/_USER/, cur[4]); - item = item.replace(/_DATE/, cur[5]); - - return [bg, item]; - -} - -graph.render(data); - -// stop hiding script --> -</script> - -<form action="{url}log"> -{sessionvars%hiddenformentry} -<p> -<label for="search1">search:</label> -<input name="rev" id="search1" type="text" size="30"> -navigate: <small class="navigate">{changenav%navgraphentry}</small> -</p> -</form> - -{footer}
--- a/templates/spartan/header.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,6 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<html> -<head> -<link rel="icon" href="{staticurl}hgicon.png" type="image/png"> -<meta name="robots" content="index, nofollow" /> -<link rel="stylesheet" href="{staticurl}style.css" type="text/css" />
--- a/templates/spartan/index.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,19 +0,0 @@ -{header} -<title>Mercurial repositories index</title> -</head> -<body> - -<h2>Mercurial Repositories</h2> - -<table> - <tr> - <td><a href="?sort={sort_name}">Name</a></td> - <td><a href="?sort={sort_description}">Description</a></td> - <td><a href="?sort={sort_contact}">Contact</a></td> - <td><a href="?sort={sort_lastchange}">Last change</a></td> - <td> </td> - </tr> - {entries%indexentry} -</table> - -{footer}
--- a/templates/spartan/manifest.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,28 +0,0 @@ -{header} -<title>{repo|escape}: files for changeset {node|short}</title> -</head> -<body> - -<div class="buttons"> -<a href="{url}log/{rev}{sessionvars%urlparameter}">changelog</a> -<a href="{url}shortlog/{rev}{sessionvars%urlparameter}">shortlog</a> -<a href="{url}graph{sessionvars%urlparameter}">graph</a> -<a href="{url}tags{sessionvars%urlparameter}">tags</a> -<a href="{url}branches{sessionvars%urlparameter}">branches</a> -<a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> -{archives%archiveentry} -</div> - -<h2>files for changeset {node|short}: {path|escape}</h2> - -<table cellpadding="0" cellspacing="0"> -<tr class="parity{upparity}"> - <td><tt>drwxr-xr-x</tt> - <td> - <td> - <td><a href="{url}file/{node|short}{up|urlescape}{sessionvars%urlparameter}">[up]</a> -</tr> -{dentries%direntry} -{fentries%fileentry} -</table> -{footer}
--- a/templates/spartan/map Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,178 +0,0 @@ -default = 'shortlog' -mimetype = 'text/html; charset={encoding}' -header = header.tmpl -footer = footer.tmpl -search = search.tmpl -changelog = changelog.tmpl -shortlog = shortlog.tmpl -shortlogentry = shortlogentry.tmpl -graph = graph.tmpl -naventry = '<a href="{url}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> ' -navshortentry = '<a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> ' -navgraphentry = '<a href="{url}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> ' -filenaventry = '<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a> ' -filedifflink = '<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> ' -filenodelink = '<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> ' -filenolink = '{file|escape} ' -fileellipses = '...' -changelogentry = changelogentry.tmpl -searchentry = changelogentry.tmpl -changeset = changeset.tmpl -manifest = manifest.tmpl - -direntry = ' - <tr class="parity{parity}"> - <td><tt>drwxr-xr-x</tt> - <td> - <td> - <td> - <a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">{basename|escape}/</a> - <a href="{url}file/{node|short}{path|urlescape}/{emptydirs|urlescape}{sessionvars%urlparameter}"> - {emptydirs|urlescape} - </a>' - -fileentry = ' - <tr class="parity{parity}"> - <td><tt>{permissions|permissions}</tt> - <td align=right><tt class="date">{date|isodate}</tt> - <td align=right><tt>{size}</tt> - <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{basename|escape}</a>' - -filerevision = filerevision.tmpl -fileannotate = fileannotate.tmpl -filediff = filediff.tmpl -filelog = filelog.tmpl -fileline = '<div class="parity{parity}"><a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</div>' -filelogentry = filelogentry.tmpl - -# The ensures that all table cells have content (even if there -# is an empty line in the annotated file), which in turn ensures that -# all table rows have equal height. -annotateline = ' - <tr class="parity{parity}"> - <td class="annotate"> - <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}" - title="{node|short}: {desc|escape|firstline}">{author|user}@{rev}</a> - </td> - <td> - <a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a> - </td> - <td><pre> {line|escape}</pre></td> - </tr>' -difflineplus = '<span class="plusline"><a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>{line|escape}</span>' -difflineminus = '<span class="minusline"><a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>{line|escape}</span>' -difflineat = '<span class="atline"><a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>{line|escape}</span>' -diffline = '<a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>{line|escape}' -changelogparent = ' - <tr> - <th class="parent">parent {rev}:</th> - <td class="parent"> - <a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> - </td> - </tr>' -changesetparent = ' - <tr> - <th class="parent">parent {rev}:</th> - <td class="parent"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td> - </tr>' -filerevparent = ' - <tr> - <td class="metatag">parent:</td> - <td> - <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}"> - {rename%filerename}{node|short} - </a> - </td> - </tr>' -filerename = '{file|escape}@' -filelogrename = ' - <tr> - <th>base:</th> - <td> - <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}"> - {file|escape}@{node|short} - </a> - </td> - </tr>' -fileannotateparent = ' - <tr> - <td class="metatag">parent:</td> - <td> - <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}"> - {rename%filerename}{node|short} - </a> - </td> - </tr>' -changesetchild = ' - <tr> - <th class="child">child {rev}:</th> - <td class="child"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td> - </tr>' -changelogchild = ' - <tr> - <th class="child">child {rev}:</th> - <td class="child"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td> - </tr>' -filerevchild = ' - <tr> - <td class="metatag">child:</td> - <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td> - </tr>' -fileannotatechild = ' - <tr> - <td class="metatag">child:</td> - <td><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td> - </tr>' -tags = tags.tmpl -tagentry = ' - <li class="tagEntry parity{parity}"> - <tt class="node">{node}</tt> - <a href="{url}rev/{node|short}{sessionvars%urlparameter}">{tag|escape}</a> - </li>' -branches = branches.tmpl -branchentry = ' - <li class="tagEntry parity{parity}"> - <tt class="node">{node}</tt> - <a href="{url}shortlog/{node|short}{sessionvars%urlparameter}" class="{status}">{branch|escape}</a> - </li>' -diffblock = '<pre class="parity{parity}">{lines}</pre>' -changelogtag = '<tr><th class="tag">tag:</th><td class="tag">{tag|escape}</td></tr>' -changesettag = '<tr><th class="tag">tag:</th><td class="tag">{tag|escape}</td></tr>' -filediffparent = ' - <tr> - <th class="parent">parent {rev}:</th> - <td class="parent"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td> - </tr>' -filelogparent = ' - <tr> - <th>parent {rev}:</th> - <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td> - </tr>' -filediffchild = ' - <tr> - <th class="child">child {rev}:</th> - <td class="child"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td> - </tr>' -filelogchild = ' - <tr> - <th>child {rev}:</th> - <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td> - </tr>' -indexentry = ' - <tr class="parity{parity}"> - <td><a href="{url}{sessionvars%urlparameter}">{name|escape}</a></td> - <td>{description}</td> - <td>{contact|obfuscate}</td> - <td class="age">{lastchange|age} ago</td> - <td class="indexlinks"> - <a href="{url}rss-log">RSS</a> - <a href="{url}atom-log">Atom</a> - {archives%archiveentry} - </td> - </tr>' -index = index.tmpl -archiveentry = '<a href="{url}archive/{node|short}{extension|urlescape}">{type|escape}</a> ' -notfound = notfound.tmpl -error = error.tmpl -urlparameter = '{separator}{name}={value|urlescape}' -hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'
--- a/templates/spartan/notfound.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{header} -<title>Mercurial repository not found</title> -</head> -<body> - -<h2>Mercurial repository not found</h2> - -The specified repository "{repo|escape}" is unknown, sorry. - -Please go back to the <a href="{url}">main repository list page</a>. - -{footer}
--- a/templates/spartan/search.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -{header} -<title>{repo|escape}: searching for {query|escape}</title> -</head> -<body> - -<div class="buttons"> -<a href="{url}log{sessionvars%urlparameter}">changelog</a> -<a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> -<a href="{url}graph{sessionvars%urlparameter}">graph</a> -<a href="{url}tags{sessionvars%urlparameter}">tags</a> -<a href="{url}branches{sessionvars%urlparameter}">branches</a> -<a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a> -{archives%archiveentry} -</div> - -<h2>searching for {query|escape}</h2> - -<form> -{sessionvars%hiddenformentry} -<p> -search: -<input name="rev" type="text" width="30" value="{query|escape}"> -</p> -</form> - -{entries} - -<form> -{sessionvars%hiddenformentry} -<p> -search: -<input name="rev" type="text" width="30" value="{query|escape}"> -</p> -</form> - -{footer}
--- a/templates/spartan/shortlog.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,43 +0,0 @@ -{header} -<title>{repo|escape}: shortlog</title> -<link rel="alternate" type="application/atom+xml" - href="{url}atom-log" title="Atom feed for {repo|escape}"> -<link rel="alternate" type="application/rss+xml" - href="{url}rss-log" title="RSS feed for {repo|escape}"> -</head> -<body> - -<div class="buttons"> -<a href="{url}log/{rev}{sessionvars%urlparameter}">changelog</a> -<a href="{url}graph{sessionvars%urlparameter}">graph</a> -<a href="{url}tags{sessionvars%urlparameter}">tags</a> -<a href="{url}branches{sessionvars%urlparameter}">branches</a> -<a href="{url}file/{node|short}/{sessionvars%urlparameter}">files</a> -{archives%archiveentry} -<a type="application/rss+xml" href="{url}rss-log">rss</a> -<a type="application/rss+xml" href="{url}atom-log" title="Atom feed for {repo|escape}">atom</a> -</div> - -<h2>shortlog for {repo|escape}</h2> - -<form action="{url}log"> -{sessionvars%hiddenformentry} -<p> -<label for="search1">search:</label> -<input name="rev" id="search1" type="text" size="30"> -navigate: <small class="navigate">{changenav%navshortentry}</small> -</p> -</form> - -{entries%shortlogentry} - -<form action="{url}log"> -{sessionvars%hiddenformentry} -<p> -<label for="search2">search:</label> -<input name="rev" id="search2" type="text" size="30"> -navigate: <small class="navigate">{changenav%navshortentry}</small> -</p> -</form> - -{footer}
--- a/templates/spartan/shortlogentry.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,7 +0,0 @@ -<table class="slogEntry parity{parity}"> - <tr> - <td class="age">{date|age}</td> - <td class="author">{author|person}</td> - <td class="node"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{desc|strip|firstline|escape|nonempty}</a></td> - </tr> -</table>
--- a/templates/spartan/tags.tmpl Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -{header} -<title>{repo|escape}: tags</title> -<link rel="alternate" type="application/atom+xml" - href="{url}atom-tags" title="Atom feed for {repo|escape}: tags"> -<link rel="alternate" type="application/rss+xml" - href="{url}rss-tags" title="RSS feed for {repo|escape}: tags"> -</head> -<body> - -<div class="buttons"> -<a href="{url}log{sessionvars%urlparameter}">changelog</a> -<a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> -<a href="{url}graph{sessionvars%urlparameter}">graph</a> -<a href="{url}branches{sessionvars%urlparameter}">branches</a> -<a href="{url}file/{node|short}/{sessionvars%urlparameter}">files</a> -<a type="application/rss+xml" href="{url}rss-tags">rss</a> -<a type="application/atom+xml" href="{url}atom-tags">atom</a> -</div> - -<h2>tags:</h2> - -<ul id="tagEntries"> -{entries%tagentry} -</ul> - -{footer}
--- a/templates/static/excanvas.js Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,19 +0,0 @@ -if(!window.CanvasRenderingContext2D){(function(){var I=Math,i=I.round,L=I.sin,M=I.cos,m=10,A=m/2,Q={init:function(a){var b=a||document;if(/MSIE/.test(navigator.userAgent)&&!window.opera){var c=this;b.attachEvent("onreadystatechange",function(){c.r(b)})}},r:function(a){if(a.readyState=="complete"){if(!a.namespaces["s"]){a.namespaces.add("g_vml_","urn:schemas-microsoft-com:vml")}var b=a.createStyleSheet();b.cssText="canvas{display:inline-block;overflow:hidden;text-align:left;width:300px;height:150px}g_vml_\\:*{behavior:url(#default#VML)}"; -var c=a.getElementsByTagName("canvas");for(var d=0;d<c.length;d++){if(!c[d].getContext){this.initElement(c[d])}}}},q:function(a){var b=a.outerHTML,c=a.ownerDocument.createElement(b);if(b.slice(-2)!="/>"){var d="/"+a.tagName,e;while((e=a.nextSibling)&&e.tagName!=d){e.removeNode()}if(e){e.removeNode()}}a.parentNode.replaceChild(c,a);return c},initElement:function(a){a=this.q(a);a.getContext=function(){if(this.l){return this.l}return this.l=new K(this)};a.attachEvent("onpropertychange",V);a.attachEvent("onresize", -W);var b=a.attributes;if(b.width&&b.width.specified){a.style.width=b.width.nodeValue+"px"}else{a.width=a.clientWidth}if(b.height&&b.height.specified){a.style.height=b.height.nodeValue+"px"}else{a.height=a.clientHeight}return a}};function V(a){var b=a.srcElement;switch(a.propertyName){case "width":b.style.width=b.attributes.width.nodeValue+"px";b.getContext().clearRect();break;case "height":b.style.height=b.attributes.height.nodeValue+"px";b.getContext().clearRect();break}}function W(a){var b=a.srcElement; -if(b.firstChild){b.firstChild.style.width=b.clientWidth+"px";b.firstChild.style.height=b.clientHeight+"px"}}Q.init();var R=[];for(var E=0;E<16;E++){for(var F=0;F<16;F++){R[E*16+F]=E.toString(16)+F.toString(16)}}function J(){return[[1,0,0],[0,1,0],[0,0,1]]}function G(a,b){var c=J();for(var d=0;d<3;d++){for(var e=0;e<3;e++){var g=0;for(var h=0;h<3;h++){g+=a[d][h]*b[h][e]}c[d][e]=g}}return c}function N(a,b){b.fillStyle=a.fillStyle;b.lineCap=a.lineCap;b.lineJoin=a.lineJoin;b.lineWidth=a.lineWidth;b.miterLimit= -a.miterLimit;b.shadowBlur=a.shadowBlur;b.shadowColor=a.shadowColor;b.shadowOffsetX=a.shadowOffsetX;b.shadowOffsetY=a.shadowOffsetY;b.strokeStyle=a.strokeStyle;b.d=a.d;b.e=a.e}function O(a){var b,c=1;a=String(a);if(a.substring(0,3)=="rgb"){var d=a.indexOf("(",3),e=a.indexOf(")",d+1),g=a.substring(d+1,e).split(",");b="#";for(var h=0;h<3;h++){b+=R[Number(g[h])]}if(g.length==4&&a.substr(3,1)=="a"){c=g[3]}}else{b=a}return[b,c]}function S(a){switch(a){case "butt":return"flat";case "round":return"round"; -case "square":default:return"square"}}function K(a){this.a=J();this.m=[];this.k=[];this.c=[];this.strokeStyle="#000";this.fillStyle="#000";this.lineWidth=1;this.lineJoin="miter";this.lineCap="butt";this.miterLimit=m*1;this.globalAlpha=1;this.canvas=a;var b=a.ownerDocument.createElement("div");b.style.width=a.clientWidth+"px";b.style.height=a.clientHeight+"px";b.style.overflow="hidden";b.style.position="absolute";a.appendChild(b);this.j=b;this.d=1;this.e=1}var j=K.prototype;j.clearRect=function(){this.j.innerHTML= -"";this.c=[]};j.beginPath=function(){this.c=[]};j.moveTo=function(a,b){this.c.push({type:"moveTo",x:a,y:b});this.f=a;this.g=b};j.lineTo=function(a,b){this.c.push({type:"lineTo",x:a,y:b});this.f=a;this.g=b};j.bezierCurveTo=function(a,b,c,d,e,g){this.c.push({type:"bezierCurveTo",cp1x:a,cp1y:b,cp2x:c,cp2y:d,x:e,y:g});this.f=e;this.g=g};j.quadraticCurveTo=function(a,b,c,d){var e=this.f+0.6666666666666666*(a-this.f),g=this.g+0.6666666666666666*(b-this.g),h=e+(c-this.f)/3,l=g+(d-this.g)/3;this.bezierCurveTo(e, -g,h,l,c,d)};j.arc=function(a,b,c,d,e,g){c*=m;var h=g?"at":"wa",l=a+M(d)*c-A,n=b+L(d)*c-A,o=a+M(e)*c-A,f=b+L(e)*c-A;if(l==o&&!g){l+=0.125}this.c.push({type:h,x:a,y:b,radius:c,xStart:l,yStart:n,xEnd:o,yEnd:f})};j.rect=function(a,b,c,d){this.moveTo(a,b);this.lineTo(a+c,b);this.lineTo(a+c,b+d);this.lineTo(a,b+d);this.closePath()};j.strokeRect=function(a,b,c,d){this.beginPath();this.moveTo(a,b);this.lineTo(a+c,b);this.lineTo(a+c,b+d);this.lineTo(a,b+d);this.closePath();this.stroke()};j.fillRect=function(a, -b,c,d){this.beginPath();this.moveTo(a,b);this.lineTo(a+c,b);this.lineTo(a+c,b+d);this.lineTo(a,b+d);this.closePath();this.fill()};j.createLinearGradient=function(a,b,c,d){var e=new H("gradient");return e};j.createRadialGradient=function(a,b,c,d,e,g){var h=new H("gradientradial");h.n=c;h.o=g;h.i.x=a;h.i.y=b;return h};j.drawImage=function(a,b){var c,d,e,g,h,l,n,o,f=a.runtimeStyle.width,k=a.runtimeStyle.height;a.runtimeStyle.width="auto";a.runtimeStyle.height="auto";var q=a.width,r=a.height;a.runtimeStyle.width= -f;a.runtimeStyle.height=k;if(arguments.length==3){c=arguments[1];d=arguments[2];h=(l=0);n=(e=q);o=(g=r)}else if(arguments.length==5){c=arguments[1];d=arguments[2];e=arguments[3];g=arguments[4];h=(l=0);n=q;o=r}else if(arguments.length==9){h=arguments[1];l=arguments[2];n=arguments[3];o=arguments[4];c=arguments[5];d=arguments[6];e=arguments[7];g=arguments[8]}else{throw"Invalid number of arguments";}var s=this.b(c,d),t=[],v=10,w=10;t.push(" <g_vml_:group",' coordsize="',m*v,",",m*w,'"',' coordorigin="0,0"', -' style="width:',v,";height:",w,";position:absolute;");if(this.a[0][0]!=1||this.a[0][1]){var x=[];x.push("M11='",this.a[0][0],"',","M12='",this.a[1][0],"',","M21='",this.a[0][1],"',","M22='",this.a[1][1],"',","Dx='",i(s.x/m),"',","Dy='",i(s.y/m),"'");var p=s,y=this.b(c+e,d),z=this.b(c,d+g),B=this.b(c+e,d+g);p.x=Math.max(p.x,y.x,z.x,B.x);p.y=Math.max(p.y,y.y,z.y,B.y);t.push("padding:0 ",i(p.x/m),"px ",i(p.y/m),"px 0;filter:progid:DXImageTransform.Microsoft.Matrix(",x.join(""),", sizingmethod='clip');")}else{t.push("top:", -i(s.y/m),"px;left:",i(s.x/m),"px;")}t.push(' ">','<g_vml_:image src="',a.src,'"',' style="width:',m*e,";"," height:",m*g,';"',' cropleft="',h/q,'"',' croptop="',l/r,'"',' cropright="',(q-h-n)/q,'"',' cropbottom="',(r-l-o)/r,'"'," />","</g_vml_:group>");this.j.insertAdjacentHTML("BeforeEnd",t.join(""))};j.stroke=function(a){var b=[],c=O(a?this.fillStyle:this.strokeStyle),d=c[0],e=c[1]*this.globalAlpha,g=10,h=10;b.push("<g_vml_:shape",' fillcolor="',d,'"',' filled="',Boolean(a),'"',' style="position:absolute;width:', -g,";height:",h,';"',' coordorigin="0 0" coordsize="',m*g," ",m*h,'"',' stroked="',!a,'"',' strokeweight="',this.lineWidth,'"',' strokecolor="',d,'"',' path="');var l={x:null,y:null},n={x:null,y:null};for(var o=0;o<this.c.length;o++){var f=this.c[o];if(f.type=="moveTo"){b.push(" m ");var k=this.b(f.x,f.y);b.push(i(k.x),",",i(k.y))}else if(f.type=="lineTo"){b.push(" l ");var k=this.b(f.x,f.y);b.push(i(k.x),",",i(k.y))}else if(f.type=="close"){b.push(" x ")}else if(f.type=="bezierCurveTo"){b.push(" c "); -var k=this.b(f.x,f.y),q=this.b(f.cp1x,f.cp1y),r=this.b(f.cp2x,f.cp2y);b.push(i(q.x),",",i(q.y),",",i(r.x),",",i(r.y),",",i(k.x),",",i(k.y))}else if(f.type=="at"||f.type=="wa"){b.push(" ",f.type," ");var k=this.b(f.x,f.y),s=this.b(f.xStart,f.yStart),t=this.b(f.xEnd,f.yEnd);b.push(i(k.x-this.d*f.radius),",",i(k.y-this.e*f.radius)," ",i(k.x+this.d*f.radius),",",i(k.y+this.e*f.radius)," ",i(s.x),",",i(s.y)," ",i(t.x),",",i(t.y))}if(k){if(l.x==null||k.x<l.x){l.x=k.x}if(n.x==null||k.x>n.x){n.x=k.x}if(l.y== -null||k.y<l.y){l.y=k.y}if(n.y==null||k.y>n.y){n.y=k.y}}}b.push(' ">');if(typeof this.fillStyle=="object"){var v={x:"50%",y:"50%"},w=n.x-l.x,x=n.y-l.y,p=w>x?w:x;v.x=i(this.fillStyle.i.x/w*100+50)+"%";v.y=i(this.fillStyle.i.y/x*100+50)+"%";var y=[];if(this.fillStyle.p=="gradientradial"){var z=this.fillStyle.n/p*100,B=this.fillStyle.o/p*100-z}else{var z=0,B=100}var C={offset:null,color:null},D={offset:null,color:null};this.fillStyle.h.sort(function(T,U){return T.offset-U.offset});for(var o=0;o<this.fillStyle.h.length;o++){var u= -this.fillStyle.h[o];y.push(u.offset*B+z,"% ",u.color,",");if(u.offset>C.offset||C.offset==null){C.offset=u.offset;C.color=u.color}if(u.offset<D.offset||D.offset==null){D.offset=u.offset;D.color=u.color}}y.pop();b.push("<g_vml_:fill",' color="',D.color,'"',' color2="',C.color,'"',' type="',this.fillStyle.p,'"',' focusposition="',v.x,", ",v.y,'"',' colors="',y.join(""),'"',' opacity="',e,'" />')}else if(a){b.push('<g_vml_:fill color="',d,'" opacity="',e,'" />')}else{b.push("<g_vml_:stroke",' opacity="', -e,'"',' joinstyle="',this.lineJoin,'"',' miterlimit="',this.miterLimit,'"',' endcap="',S(this.lineCap),'"',' weight="',this.lineWidth,'px"',' color="',d,'" />')}b.push("</g_vml_:shape>");this.j.insertAdjacentHTML("beforeEnd",b.join(""));this.c=[]};j.fill=function(){this.stroke(true)};j.closePath=function(){this.c.push({type:"close"})};j.b=function(a,b){return{x:m*(a*this.a[0][0]+b*this.a[1][0]+this.a[2][0])-A,y:m*(a*this.a[0][1]+b*this.a[1][1]+this.a[2][1])-A}};j.save=function(){var a={};N(this,a); -this.k.push(a);this.m.push(this.a);this.a=G(J(),this.a)};j.restore=function(){N(this.k.pop(),this);this.a=this.m.pop()};j.translate=function(a,b){var c=[[1,0,0],[0,1,0],[a,b,1]];this.a=G(c,this.a)};j.rotate=function(a){var b=M(a),c=L(a),d=[[b,c,0],[-c,b,0],[0,0,1]];this.a=G(d,this.a)};j.scale=function(a,b){this.d*=a;this.e*=b;var c=[[a,0,0],[0,b,0],[0,0,1]];this.a=G(c,this.a)};j.clip=function(){};j.arcTo=function(){};j.createPattern=function(){return new P};function H(a){this.p=a;this.n=0;this.o= -0;this.h=[];this.i={x:0,y:0}}H.prototype.addColorStop=function(a,b){b=O(b);this.h.push({offset:1-a,color:b})};function P(){}G_vmlCanvasManager=Q;CanvasRenderingContext2D=K;CanvasGradient=H;CanvasPattern=P})()};
--- a/templates/static/graph.js Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,137 +0,0 @@ -// branch_renderer.js - Rendering of branch DAGs on the client side -// -// Copyright 2008 Dirkjan Ochtman <dirkjan AT ochtman DOT nl> -// Copyright 2006 Alexander Schremmer <alex AT alexanderweb DOT de> -// -// derived from code written by Scott James Remnant <scott@ubuntu.com> -// Copyright 2005 Canonical Ltd. -// -// This software may be used and distributed according to the terms -// of the GNU General Public License, incorporated herein by reference. - -var colors = [ - [ 1.0, 0.0, 0.0 ], - [ 1.0, 1.0, 0.0 ], - [ 0.0, 1.0, 0.0 ], - [ 0.0, 1.0, 1.0 ], - [ 0.0, 0.0, 1.0 ], - [ 1.0, 0.0, 1.0 ] -]; - -function Graph() { - - this.canvas = document.getElementById('graph'); - if (navigator.userAgent.indexOf('MSIE') >= 0) this.canvas = window.G_vmlCanvasManager.initElement(this.canvas); - this.ctx = this.canvas.getContext('2d'); - this.ctx.strokeStyle = 'rgb(0, 0, 0)'; - this.ctx.fillStyle = 'rgb(0, 0, 0)'; - this.cur = [0, 0]; - this.line_width = 3; - this.bg = [0, 4]; - this.cell = [2, 0]; - this.columns = 0; - this.revlink = ''; - - this.scale = function(height) { - this.bg_height = height; - this.box_size = Math.floor(this.bg_height / 1.2); - this.cell_height = this.box_size; - } - - function colorPart(num) { - num *= 255 - num = num < 0 ? 0 : num; - num = num > 255 ? 255 : num; - var digits = Math.round(num).toString(16); - if (num < 16) { - return '0' + digits; - } else { - return digits; - } - } - - this.setColor = function(color, bg, fg) { - - // Set the colour. - // - // Picks a distinct colour based on an internal wheel; the bg - // parameter provides the value that should be assigned to the 'zero' - // colours and the fg parameter provides the multiplier that should be - // applied to the foreground colours. - - color %= colors.length; - var red = (colors[color][0] * fg) || bg; - var green = (colors[color][1] * fg) || bg; - var blue = (colors[color][2] * fg) || bg; - red = Math.round(red * 255); - green = Math.round(green * 255); - blue = Math.round(blue * 255); - var s = 'rgb(' + red + ', ' + green + ', ' + blue + ')'; - this.ctx.strokeStyle = s; - this.ctx.fillStyle = s; - return s; - - } - - this.render = function(data) { - - var backgrounds = ''; - var nodedata = ''; - - for (var i in data) { - - var parity = i % 2; - this.cell[1] += this.bg_height; - this.bg[1] += this.bg_height; - - var cur = data[i]; - var node = cur[1]; - var edges = cur[2]; - var fold = false; - - for (var j in edges) { - - line = edges[j]; - start = line[0]; - end = line[1]; - color = line[2]; - - if (end > this.columns || start > this.columns) { - this.columns += 1; - } - - if (start == this.columns && start > end) { - var fold = true; - } - - x0 = this.cell[0] + this.box_size * start + this.box_size / 2; - y0 = this.bg[1] - this.bg_height / 2; - x1 = this.cell[0] + this.box_size * end + this.box_size / 2; - y1 = this.bg[1] + this.bg_height / 2; - - this.edge(x0, y0, x1, y1, color); - - } - - // Draw the revision node in the right column - - column = node[0] - color = node[1] - - radius = this.box_size / 8; - x = this.cell[0] + this.box_size * column + this.box_size / 2; - y = this.bg[1] - this.bg_height / 2; - var add = this.vertex(x, y, color, parity, cur); - backgrounds += add[0]; - nodedata += add[1]; - - if (fold) this.columns -= 1; - - } - - document.getElementById('nodebgs').innerHTML += backgrounds; - document.getElementById('graphnodes').innerHTML += nodedata; - - } - -}
--- a/templates/static/style-coal.css Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,265 +0,0 @@ -body { - margin: 0; - padding: 0; - background: black url(background.png) repeat-x; - font-family: sans-serif; -} - -.container { - padding-right: 150px; -} - -.main { - position: relative; - background: white; - padding: 2em; - border-right: 15px solid black; - border-bottom: 15px solid black; -} - -#.main { - width: 98%; -} - -.overflow { - width: 100%; - overflow: auto; -} - -.menu { - background: #999; - padding: 10px; - width: 75px; - margin: 0; - font-size: 80%; - text-align: left; - position: fixed; - top: 27px; - left: auto; - right: 27px; -} - -#.menu { - position: absolute !important; - top:expression(eval(document.body.scrollTop + 27)); -} - -.menu ul { - list-style: none; - padding: 0; - margin: 10px 0 0 0; -} - -.menu li { - margin-bottom: 3px; - padding: 2px 4px; - background: white; - color: black; - font-weight: normal; -} - -.menu li.active { - background: black; - color: white; -} - -.menu img { - width: 75px; - height: 90px; - border: 0; -} - -.menu a { color: black; display: block; } - -.search { - position: absolute; - top: .7em; - right: 2em; -} - -form.search div#hint { - display: none; - position: absolute; - top: 40px; - right: 0px; - width: 190px; - padding: 5px; - background: #ffc; - font-size: 70%; - border: 1px solid yellow; - -moz-border-radius: 5px; /* this works only in camino/firefox */ - -webkit-border-radius: 5px; /* this is just for Safari */ -} - -form.search:hover div#hint { display: block; } - -a { text-decoration:none; } -.age { white-space:nowrap; } -.date { white-space:nowrap; } -.indexlinks { white-space:nowrap; } -.parity0 { background-color: #f0f0f0; } -.parity1 { background-color: white; } -.plusline { color: green; } -.minusline { color: #dc143c; } /* crimson */ -.atline { color: purple; } - -.navigate { - text-align: right; - font-size: 60%; - margin: 1em 0; -} - -.tag { - color: #999; - font-size: 70%; - font-weight: normal; - margin-left: .5em; - vertical-align: baseline; -} - -.branchhead { - color: #000; - font-size: 80%; - font-weight: normal; - margin-left: .5em; - vertical-align: baseline; -} - -ul#graphnodes .branchhead { - font-size: 75%; -} - -.branchname { - color: #000; - font-size: 60%; - font-weight: normal; - margin-left: .5em; - vertical-align: baseline; -} - -h3 .branchname { - font-size: 80%; -} - -/* Common */ -pre { margin: 0; } - -h2 { font-size: 120%; border-bottom: 1px solid #999; } -h2 a { color: #000; } -h3 { - margin-top: -.7em; - font-size: 100%; -} - -/* log and tags tables */ -.bigtable { - border-bottom: 1px solid #999; - border-collapse: collapse; - font-size: 90%; - width: 100%; - font-weight: normal; - text-align: left; -} - -.bigtable td { - vertical-align: top; -} - -.bigtable th { - padding: 1px 4px; - border-bottom: 1px solid #999; -} -.bigtable tr { border: none; } -.bigtable .age { width: 6em; } -.bigtable .author { width: 12em; } -.bigtable .description { } -.bigtable .node { width: 5em; font-family: monospace;} -.bigtable .lineno { width: 2em; text-align: right;} -.bigtable .lineno a { color: #999; font-size: smaller; font-family: monospace;} -.bigtable .permissions { width: 8em; text-align: left;} -.bigtable .size { width: 5em; text-align: right; } -.bigtable .annotate { text-align: right; } -.bigtable td.annotate { font-size: smaller; } -.bigtable td.source { font-size: inherit; } - -.source, .sourcefirst, .sourcelast { - font-family: monospace; - white-space: pre; - padding: 1px 4px; - font-size: 90%; -} -.sourcefirst { border-bottom: 1px solid #999; font-weight: bold; } -.sourcelast { border-top: 1px solid #999; } -.source a { color: #999; font-size: smaller; font-family: monospace;} -.bottomline { border-bottom: 1px solid #999; } - -.fileline { font-family: monospace; } -.fileline img { border: 0; } - -.tagEntry .closed { color: #99f; } - -/* Changeset entry */ -#changesetEntry { - border-collapse: collapse; - font-size: 90%; - width: 100%; - margin-bottom: 1em; -} - -#changesetEntry th { - padding: 1px 4px; - width: 4em; - text-align: right; - font-weight: normal; - color: #999; - margin-right: .5em; - vertical-align: top; -} - -div.description { - border-left: 3px solid #999; - margin: 1em 0 1em 0; - padding: .3em; -} - -/* Graph */ -div#wrapper { - position: relative; - border-top: 1px solid black; - border-bottom: 1px solid black; - margin: 0; - padding: 0; -} - -canvas { - position: absolute; - z-index: 5; - top: -0.7em; - margin: 0; -} - -ul#graphnodes { - position: absolute; - z-index: 10; - top: -1.0em; - list-style: none inside none; - padding: 0; -} - -ul#nodebgs { - list-style: none inside none; - padding: 0; - margin: 0; - top: -0.7em; -} - -ul#graphnodes li, ul#nodebgs li { - height: 39px; -} - -ul#graphnodes li .info { - display: block; - font-size: 70%; - position: relative; - top: -3px; -}
--- a/templates/static/style-gitweb.css Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,123 +0,0 @@ -body { font-family: sans-serif; font-size: 12px; margin:0px; border:solid #d9d8d1; border-width:1px; margin:10px; } -a { color:#0000cc; } -a:hover, a:visited, a:active { color:#880000; } -div.page_header { height:25px; padding:8px; font-size:18px; font-weight:bold; background-color:#d9d8d1; } -div.page_header a:visited { color:#0000cc; } -div.page_header a:hover { color:#880000; } -div.page_nav { padding:8px; } -div.page_nav a:visited { color:#0000cc; } -div.page_path { padding:8px; border:solid #d9d8d1; border-width:0px 0px 1px} -div.page_footer { padding:4px 8px; background-color: #d9d8d1; } -div.page_footer_text { float:left; color:#555555; font-style:italic; } -div.page_body { padding:8px; } -div.title, a.title { - display:block; padding:6px 8px; - font-weight:bold; background-color:#edece6; text-decoration:none; color:#000000; -} -a.title:hover { background-color: #d9d8d1; } -div.title_text { padding:6px 0px; border: solid #d9d8d1; border-width:0px 0px 1px; } -div.log_body { padding:8px 8px 8px 150px; } -.age { white-space:nowrap; } -span.age { position:relative; float:left; width:142px; font-style:italic; } -div.log_link { - padding:0px 8px; - font-size:10px; font-family:sans-serif; font-style:normal; - position:relative; float:left; width:136px; -} -div.list_head { padding:6px 8px 4px; border:solid #d9d8d1; border-width:1px 0px 0px; font-style:italic; } -a.list { text-decoration:none; color:#000000; } -a.list:hover { text-decoration:underline; color:#880000; } -table { padding:8px 4px; } -th { padding:2px 5px; font-size:12px; text-align:left; } -tr.light:hover, .parity0:hover { background-color:#edece6; } -tr.dark, .parity1 { background-color:#f6f6f0; } -tr.dark:hover, .parity1:hover { background-color:#edece6; } -td { padding:2px 5px; font-size:12px; vertical-align:top; } -td.link { padding:2px 5px; font-family:sans-serif; font-size:10px; } -td.indexlinks { white-space: nowrap; } -td.indexlinks a { - padding: 2px 5px; line-height: 10px; - border: 1px solid; - color: #ffffff; background-color: #7777bb; - border-color: #aaaadd #333366 #333366 #aaaadd; - font-weight: bold; text-align: center; text-decoration: none; - font-size: 10px; -} -td.indexlinks a:hover { background-color: #6666aa; } -div.pre { font-family:monospace; font-size:12px; white-space:pre; } -div.diff_info { font-family:monospace; color:#000099; background-color:#edece6; font-style:italic; } -div.index_include { border:solid #d9d8d1; border-width:0px 0px 1px; padding:12px 8px; } -div.search { margin:4px 8px; position:absolute; top:56px; right:12px } -.linenr { color:#999999; text-decoration:none } -div.rss_logo { float: right; white-space: nowrap; } -div.rss_logo a { - padding:3px 6px; line-height:10px; - border:1px solid; border-color:#fcc7a5 #7d3302 #3e1a01 #ff954e; - color:#ffffff; background-color:#ff6600; - font-weight:bold; font-family:sans-serif; font-size:10px; - text-align:center; text-decoration:none; -} -div.rss_logo a:hover { background-color:#ee5500; } -pre { margin: 0; } -span.logtags span { - padding: 0px 4px; - font-size: 10px; - font-weight: normal; - border: 1px solid; - background-color: #ffaaff; - border-color: #ffccff #ff00ee #ff00ee #ffccff; -} -span.logtags span.tagtag { - background-color: #ffffaa; - border-color: #ffffcc #ffee00 #ffee00 #ffffcc; -} -span.logtags span.branchtag { - background-color: #aaffaa; - border-color: #ccffcc #00cc33 #00cc33 #ccffcc; -} -span.logtags span.inbranchtag { - background-color: #d5dde6; - border-color: #e3ecf4 #9398f4 #9398f4 #e3ecf4; -} - -/* Graph */ -div#wrapper { - position: relative; - margin: 0; - padding: 0; - margin-top: 3px; -} - -canvas { - position: absolute; - z-index: 5; - top: -0.9em; - margin: 0; -} - -ul#nodebgs { - list-style: none inside none; - padding: 0; - margin: 0; - top: -0.7em; -} - -ul#graphnodes li, ul#nodebgs li { - height: 39px; -} - -ul#graphnodes { - position: absolute; - z-index: 10; - top: -0.8em; - list-style: none inside none; - padding: 0; -} - -ul#graphnodes li .info { - display: block; - font-size: 100%; - position: relative; - top: -3px; - font-style: italic; -}
--- a/templates/static/style-monoblue.css Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,472 +0,0 @@ -/*** Initial Settings ***/ -* { - margin: 0; - padding: 0; - font-weight: normal; - font-style: normal; -} - -html { - font-size: 100%; - font-family: sans-serif; -} - -body { - font-size: 77%; - margin: 15px 50px; - background: #4B4B4C; -} - -a { - color:#0000cc; - text-decoration: none; -} -/*** end of Initial Settings ***/ - - -/** common settings **/ -div#container { - background: #FFFFFF; - position: relative; - color: #666; -} - -div.page-header { - padding: 50px 20px 0; - background: #006699 top left repeat-x; - position: relative; -} - div.page-header h1 { - margin: 10px 0 30px; - font-size: 1.8em; - font-weight: bold; - font-family: osaka,'MS P Gothic', Georgia, serif; - letter-spacing: 1px; - color: #DDD; - } - div.page-header h1 a { - font-weight: bold; - color: #FFF; - } - div.page-header a { - text-decoration: none; - } - - div.page-header form { - position: absolute; - margin-bottom: 2px; - bottom: 0; - right: 20px; - } - div.page-header form label { - color: #DDD; - } - div.page-header form input { - padding: 2px; - border: solid 1px #DDD; - } - div.page-header form dl { - overflow: hidden; - } - div.page-header form dl dt { - font-size: 1.2em; - } - div.page-header form dl dt, - div.page-header form dl dd { - margin: 0 0 0 5px; - float: left; - height: 24px; - line-height: 20px; - } - - ul.page-nav { - margin: 10px 0 0 0; - list-style-type: none; - overflow: hidden; - width: 800px; - } - ul.page-nav li { - margin: 0 2px 0 0; - float: left; - width: 80px; - height: 24px; - font-size: 1.1em; - line-height: 24px; - text-align: center; - } - ul.page-nav li.current { - background: #FFF; - } - ul.page-nav li a { - height: 24px; - color: #666; - background: #DDD; - display: block; - text-decoration: none; - } - ul.page-nav li a:hover { - color:#333; - background: #FFF; - } - -ul.submenu { - margin: 10px 0 -10px 20px; - list-style-type: none; -} -ul.submenu li { - margin: 0 10px 0 0; - font-size: 1.2em; - display: inline; -} - -h2 { - margin: 20px 0 10px; - height: 30px; - line-height: 30px; - text-indent: 20px; - background: #FFF; - font-size: 1.2em; - border-top: dotted 1px #D5E1E6; - font-weight: bold; -} -h2.no-link { - color:#006699; -} -h2.no-border { - color: #FFF; - background: #006699; - border: 0; -} -h2 a { - font-weight:bold; - color:#006699; -} - -div.page-path { - text-align: right; - padding: 20px 30px 10px 0; - border:solid #d9d8d1; - border-width:0px 0px 1px; - font-size: 1.2em; -} - -div.page-footer { - margin: 50px 0 0; - position: relative; -} - div.page-footer p { - position: relative; - left: 20px; - bottom: 5px; - font-size: 1.2em; - } - - ul.rss-logo { - position: absolute; - top: -10px; - right: 20px; - height: 20px; - list-style-type: none; - } - ul.rss-logo li { - display: inline; - } - ul.rss-logo li a { - padding: 3px 6px; - line-height: 10px; - border:1px solid; - border-color:#fcc7a5 #7d3302 #3e1a01 #ff954e; - color:#ffffff; - background-color:#ff6600; - font-weight:bold; - font-family:sans-serif; - font-size:10px; - text-align:center; - text-decoration:none; - } - div.rss-logo li a:hover { - background-color:#ee5500; - } - -p.normal { - margin: 20px 0 20px 30px; - font-size: 1.2em; -} - -table { - margin: 10px 0 0 20px; - width: 95%; - border-collapse: collapse; -} -table tr td { - font-size: 1.1em; -} -table tr td.nowrap { - white-space: nowrap; -} -/* -table tr.parity0:hover, -table tr.parity1:hover { - background: #D5E1E6; -} -*/ -table tr.parity0 { - background: #F1F6F7; -} -table tr.parity1 { - background: #FFFFFF; -} -table tr td { - padding: 5px 5px; -} -table.annotated tr td { - padding: 0px 5px; -} - -span.logtags span { - padding: 2px 6px; - font-weight: normal; - font-size: 11px; - border: 1px solid; - background-color: #ffaaff; - border-color: #ffccff #ff00ee #ff00ee #ffccff; -} -span.logtags span.tagtag { - background-color: #ffffaa; - border-color: #ffffcc #ffee00 #ffee00 #ffffcc; -} -span.logtags span.branchtag { - background-color: #aaffaa; - border-color: #ccffcc #00cc33 #00cc33 #ccffcc; -} -span.logtags span.inbranchtag { - background-color: #d5dde6; - border-color: #e3ecf4 #9398f4 #9398f4 #e3ecf4; -} - -div.diff pre { - margin: 10px 0 0 0; -} -div.diff pre span { - font-family: monospace; - white-space: pre; - font-size: 1.2em; - padding: 3px 0; -} -td.source { - white-space: pre; - font-family: monospace; - margin: 10px 30px 0; - font-size: 1.2em; - font-family: monospace; -} - div.source div.parity0, - div.source div.parity1 { - padding: 1px; - font-size: 1.2em; - } - div.source div.parity0 { - background: #F1F6F7; - } - div.source div.parity1 { - background: #FFFFFF; - } -div.parity0:hover, -div.parity1:hover { - background: #D5E1E6; -} -.linenr { - color: #999; - text-align: right; -} -.lineno { - text-align: right; -} -.lineno a { - color: #999; -} -td.linenr { - width: 60px; -} - -div#powered-by { - position: absolute; - width: 75px; - top: 15px; - right: 20px; - font-size: 1.2em; -} -div#powered-by a { - color: #EEE; - text-decoration: none; -} -div#powered-by a:hover { - text-decoration: underline; -} -/* -div#monoblue-corner-top-left { - position: absolute; - top: 0; - left: 0; - width: 10px; - height: 10px; - background: url(./monoblue-corner.png) top left no-repeat !important; - background: none; -} -div#monoblue-corner-top-right { - position: absolute; - top: 0; - right: 0; - width: 10px; - height: 10px; - background: url(./monoblue-corner.png) top right no-repeat !important; - background: none; -} -div#monoblue-corner-bottom-left { - position: absolute; - bottom: 0; - left: 0; - width: 10px; - height: 10px; - background: url(./monoblue-corner.png) bottom left no-repeat !important; - background: none; -} -div#monoblue-corner-bottom-right { - position: absolute; - bottom: 0; - right: 0; - width: 10px; - height: 10px; - background: url(./monoblue-corner.png) bottom right no-repeat !important; - background: none; -} -*/ -/** end of common settings **/ - -/** summary **/ -dl.overview { - margin: 0 0 0 30px; - font-size: 1.1em; - overflow: hidden; -} - dl.overview dt, - dl.overview dd { - margin: 5px 0; - float: left; - } - dl.overview dt { - clear: left; - font-weight: bold; - width: 150px; - } -/** end of summary **/ - -/** chagelog **/ -h3.changelog { - margin: 20px 0 5px 30px; - padding: 0 0 2px; - font-size: 1.4em; - border-bottom: dotted 1px #D5E1E6; -} -ul.changelog-entry { - margin: 0 0 10px 30px; - list-style-type: none; - position: relative; -} -ul.changelog-entry li span.revdate { - font-size: 1.1em; -} -ul.changelog-entry li.age { - position: absolute; - top: -25px; - right: 10px; - font-size: 1.4em; - color: #CCC; - font-weight: bold; - font-style: italic; -} -ul.changelog-entry li span.name { - font-size: 1.2em; - font-weight: bold; -} -ul.changelog-entry li.description { - margin: 10px 0 0; - font-size: 1.1em; -} -/** end of changelog **/ - -/** file **/ -p.files { - margin: 0 0 0 20px; - font-size: 2.0em; - font-weight: bold; -} -/** end of file **/ - -/** changeset **/ -h3.changeset { - margin: 20px 0 5px 20px; - padding: 0 0 2px; - font-size: 1.6em; - border-bottom: dotted 1px #D5E1E6; -} -p.changeset-age { - position: relative; -} -p.changeset-age span { - position: absolute; - top: -25px; - right: 10px; - font-size: 1.4em; - color: #CCC; - font-weight: bold; - font-style: italic; -} -p.description { - margin: 10px 30px 0 30px; - padding: 10px; - border: solid 1px #CCC; - font-size: 1.2em; -} -/** end of changeset **/ - -/** canvas **/ -div#wrapper { - position: relative; - font-size: 1.2em; -} - -canvas { - position: absolute; - z-index: 5; - top: -0.7em; -} - -ul#nodebgs li.parity0 { - background: #F1F6F7; -} - -ul#nodebgs li.parity1 { - background: #FFFFFF; -} - -ul#graphnodes { - position: absolute; - z-index: 10; - top: 7px; - list-style: none inside none; -} - -ul#nodebgs { - list-style: none inside none; -} - -ul#graphnodes li, ul#nodebgs li { - height: 39px; -} - -ul#graphnodes li .info { - display: block; - position: relative; -} -/** end of canvas **/
--- a/templates/static/style-paper.css Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,254 +0,0 @@ -body { - margin: 0; - padding: 0; - background: white; - font-family: sans-serif; -} - -.container { - padding-left: 115px; -} - -.main { - position: relative; - background: white; - padding: 2em 2em 2em 0; -} - -#.main { - width: 98%; -} - -.overflow { - width: 100%; - overflow: auto; -} - -.menu { - width: 90px; - margin: 0; - font-size: 80%; - text-align: left; - position: absolute; - top: 20px; - left: 20px; - right: auto; -} - -.menu ul { - list-style: none; - padding: 0; - margin: 10px 0 0 0; - border-left: 2px solid #999; -} - -.menu li { - margin-bottom: 3px; - padding: 2px 4px; - background: white; - color: black; - font-weight: normal; -} - -.menu li.active { - font-weight: bold; -} - -.menu img { - width: 75px; - height: 90px; - border: 0; -} - -.menu a { color: black; display: block; } - -.search { - position: absolute; - top: .7em; - right: 2em; -} - -form.search div#hint { - display: none; - position: absolute; - top: 40px; - right: 0px; - width: 190px; - padding: 5px; - background: #ffc; - font-size: 70%; - border: 1px solid yellow; - -moz-border-radius: 5px; /* this works only in camino/firefox */ - -webkit-border-radius: 5px; /* this is just for Safari */ -} - -form.search:hover div#hint { display: block; } - -a { text-decoration:none; } -.age { white-space:nowrap; } -.date { white-space:nowrap; } -.indexlinks { white-space:nowrap; } -.parity0 { background-color: #f0f0f0; } -.parity1 { background-color: white; } -.plusline { color: green; } -.minusline { color: #dc143c; } /* crimson */ -.atline { color: purple; } - -.navigate { - text-align: right; - font-size: 60%; - margin: 1em 0; -} - -.tag { - color: #999; - font-size: 70%; - font-weight: normal; - margin-left: .5em; - vertical-align: baseline; -} - -.branchhead { - color: #000; - font-size: 80%; - font-weight: normal; - margin-left: .5em; - vertical-align: baseline; -} - -ul#graphnodes .branchhead { - font-size: 75%; -} - -.branchname { - color: #000; - font-size: 60%; - font-weight: normal; - margin-left: .5em; - vertical-align: baseline; -} - -h3 .branchname { - font-size: 80%; -} - -/* Common */ -pre { margin: 0; } - -h2 { font-size: 120%; border-bottom: 1px solid #999; } -h2 a { color: #000; } -h3 { - margin-top: -.7em; - font-size: 100%; -} - -/* log and tags tables */ -.bigtable { - border-bottom: 1px solid #999; - border-collapse: collapse; - font-size: 90%; - width: 100%; - font-weight: normal; - text-align: left; -} - -.bigtable td { - vertical-align: top; -} - -.bigtable th { - padding: 1px 4px; - border-bottom: 1px solid #999; -} -.bigtable tr { border: none; } -.bigtable .age { width: 7em; } -.bigtable .author { width: 12em; } -.bigtable .description { } -.bigtable .node { width: 5em; font-family: monospace;} -.bigtable .permissions { width: 8em; text-align: left;} -.bigtable .size { width: 5em; text-align: right; } -.bigtable .annotate { text-align: right; } -.bigtable td.annotate { font-size: smaller; } -.bigtable td.source { font-size: inherit; } - -.source, .sourcefirst, .sourcelast { - font-family: monospace; - white-space: pre; - padding: 1px 4px; - font-size: 90%; -} -.sourcefirst { border-bottom: 1px solid #999; font-weight: bold; } -.sourcelast { border-top: 1px solid #999; } -.source a { color: #999; font-size: smaller; font-family: monospace;} -.bottomline { border-bottom: 1px solid #999; } - -.fileline { font-family: monospace; } -.fileline img { border: 0; } - -.tagEntry .closed { color: #99f; } - -/* Changeset entry */ -#changesetEntry { - border-collapse: collapse; - font-size: 90%; - width: 100%; - margin-bottom: 1em; -} - -#changesetEntry th { - padding: 1px 4px; - width: 4em; - text-align: right; - font-weight: normal; - color: #999; - margin-right: .5em; - vertical-align: top; -} - -div.description { - border-left: 2px solid #999; - margin: 1em 0 1em 0; - padding: .3em; -} - -/* Graph */ -div#wrapper { - position: relative; - border-top: 1px solid black; - border-bottom: 1px solid black; - margin: 0; - padding: 0; -} - -canvas { - position: absolute; - z-index: 5; - top: -0.7em; - margin: 0; -} - -ul#graphnodes { - position: absolute; - z-index: 10; - top: -1.0em; - list-style: none inside none; - padding: 0; -} - -ul#nodebgs { - list-style: none inside none; - padding: 0; - margin: 0; - top: -0.7em; -} - -ul#graphnodes li, ul#nodebgs li { - height: 39px; -} - -ul#graphnodes li .info { - display: block; - font-size: 70%; - position: relative; - top: -3px; -}
--- a/templates/static/style.css Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,105 +0,0 @@ -a { text-decoration:none; } -.age { white-space:nowrap; } -.date { white-space:nowrap; } -.indexlinks { white-space:nowrap; } -.parity0 { background-color: #ddd; } -.parity1 { background-color: #eee; } -.lineno { width: 60px; color: #aaa; font-size: smaller; - text-align: right; } -.plusline { color: green; } -.minusline { color: red; } -.atline { color: purple; } -.annotate { font-size: smaller; text-align: right; padding-right: 1em; } -.buttons a { - background-color: #666; - padding: 2pt; - color: white; - font-family: sans; - font-weight: bold; -} -.navigate a { - background-color: #ccc; - padding: 2pt; - font-family: sans; - color: black; -} - -.metatag { - background-color: #888; - color: white; - text-align: right; -} - -/* Common */ -pre { margin: 0; } - -.logo { - float: right; - clear: right; -} - -/* Changelog/Filelog entries */ -.logEntry { width: 100%; } -.logEntry .age { width: 15%; } -.logEntry th { font-weight: normal; text-align: right; vertical-align: top; } -.logEntry th.age, .logEntry th.firstline { font-weight: bold; } -.logEntry th.firstline { text-align: left; width: inherit; } - -/* Shortlog entries */ -.slogEntry { width: 100%; } -.slogEntry .age { width: 8em; } -.slogEntry td { font-weight: normal; text-align: left; vertical-align: top; } -.slogEntry td.author { width: 15em; } - -/* Tag entries */ -#tagEntries { list-style: none; margin: 0; padding: 0; } -#tagEntries .tagEntry { list-style: none; margin: 0; padding: 0; } - -/* Changeset entry */ -#changesetEntry { } -#changesetEntry th { font-weight: normal; background-color: #888; color: #fff; text-align: right; } -#changesetEntry th.files, #changesetEntry th.description { vertical-align: top; } - -/* File diff view */ -#filediffEntry { } -#filediffEntry th { font-weight: normal; background-color: #888; color: #fff; text-align: right; } - -/* Graph */ -div#wrapper { - position: relative; - margin: 0; - padding: 0; -} - -canvas { - position: absolute; - z-index: 5; - top: -0.6em; - margin: 0; -} - -ul#nodebgs { - list-style: none inside none; - padding: 0; - margin: 0; - top: -0.7em; -} - -ul#graphnodes li, ul#nodebgs li { - height: 39px; -} - -ul#graphnodes { - position: absolute; - z-index: 10; - top: -0.85em; - list-style: none inside none; - padding: 0; -} - -ul#graphnodes li .info { - display: block; - font-size: 70%; - position: relative; - top: -1px; -}
--- a/templates/template-vars.txt Tue Dec 08 23:23:59 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ -repo the name of the repo -rev a changeset.manifest revision -node a changeset node -changesets total number of changesets -file a filename -filerev a file revision -filerevs total number of file revisions -up the directory of the relevant file -path a path in the manifest, starting with "/" -basename a short pathname -date a date string -age age in hours, days, etc -line a line of text (escaped) -desc a description (escaped, with breaks) -shortdesc a short description (escaped) -author a name or email addressv(obfuscated) -parent a list of the parent -child a list of the children -tags a list of tag - -header the global page header -footer the global page footer - -files a list of file links -file_copies a list of pairs of name, source filenames -dirs a set of directory links -diff a diff of one or more files -annotate an annotated file -entries the entries relevant to the page - -Templates and commands: - changelog(rev) - a page for browsing changesets - naventry - a link for jumping to a changeset number - filenodelink - jump to file diff - fileellipses - printed after maxfiles - changelogentry - an entry in the log - manifest - browse a manifest as a directory tree
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/blacklist Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,37 @@ +# ConfigParser format +# Definitions of blacklists for run-tests.py +# +# Identify in config sections a list of tests you want to be skipped. +# Section names are meant to be used as targets for run-tests.py --blacklist +# option. +# "test-" prefixes should be omitted from test names. Values are not used. +# +# e.g. if your file looks like: +## [example] +## hgrc = +## help = "this string is not used" +# then calling "run-tests.py --blacklist example" will exclude test-hgrc and +# test-help from the list of tests to run. + +[inotify-failures] +# When --inotify is activated, help output and config changes: +debugcomplete = +empty = +fncache = +globalopts = +help = +hgrc = +inherit-mode = +qrecord = +strict = + +# --inotify activates de facto the inotify extension. It does not play well +# with inotify-specific tests, which activate/desactivate inotify at will: +inotify = +inotify-debuginotify = +inotify-dirty-dirstate = +inotify-issue1208 = +inotify-issue1371 = +inotify-issue1542 = +inotify-issue1556 = +inotify-lookup =
--- a/tests/run-tests.py Tue Dec 08 23:23:59 2009 +0100 +++ b/tests/run-tests.py Tue Dec 08 23:36:06 2009 +0100 @@ -41,6 +41,7 @@ # completes fairly quickly, includes both shell and Python scripts, and # includes some scripts that run daemon processes.) +from ConfigParser import ConfigParser import difflib import errno import optparse @@ -130,6 +131,11 @@ help="use pure Python code instead of C extensions") parser.add_option("-3", "--py3k-warnings", action="store_true", help="enable Py3k warnings on Python 2.6+") + parser.add_option("--inotify", action="store_true", + help="enable inotify extension when running tests") + parser.add_option("--blacklist", action="append", + help="skip tests listed in the specified section of " + "the blacklist file") for option, default in defaults.items(): defaults[option] = int(os.environ.get(*default)) @@ -195,6 +201,14 @@ if options.py3k_warnings: if sys.version_info[:2] < (2, 6) or sys.version_info[:2] >= (3, 0): parser.error('--py3k-warnings can only be used on Python 2.6+') + if options.blacklist: + configparser = ConfigParser() + configparser.read("blacklist") + blacklist = dict() + for section in options.blacklist: + for (item, value) in configparser.items(section): + blacklist["test-" + item] = section + options.blacklist = blacklist return (options, args) @@ -293,10 +307,18 @@ script = os.path.realpath(sys.argv[0]) hgroot = os.path.dirname(os.path.dirname(script)) os.chdir(hgroot) + nohome = '--home=""' + if os.name == 'nt': + # The --home="" trick works only on OS where os.sep == '/' + # because of a distutils convert_path() fast-path. Avoid it at + # least on Windows for now, deal with .pydistutils.cfg bugs + # when they happen. + nohome = '' cmd = ('%s setup.py %s clean --all' ' install --force --prefix="%s" --install-lib="%s"' - ' --install-scripts="%s" >%s 2>&1' - % (sys.executable, pure, INST, PYTHONDIR, BINDIR, installerrs)) + ' --install-scripts="%s" --install-data="%s" %s >%s 2>&1' + % (sys.executable, pure, INST, PYTHONDIR, BINDIR, INST, nohome, + installerrs)) vlog("# Running", cmd) if os.system(cmd) == 0: if not options.verbose: @@ -449,6 +471,12 @@ hgrc.write('backout = -d "0 0"\n') hgrc.write('commit = -d "0 0"\n') hgrc.write('tag = -d "0 0"\n') + if options.inotify: + hgrc.write('[extensions]\n') + hgrc.write('inotify=\n') + hgrc.write('[inotify]\n') + hgrc.write('pidfile=%s\n' % DAEMON_PIDS) + hgrc.write('appendpid=True\n') hgrc.close() err = os.path.join(TESTDIR, test+".err") @@ -715,6 +743,13 @@ fails = [] for test in tests: + if options.blacklist: + section = options.blacklist.get(test) + if section is not None: + skips.append((test, "blacklisted (%s section)" % section)) + skipped += 1 + continue + if options.retest and not os.path.exists(test + ".err"): skipped += 1 continue
--- a/tests/test-alias Tue Dec 08 23:23:59 2009 +0100 +++ b/tests/test-alias Tue Dec 08 23:36:06 2009 +0100 @@ -25,15 +25,19 @@ echo '% unknown' hg unknown +hg help unknown echo '% ambiguous' hg ambiguous +hg help ambiguous echo '% recursive' hg recursive +hg help recursive echo '% no definition' hg nodef +hg help nodef cd alias
--- a/tests/test-alias.out Tue Dec 08 23:23:59 2009 +0100 +++ b/tests/test-alias.out Tue Dec 08 23:36:06 2009 +0100 @@ -1,12 +1,16 @@ % basic % unknown alias 'unknown' resolves to unknown command 'bargle' +alias 'unknown' resolves to unknown command 'bargle' % ambiguous alias 'ambiguous' resolves to ambiguous command 's' +alias 'ambiguous' resolves to ambiguous command 's' % recursive alias 'recursive' resolves to unknown command 'recursive' +alias 'recursive' resolves to unknown command 'recursive' % no definition no definition for alias 'nodefinition' +no definition for alias 'nodefinition' % no usage no rollback information available adding foo
--- a/tests/test-command-template Tue Dec 08 23:23:59 2009 +0100 +++ b/tests/test-command-template Tue Dec 08 23:36:06 2009 +0100 @@ -93,7 +93,7 @@ echo "# keys work" for key in author branches date desc file_adds file_dels file_mods \ - files manifest node parents rev tags diffstat; do + files manifest node parents rev tags diffstat extras; do for mode in '' --verbose --debug; do hg log $mode --template "$key$mode: {$key}\n" done
--- a/tests/test-command-template.out Tue Dec 08 23:23:59 2009 +0100 +++ b/tests/test-command-template.out Tue Dec 08 23:36:06 2009 +0100 @@ -150,7 +150,7 @@ 1970-01-17 person <person> * new branch - [32a18f097fcc] + [32a18f097fcc] <foo> 1970-01-16 person <person> @@ -569,6 +569,33 @@ diffstat--debug: 1: +4/-0 diffstat--debug: 1: +2/-0 diffstat--debug: 1: +1/-0 +extras: branch=default +extras: branch=default +extras: branch=default +extras: branch=default +extras: branch=foo +extras: branch=default +extras: branch=default +extras: branch=default +extras: branch=default +extras--verbose: branch=default +extras--verbose: branch=default +extras--verbose: branch=default +extras--verbose: branch=default +extras--verbose: branch=foo +extras--verbose: branch=default +extras--verbose: branch=default +extras--verbose: branch=default +extras--verbose: branch=default +extras--debug: branch=default +extras--debug: branch=default +extras--debug: branch=default +extras--debug: branch=default +extras--debug: branch=foo +extras--debug: branch=default +extras--debug: branch=default +extras--debug: branch=default +extras--debug: branch=default # filters work hostname
--- a/tests/test-convert Tue Dec 08 23:23:59 2009 +0100 +++ b/tests/test-convert Tue Dec 08 23:36:06 2009 +0100 @@ -50,3 +50,10 @@ # override $PATH to ensure p4 not visible; use $PYTHON in case we're # running from a devel copy, not a temp installation PATH=$BINDIR $PYTHON $BINDIR/hg convert emptydir 2>&1 | sed 's,file://.*/emptydir,.../emptydir,g' + +echo % convert with imaginary source type +hg convert --source-type foo a a-foo +echo % convert with imaginary sink type +hg convert --dest-type foo a a-foo + +true
--- a/tests/test-convert-filemap Tue Dec 08 23:23:59 2009 +0100 +++ b/tests/test-convert-filemap Tue Dec 08 23:36:06 2009 +0100 @@ -16,9 +16,11 @@ echo foo > foo echo baz > baz -mkdir dir +mkdir -p dir/subdir echo dir/file >> dir/file echo dir/file2 >> dir/file2 +echo dir/subdir/file3 >> dir/subdir/file3 +echo dir/subdir/file4 >> dir/subdir/file4 hg ci -d '0 0' -qAm '0: add foo baz dir/' echo bar > bar @@ -114,6 +116,8 @@ include copied rename foo foo2 rename copied copied2 +exclude dir/subdir +include dir/subdir/file3 EOF hg -q convert --filemap renames.fmap --datesort source renames.repo hg up -q -R renames.repo
--- a/tests/test-convert-filemap.out Tue Dec 08 23:23:59 2009 +0100 +++ b/tests/test-convert-filemap.out Tue Dec 08 23:36:06 2009 +0100 @@ -16,7 +16,7 @@ |/ o 1 "1: add bar quux; copy foo to copied" files: bar copied quux | -o 0 "0: add foo baz dir/" files: baz dir/file dir/file2 foo +o 0 "0: add foo baz dir/" files: baz dir/file dir/file2 dir/subdir/file3 dir/subdir/file4 foo % final file versions in this repo: 9463f52fe115e377cf2878d4fc548117211063f2 644 bar @@ -24,6 +24,8 @@ 6ca237634e1f6bee1b6db94292fb44f092a25842 644 copied 3e20847584beff41d7cd16136b7331ab3d754be0 644 dir/file 75e6d3f8328f5f6ace6bf10b98df793416a09dca 644 dir/file2 +5fe139720576e18e34bcc9f79174db8897c8afe9 644 dir/subdir/file3 +57a1c1511590f3de52874adfa04effe8a77d64af 644 dir/subdir/file4 9a7b52012991e4873687192c3e17e61ba3e837a3 644 foo bc3eca3f47023a3e70ca0d8cc95a22a6827db19d 644 quux copied renamed from foo:2ed2a3912a0b24502043eae84ee4b279c18b90dd @@ -144,10 +146,11 @@ | o 1 "1: add bar quux; copy foo to copied" files: copied2 | -o 0 "0: add foo baz dir/" files: dir2/file foo2 +o 0 "0: add foo baz dir/" files: dir2/file dir2/subdir/file3 foo2 e5e3d520be9be45937d0b06b004fadcd6c221fa2 644 copied2 3e20847584beff41d7cd16136b7331ab3d754be0 644 dir2/file +5fe139720576e18e34bcc9f79174db8897c8afe9 644 dir2/subdir/file3 9a7b52012991e4873687192c3e17e61ba3e837a3 644 foo2 copied2 renamed from foo2:2ed2a3912a0b24502043eae84ee4b279c18b90dd copied:
--- a/tests/test-convert.out Tue Dec 08 23:23:59 2009 +0100 +++ b/tests/test-convert.out Tue Dec 08 23:36:06 2009 +0100 @@ -259,3 +259,8 @@ emptydir does not look like a Bazaar repo cannot find required "p4" tool abort: emptydir: missing or unsupported repository +% convert with imaginary source type +initializing destination a-foo repository +abort: foo: invalid source repository type +% convert with imaginary sink type +abort: foo: invalid destination repository type
--- a/tests/test-debugcomplete.out Tue Dec 08 23:23:59 2009 +0100 +++ b/tests/test-debugcomplete.out Tue Dec 08 23:36:06 2009 +0100 @@ -168,7 +168,7 @@ clone: noupdate, updaterev, rev, pull, uncompressed, ssh, remotecmd commit: addremove, close-branch, include, exclude, message, logfile, date, user diff: rev, change, text, git, nodates, show-function, reverse, ignore-all-space, ignore-space-change, ignore-blank-lines, unified, stat, include, exclude -export: output, switch-parent, text, git, nodates +export: output, switch-parent, rev, text, git, nodates forget: include, exclude init: ssh, remotecmd log: follow, follow-first, date, copies, keyword, rev, removed, only-merges, user, only-branch, prune, patch, git, limit, no-merges, style, template, include, exclude @@ -177,7 +177,7 @@ push: force, rev, ssh, remotecmd remove: after, force, include, exclude serve: accesslog, daemon, daemon-pipefds, errorlog, port, address, prefix, name, webdir-conf, pid-file, stdio, templates, style, ipv6, certificate -status: all, modified, added, removed, deleted, clean, unknown, ignored, no-status, copies, print0, rev, include, exclude +status: all, modified, added, removed, deleted, clean, unknown, ignored, no-status, copies, print0, rev, change, include, exclude summary: remote update: clean, check, date, rev addremove: similarity, include, exclude, dry-run
--- a/tests/test-fncache.out Tue Dec 08 23:23:59 2009 +0100 +++ b/tests/test-fncache.out Tue Dec 08 23:36:06 2009 +0100 @@ -50,6 +50,7 @@ .hg/data/tst.d.hg .hg/data/tst.d.hg/foo.i .hg/dirstate +.hg/last-message.txt .hg/requires .hg/undo .hg/undo.branch @@ -59,6 +60,7 @@ .hg .hg/00changelog.i .hg/dirstate +.hg/last-message.txt .hg/requires .hg/store .hg/store/00changelog.i
--- a/tests/test-help.out Tue Dec 08 23:23:59 2009 +0100 +++ b/tests/test-help.out Tue Dec 08 23:36:06 2009 +0100 @@ -270,7 +270,9 @@ parent. If one revision is given, it is used as the base revision. If two - revisions are given, the differences between them are shown. + revisions are given, the differences between them are shown. The --change + option can also be used as a shortcut to list the changed files of a + revision from its first parent. The codes used to show the status of files are: @@ -297,6 +299,7 @@ -C --copies show source of copied files -0 --print0 end filenames with NUL, for use with xargs --rev show difference from revision + --change list the changed files of a revision -I --include include names matching the given patterns -X --exclude exclude names matching the given patterns
--- a/tests/test-hgweb-commands Tue Dec 08 23:23:59 2009 +0100 +++ b/tests/test-hgweb-commands Tue Dec 08 23:36:06 2009 +0100 @@ -35,8 +35,8 @@ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/filediff/1/foo/?style=raw' echo % Overviews -"$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/tags/?style=atom' | sed "s/http:\/\/[^/]*\//http:\/\/127.0.0.1\//" -"$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/branches/?style=gitweb' | sed "s/http:\/\/[^/]*\//http:\/\/127.0.0.1\//" +"$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/raw-tags' +"$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/raw-branches' "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/summary/?style=gitweb' "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/graph/?style=gitweb'
--- a/tests/test-hgweb-commands.out Tue Dec 08 23:23:59 2009 +0100 +++ b/tests/test-hgweb-commands.out Tue Dec 08 23:36:06 2009 +0100 @@ -465,97 +465,12 @@ % Overviews 200 Script output follows -<?xml version="1.0" encoding="ascii"?> -<feed xmlns="http://127.0.0.1/2005/Atom"> - <id>http://127.0.0.1/</id> - <link rel="self" href="http://127.0.0.1/atom-tags"/> - <link rel="alternate" href="http://127.0.0.1/tags"/> - <title>test: tags</title> - <summary>test tag history</summary> - <author><name>Mercurial SCM</name></author> - <updated>1970-01-01T00:00:00+00:00</updated> - - <entry> - <title>1.0</title> - <link rel="alternate" href="http://127.0.0.1/rev/2ef0ac749a14"/> - <id>http://127.0.0.1/#tag-2ef0ac749a14e4f57a5a822464a0902c6f7f448f</id> - <updated>1970-01-01T00:00:00+00:00</updated> - <published>1970-01-01T00:00:00+00:00</published> - <content type="text">1.0</content> - </entry> - -</feed> +tip 1d22e65f027e5a0609357e7d8e7508cd2ba5d2fe +1.0 2ef0ac749a14e4f57a5a822464a0902c6f7f448f 200 Script output follows -<?xml version="1.0" encoding="ascii"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://127.0.0.1/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://127.0.0.1/1999/xhtml" xml:lang="en-US" lang="en-US"> -<head> -<link rel="icon" href="/static/hgicon.png" type="image/png" /> -<meta name="robots" content="index, nofollow"/> -<link rel="stylesheet" href="/static/style-gitweb.css" type="text/css" /> - - -<title>test: Branches</title> -<link rel="alternate" type="application/atom+xml" - href="/atom-tags" title="Atom feed for test"/> -<link rel="alternate" type="application/rss+xml" - href="/rss-tags" title="RSS feed for test"/> -</head> -<body> - -<div class="page_header"> -<a href="http://127.0.0.1/" title="Mercurial" style="float: right;">Mercurial</a><a href="/summary?style=gitweb">test</a> / branches -</div> - -<div class="page_nav"> -<a href="/summary?style=gitweb">summary</a> | -<a href="/shortlog?style=gitweb">shortlog</a> | -<a href="/log?style=gitweb">changelog</a> | -<a href="/graph?style=gitweb">graph</a> | -<a href="/tags?style=gitweb">tags</a> | -branches | -<a href="/file/1d22e65f027e?style=gitweb">files</a> -<br/> -</div> - -<div class="title"> </div> -<table cellspacing="0"> - -<tr class="parity0"> -<td class="age"><i>1970-01-01</i></td> -<td><a class="list" href="/shortlog/1d22e65f027e?style=gitweb"><b>1d22e65f027e</b></a></td> -<td class="open">stable</td> -<td class="link"> -<a href="/changeset/1d22e65f027e?style=gitweb">changeset</a> | -<a href="/log/1d22e65f027e?style=gitweb">changelog</a> | -<a href="/file/1d22e65f027e?style=gitweb">files</a> -</td> -</tr> -<tr class="parity1"> -<td class="age"><i>1970-01-01</i></td> -<td><a class="list" href="/shortlog/a4f92ed23982?style=gitweb"><b>a4f92ed23982</b></a></td> -<td class="inactive">default</td> -<td class="link"> -<a href="/changeset/a4f92ed23982?style=gitweb">changeset</a> | -<a href="/log/a4f92ed23982?style=gitweb">changelog</a> | -<a href="/file/a4f92ed23982?style=gitweb">files</a> -</td> -</tr> -</table> - -<div class="page_footer"> -<div class="page_footer_text">test</div> -<div class="rss_logo"> -<a href="/rss-log">RSS</a> -<a href="/atom-log">Atom</a> -</div> -<br /> - -</div> -</body> -</html> - +stable 1d22e65f027e5a0609357e7d8e7508cd2ba5d2fe open +default a4f92ed23982be056b9852de5dfe873eaac7f0de inactive 200 Script output follows <?xml version="1.0" encoding="ascii"?>
--- a/tests/test-inherit-mode.out Tue Dec 08 23:23:59 2009 +0100 +++ b/tests/test-inherit-mode.out Tue Dec 08 23:36:06 2009 +0100 @@ -14,6 +14,7 @@ 00700 ./.hg/ 00600 ./.hg/00changelog.i 00660 ./.hg/dirstate +00660 ./.hg/last-message.txt 00600 ./.hg/requires 00770 ./.hg/store/ 00660 ./.hg/store/00changelog.i
--- a/tests/test-non-interactive-wsgi Tue Dec 08 23:23:59 2009 +0100 +++ b/tests/test-non-interactive-wsgi Tue Dec 08 23:36:06 2009 +0100 @@ -60,9 +60,14 @@ 'SERVER_PROTOCOL': 'HTTP/1.0' } -hgweb('.')(env, startrsp) +i = hgweb('.') +i(env, startrsp) print '---- ERRORS' print errors.getvalue() +print '---- OS.ENVIRON wsgi variables' +print sorted([x for x in os.environ if x.startswith('wsgi')]) +print '---- request.ENVIRON wsgi variables' +print sorted([x for x in i.repo.ui.environ if x.startswith('wsgi')]) EOF python request.py
--- a/tests/test-non-interactive-wsgi.out Tue Dec 08 23:23:59 2009 +0100 +++ b/tests/test-non-interactive-wsgi.out Tue Dec 08 23:36:06 2009 +0100 @@ -10,3 +10,7 @@ [('Content-Type', 'text/html; charset=ascii')] ---- ERRORS +---- OS.ENVIRON wsgi variables +[] +---- request.ENVIRON wsgi variables +['wsgi.errors', 'wsgi.input', 'wsgi.multiprocess', 'wsgi.multithread', 'wsgi.run_once', 'wsgi.url_scheme', 'wsgi.version']
--- a/tests/test-patchbomb Tue Dec 08 23:23:59 2009 +0100 +++ b/tests/test-patchbomb Tue Dec 08 23:36:06 2009 +0100 @@ -169,6 +169,12 @@ hg email --date '1970-1-1 0:1' -n --flag fooFlag --flag barFlag -f quux -t foo \ -c bar -s test -r 0:1 | fixheaders +echo "% test multi-address parsing" +hg email --date '1980-1-1 0:1' -m tmp.mbox -f quux -t 'spam<spam><eggs>' \ + -t toast -c 'foo,bar@example.com' -c '"A, B <>" <a@example.com>' -s test -r 0 \ + --config email.bcc='"Quux, A." <quux>' +cat tmp.mbox | fixheaders + echo "% test multi-byte domain parsing" UUML=`printf '\374'` HGENCODING=iso-8859-1
--- a/tests/test-patchbomb.out Tue Dec 08 23:23:59 2009 +0100 +++ b/tests/test-patchbomb.out Tue Dec 08 23:36:06 2009 +0100 @@ -1469,6 +1469,39 @@ @@ -0,0 +1,1 @@ +b +% test multi-address parsing +This patch series consists of 1 patches. + + +Writing [PATCH] test ... +From quux Tue Jan 01 00:01:01 1980 +Content-Type: text/plain; charset="us-ascii" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: [PATCH] test +X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab +Message-Id: <8580ff50825a50c8f716.315532860@ +User-Agent: Mercurial-patchbomb +Date: Tue, 01 Jan 1980 00:01:00 +0000 +From: quux +To: spam <spam>, eggs, toast +Cc: foo, bar@example.com, "A, B <>" <a@example.com> +Bcc: "Quux, A." <quux> + +# HG changeset patch +# User test +# Date 1 0 +# Node ID 8580ff50825a50c8f716709acdf8de0deddcd6ab +# Parent 0000000000000000000000000000000000000000 +a + +diff -r 000000000000 -r 8580ff50825a a +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ b/a Thu Jan 01 00:00:01 1970 +0000 +@@ -0,0 +1,1 @@ ++a + + % test multi-byte domain parsing This patch series consists of 1 patches.
--- a/tests/test-rollback Tue Dec 08 23:23:59 2009 +0100 +++ b/tests/test-rollback Tue Dec 08 23:36:06 2009 +0100 @@ -15,14 +15,34 @@ hg status echo % Test issue 902 -hg commit -m "test" +hg commit -m "test2" hg branch test hg rollback hg branch +echo '% Test issue 1635 (commit message saved)' +echo '.hg/last-message.txt:' +cat .hg/last-message.txt ; echo + echo % Test rollback of hg before issue 902 was fixed -hg commit -m "test" +hg commit -m "test3" hg branch test rm .hg/undo.branch hg rollback hg branch + +echo '% rollback by pretxncommit saves commit message (issue 1635)' +echo a >> a +hg --config hooks.pretxncommit=false commit -m"precious commit message" +echo '.hg/last-message.txt:' +cat .hg/last-message.txt ; echo + +echo '% same thing, but run $EDITOR' +cat > $HGTMP/editor <<'__EOF__' +#!/bin/sh +echo "another precious commit message" > "$1" +__EOF__ +chmod +x $HGTMP/editor +HGEDITOR=$HGTMP/editor hg --config hooks.pretxncommit=false commit +echo '.hg/last-message.txt:' +cat .hg/last-message.txt
--- a/tests/test-rollback.out Tue Dec 08 23:23:59 2009 +0100 +++ b/tests/test-rollback.out Tue Dec 08 23:36:06 2009 +0100 @@ -20,8 +20,24 @@ marked working directory as branch test rolling back last transaction default +% Test issue 1635 (commit message saved) +.hg/last-message.txt: +test2 % Test rollback of hg before issue 902 was fixed marked working directory as branch test rolling back last transaction Named branch could not be reset, current branch still is: test test +% rollback by pretxncommit saves commit message (issue 1635) +transaction abort! +rollback completed +abort: pretxncommit hook exited with status 1 +.hg/last-message.txt: +precious commit message +% same thing, but run $EDITOR +transaction abort! +rollback completed +note: commit message saved in .hg/last-message.txt +abort: pretxncommit hook exited with status 1 +.hg/last-message.txt: +another precious commit message
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-share Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,42 @@ +#!/bin/sh + +echo "[extensions]" >> $HGRCPATH +echo "share = " >> $HGRCPATH + +echo % prepare repo1 +hg init repo1 +cd repo1 +echo a > a +hg commit -A -m'init' + +echo % share it +cd .. +hg share repo1 repo2 + +echo % contents of repo2/.hg +cd repo2 +[ -d .hg/store ] \ + && echo "fail: .hg/store should not exist" \ + || echo "pass: .hg/store does not exist" +cat .hg/sharedpath | sed "s:$HGTMP:*HGTMP*:"; echo + +echo % commit in shared clone +echo a >> a +hg commit -m'change in shared clone' + +echo % check original +cd ../repo1 +hg log +hg update +cat a # should be two lines of "a" + +echo % commit in original +echo b > b +hg commit -A -m'another file' + +echo % check in shared clone +cd ../repo2 +hg log +hg update +cat b # should exist with one "b" +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-share.out Tue Dec 08 23:36:06 2009 +0100 @@ -0,0 +1,45 @@ +% prepare repo1 +adding a +% share it +updating working directory +1 files updated, 0 files merged, 0 files removed, 0 files unresolved +% contents of repo2/.hg +pass: .hg/store does not exist +*HGTMP*/test-share/repo1/.hg +% commit in shared clone +% check original +changeset: 1:8af4dc49db9e +tag: tip +user: test +date: Thu Jan 01 00:00:00 1970 +0000 +summary: change in shared clone + +changeset: 0:d3873e73d99e +user: test +date: Thu Jan 01 00:00:00 1970 +0000 +summary: init + +1 files updated, 0 files merged, 0 files removed, 0 files unresolved +a +a +% commit in original +adding b +% check in shared clone +changeset: 2:c2e0ac586386 +tag: tip +user: test +date: Thu Jan 01 00:00:00 1970 +0000 +summary: another file + +changeset: 1:8af4dc49db9e +user: test +date: Thu Jan 01 00:00:00 1970 +0000 +summary: change in shared clone + +changeset: 0:d3873e73d99e +user: test +date: Thu Jan 01 00:00:00 1970 +0000 +summary: init + +1 files updated, 0 files merged, 0 files removed, 0 files unresolved +b
--- a/tests/test-status Tue Dec 08 23:23:59 2009 +0100 +++ b/tests/test-status Tue Dec 08 23:36:06 2009 +0100 @@ -91,4 +91,27 @@ assert "-q" "-u" 1 assert "-m" "-a" 1 assert "-r" "-d" 1 +cd .. +hg init repo4 +cd repo4 +touch modified removed deleted +hg ci -q -A -m 'initial checkin' -d "1000000 0" +touch added unknown +hg add added +hg remove removed +rm deleted +echo x > modified +hg copy modified copied +hg ci -m 'test checkin' -d "1000001 0" +rm * +touch unrelated +hg ci -q -A -m 'unrelated checkin' -d "1000002 0" +echo "hg status --change 1:" +hg status --change 1 +echo "hg status --change 1 unrelated:" +hg status --change 1 unrelated +echo "hg status -C --change 1 added modified copied removed deleted:" +hg status -C --change 1 added modified copied removed deleted +echo "hg status -A --change 1" +hg status -A --change 1
--- a/tests/test-status.out Tue Dec 08 23:23:59 2009 +0100 +++ b/tests/test-status.out Tue Dec 08 23:36:06 2009 +0100 @@ -124,3 +124,22 @@ adding deleted adding modified adding removed +hg status --change 1: +M modified +A added +A copied +R removed +hg status --change 1 unrelated: +hg status -C --change 1 added modified copied removed deleted: +M modified +A added +A copied + modified +R removed +hg status -A --change 1 +M modified +A added +A copied + modified +R removed +C deleted