Mercurial > hg
view contrib/tcsh_completion_build.sh @ 18853:78d760aa3607
duplicatecopies: do not mark items not in the dirstate as copies
Consider the following repo:
0 -- 1 (renames a to b)
\
- 2
If we're rebasing 2 onto 1, then duplicatecopies is called with arguments (2,
1). copies.pathcopies goes backwards from 1 to 0 and returns the pair dst = a,
src = b. Of course, since we're working on top of 2, at this point a doesn't
exist in the dirstate.
Extra entries in the copymap are currently harmless because the copymap is
only queried for items in the dirstate map. However, if the dirstate.copy
method becomes one of the sources used to determine which files have changed,
this will prove problematic.
Note that we can't avoid going backwards in general -- consider this repo:
0 -- 1 (renames a to b)
\
- 2 (renames a to c)
Rebasing 2 onto 1 should produce a rename from b to c.
author | Siddharth Agarwal <sid0@fb.com> |
---|---|
date | Thu, 28 Mar 2013 18:27:19 -0700 |
parents | 2616325766e3 |
children |
line wrap: on
line source
#!/bin/sh # # tcsh_completion_build.sh - script to generate tcsh completion # # # Copyright (C) 2005 TK Soh. # # This is free software; you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free # Software Foundation; either version 2 of the License, or (at your # option) any later version. # # # Description # ----------- # This script generates a tcsh source file to support completion # of Mercurial commands and options. # # Instruction: # ----------- # Run this script to generate the tcsh source file, and source # the file to add command completion support for Mercurial. # # tcsh% tcsh_completion.sh FILE # tcsh% source FILE # # If FILE is not specified, tcsh_completion will be generated. # # Bugs: # ---- # 1. command specific options are not supported # 2. hg commands must be specified immediately after 'hg'. # tcsh_file=${1-tcsh_completion} hg_commands=`hg --debug help | \ sed -e '1,/^list of commands:/d' \ -e '/^enabled extensions:/,$d' \ -e '/^additional help topics:/,$d' \ -e '/^ [^ ]/!d; s/[,:]//g;' | \ xargs -n5 | \ sed -e '$!s/$/ \\\\/g; 2,$s/^ */ /g'` hg_global_options=`hg -v help | \ sed -e '1,/global/d;/^ *-/!d; s/ [^- ].*//' | \ sed -e 's/ *$//; $!s/$/ \\\\/g; 2,$s/^ */ /g'` hg_version=`hg version | sed -e '1q'` script_name=`basename $0` cat > $tcsh_file <<END # # tcsh completion for Mercurial # # This file has been auto-generated by $script_name for # $hg_version # # Copyright (C) 2005 TK Soh. # # This is free software; you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free # Software Foundation; either version 2 of the License, or (at your # option) any later version. # complete hg \\ 'n/--cwd/d/' 'n/-R/d/' 'n/--repository/d/' \\ 'C/-/($hg_global_options)/' \\ 'p/1/($hg_commands)/' END