contrib/tcsh_completion_build.sh
author FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
Wed, 23 Jul 2014 00:10:24 +0900
branchstable
changeset 21934 0cb34b3991f8
parent 13515 2616325766e3
permissions -rwxr-xr-x
largefiles: use "normallookup" on "lfdirstate" while reverting Before this patch, largefiles gotten from revisions other than the parent of the working directory at "hg revert" become "clean" unexpectedly in steps below: 1. "repo.status()" is invoked (for status check before reverting) 1-1 "dirstate" entry for standinfile SF is "normal"-ed (1-2 "lfdirstate" entry of largefile LF (for SF) is "normal"-ed) 2. "cmdutil.revert()" is invoked 2-1 standinfile SF is updated in the working directory 2-2 "dirstate" entry for SF is NOT updated 3. "lfcommands.updatelfiles()" is invoked (by "overrides.overriderevert()") 3-1 largefile LF (for SF) is updated in the working directory 3-2 "dirstate" returns "n" and valid timestamp for SF (by 1-1 and 2-2) 3-3 "lfdirstate" entry for LF is "normal"-ed 3-4 "lfdirstate" is written into ".hg/largefiles/dirstate", and timestamp of LF is stored into "lfdirstate" file (by 3-3) (ASSUMPTION: timestamp of LF differs from one of "lfdirstate" file) Then, "hs status" treats LF as "clean", even though LF is updated by "other" revision (by 3-1), because "lfilesrepo.status()" always treats "normal"-ed files (by 3-3 and 3-4) as "clean". When largefiles are reverted, they should be "normallookup"-ed forcibly. This patch uses "normallookup" on "lfdirstate" while reverting, by passing "True" to newly added argument "normallookup". Forcible "normallookup"-ing is not so expensive, because list of target largefiles is explicitly specified in this case. This patch uses "[debug] dirstate.delaywrite" feature in the test, to ensure that timestamp of the largefile gotten from "other" revision is stored into ".hg/largefiles/dirstate" (for ASSUMPTION at 3-4)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1155
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
     1
#!/bin/sh
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
     2
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
     3
#
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
     4
# tcsh_completion_build.sh - script to generate tcsh completion
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
     5
#
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
     6
#
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
     7
# Copyright (C) 2005 TK Soh.
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
     8
#
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
     9
# This is free software; you can redistribute it and/or modify it under
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
    10
# the terms of the GNU General Public License as published by the Free
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
    11
# Software Foundation; either version 2 of the License, or (at your
1308
2073e5a71008 Cleanup of tabs and trailing spaces.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1157
diff changeset
    12
# option) any later version.
1155
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
    13
#
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
    14
#
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
    15
# Description
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
    16
# -----------
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
    17
# This script generates a tcsh source file to support completion
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
    18
# of Mercurial commands and options.
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
    19
#
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
    20
# Instruction:
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
    21
# -----------
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
    22
# Run this script to generate the tcsh source file, and source
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
    23
# the file to add command completion support for Mercurial.
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
    24
#
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
    25
#    tcsh% tcsh_completion.sh FILE
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
    26
#    tcsh% source FILE
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
    27
#
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
    28
# If FILE is not specified, tcsh_completion will be generated.
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
    29
#
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
    30
# Bugs:
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
    31
# ----
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
    32
# 1. command specific options are not supported
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
    33
# 2. hg commands must be specified immediately after 'hg'.
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
    34
#
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
    35
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
    36
tcsh_file=${1-tcsh_completion}
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
    37
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
    38
hg_commands=`hg --debug help | \
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
    39
        sed -e '1,/^list of commands:/d' \
7766
2b2548342265 Update tcsh completion scripts with new commands and for new help output.
Gilles Moris <gilles.moris@free.fr>
parents: 1308
diff changeset
    40
            -e '/^enabled extensions:/,$d' \
13515
2616325766e3 contrib: update tcsh_completion for Mercurial 1.8
Gilles Moris <gilles.moris@free.fr>
parents: 7766
diff changeset
    41
            -e '/^additional help topics:/,$d' \
1157
6e66235084d9 tcsh_completion_build.sh: fixed error caused by xargs on Linux
TK Soh <tksoh@freescale.com>
parents: 1155
diff changeset
    42
            -e '/^ [^ ]/!d; s/[,:]//g;' | \
1155
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
    43
        xargs -n5 | \
1157
6e66235084d9 tcsh_completion_build.sh: fixed error caused by xargs on Linux
TK Soh <tksoh@freescale.com>
parents: 1155
diff changeset
    44
        sed -e '$!s/$/ \\\\/g; 2,$s/^ */    /g'`
1155
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
    45
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
    46
hg_global_options=`hg -v help | \
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
    47
        sed -e '1,/global/d;/^ *-/!d; s/ [^- ].*//' | \
1157
6e66235084d9 tcsh_completion_build.sh: fixed error caused by xargs on Linux
TK Soh <tksoh@freescale.com>
parents: 1155
diff changeset
    48
        sed -e 's/ *$//; $!s/$/ \\\\/g; 2,$s/^ */    /g'`
1155
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
    49
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
    50
hg_version=`hg version | sed -e '1q'`
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
    51
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
    52
script_name=`basename $0`
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
    53
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
    54
cat > $tcsh_file <<END
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
    55
#
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
    56
# tcsh completion for Mercurial
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
    57
#
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
    58
# This file has been auto-generated by $script_name for
1308
2073e5a71008 Cleanup of tabs and trailing spaces.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1157
diff changeset
    59
# $hg_version
1155
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
    60
#
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
    61
# Copyright (C) 2005 TK Soh.
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
    62
#
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
    63
# This is free software; you can redistribute it and/or modify it under
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
    64
# the terms of the GNU General Public License as published by the Free
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
    65
# Software Foundation; either version 2 of the License, or (at your
1308
2073e5a71008 Cleanup of tabs and trailing spaces.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1157
diff changeset
    66
# option) any later version.
1155
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
    67
#
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
    68
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
    69
complete hg \\
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
    70
  'n/--cwd/d/' 'n/-R/d/' 'n/--repository/d/' \\
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
    71
  'C/-/($hg_global_options)/' \\
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
    72
  'p/1/($hg_commands)/'
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
    73
92697ad28f08 Add contrib script for generating tcsh completion source
TK Soh <teekaysoh@yahoo.com>
parents:
diff changeset
    74
END