##// END OF EJS Templates
perf: call _generatechangelog() instead of group()...
perf: call _generatechangelog() instead of group() Now that we have a separate function for generating just the changelog bits, the perf command should call it so it gets more accurate behavior. This changes the results of this command on my hg repo significantly: ! wall 1.390502 comb 1.390000 user 1.370000 sys 0.020000 (best of 8) ! wall 1.768750 comb 1.760000 user 1.760000 sys 0.000000 (best of 6) Profiling seems to reveal that ~20% of execution time is spent in progress bar accounting and printing! If we run with progress.disable=true: ! wall 1.639134 comb 1.650000 user 1.630000 sys 0.020000 (best of 7) A nice speedup. But profiling still shows a good chunk of time being spent in progress bar accounting code. The reason is that the progress bar is conditionally enabled via an argument to cgpacker.group(). The previous code in perf.py calling into group() did not enable the progress bar but _generatechangelog() always does. I think it is important for the perf* commands to capture real-world use cases. And this code always runs with an active progress bar. So the regression is acceptable. That being said, terminal printing performance can vary substantially. I don't think perf* commands should test terminal printing unless explicitly desired. So I've disabled progress bar printing in this command. Differential Revision: https://phab.mercurial-scm.org/D4134

File last commit:

r26804:61250290 default
r39013:a1f69477 default
Show More
editmerge
58 lines | 1.4 KiB | text/plain | TextLexer
Olle Lundberg
contrib: don't hardcode path to bash interpreter...
r20831 #!/usr/bin/env bash
Durham Goode
contrib: add editmerge script for editor conflict prompts...
r20010 # A simple script for opening merge conflicts in the editor.
# Use the following Mercurial settings to enable it.
#
# [ui]
# merge = editmerge
#
# [merge-tools]
# editmerge.args=$output
# editmerge.check=changed
# editmerge.premerge=keep
Ryan McElroy
editmerge: properly quote variables...
r26771 FILE="$1"
Durham Goode
contrib: add editmerge script for editor conflict prompts...
r20010
getlines() {
Ryan McElroy
editmerge: properly quote variables...
r26771 grep -n "^<<<<<<" "$FILE" | cut -f1 -d:
Durham Goode
contrib: add editmerge script for editor conflict prompts...
r20010 }
Matt Mackall
urls: bulk-change primary website URLs
r26421 # editor preference loosely based on https://mercurial-scm.org/wiki/editor
Durham Goode
contrib: add editmerge script for editor conflict prompts...
r20010 # hg showconfig is at the bottom though, since it's slow to run (0.15 seconds)
Ryan McElroy
editmerge: properly quote variables...
r26771 ED="$HGEDITOR"
Durham Goode
contrib: add editmerge script for editor conflict prompts...
r20010 if [ "$ED" = "" ] ; then
Ryan McElroy
editmerge: properly quote variables...
r26771 ED="$VISUAL"
Durham Goode
contrib: add editmerge script for editor conflict prompts...
r20010 fi
if [ "$ED" = "" ] ; then
Ryan McElroy
editmerge: properly quote variables...
r26771 ED="$EDITOR"
Durham Goode
contrib: add editmerge script for editor conflict prompts...
r20010 fi
if [ "$ED" = "" ] ; then
Ryan McElroy
editmerge: properly quote variables...
r26771 ED="$(hg showconfig ui.editor)"
Durham Goode
contrib: add editmerge script for editor conflict prompts...
r20010 fi
if [ "$ED" = "" ] ; then
echo "merge failed - unable to find editor"
exit 1
fi
if [ "$ED" = "emacs" ] || [ "$ED" = "nano" ] || [ "$ED" = "vim" ] ; then
Ryan McElroy
editmerge: properly quote variables...
r26771 FIRSTLINE="$(getlines | head -n 1)"
Durham Goode
contrib: add editmerge script for editor conflict prompts...
r20010 PREVIOUSLINE=""
# open the editor to the first conflict until there are no more
# or the user stops editing the file
while [ ! "$FIRSTLINE" = "" ] && [ ! "$FIRSTLINE" = "$PREVIOUSLINE" ] ; do
Ryan McElroy
editmerge: dequote other use of $ED...
r26804 $ED "+$FIRSTLINE" "$FILE"
Ryan McElroy
editmerge: properly quote variables...
r26771 PREVIOUSLINE="$FIRSTLINE"
FIRSTLINE="$(getlines | head -n 1)"
Durham Goode
contrib: add editmerge script for editor conflict prompts...
r20010 done
else
Ryan McElroy
editmerge: properly quote variables...
r26771 $ED "$FILE"
Durham Goode
contrib: add editmerge script for editor conflict prompts...
r20010 fi
# get the line numbers of the remaining conflicts
Ryan McElroy
editmerge: properly quote variables...
r26771 CONFLICTS="$(getlines | sed ':a;N;$!ba;s/\n/, /g')"
Durham Goode
contrib: add editmerge script for editor conflict prompts...
r20010 if [ ! "$CONFLICTS" = "" ] ; then
echo "merge failed - resolve the conflicts (line $CONFLICTS) then use 'hg resolve --mark'"
exit 1
fi
exit 0