mirror of
https://github.com/facebook/sapling.git
synced 2024-10-12 09:48:05 +03:00
9a40d36329
Summary: There's a corruption that occurs because pushrebase caches a fulltext instead of a tree. Let's write a test to expose it. The next diff will fix it. Reviewed By: mitrandir77 Differential Revision: D13154341 fbshipit-source-id: e2ac040c59c677b414b6eddd39d7dc2ebb25f082
92 lines
2.0 KiB
Bash
92 lines
2.0 KiB
Bash
# This file will be sourced by all .t tests. Put general purposed functions
|
|
# here.
|
|
|
|
_repocount=0
|
|
|
|
# Create a new repo
|
|
newrepo() {
|
|
reponame="$1"
|
|
if [ -z "$reponame" ]; then
|
|
_repocount=$((_repocount+1))
|
|
reponame=repo$_repocount
|
|
fi
|
|
mkdir "$TESTTMP/$reponame"
|
|
cd "$TESTTMP/$reponame"
|
|
hg init
|
|
}
|
|
|
|
switchrepo() {
|
|
reponame="$1"
|
|
cd $TESTTMP/$reponame
|
|
}
|
|
|
|
# Enable extensions or features
|
|
enable() {
|
|
local rcpath
|
|
# .hg/hgrc may not exist yet, so just check for requires
|
|
if [ -f .hg/requires ]; then
|
|
rcpath=.hg/hgrc
|
|
else
|
|
rcpath="$HGRCPATH"
|
|
fi
|
|
for name in "$@"; do
|
|
if [ "$name" = obsstore ]; then
|
|
cat >> $rcpath << EOF
|
|
[experimental]
|
|
evolution = createmarkers, allowunstable
|
|
EOF
|
|
else
|
|
cat >> $rcpath << EOF
|
|
[extensions]
|
|
$name=
|
|
EOF
|
|
fi
|
|
done
|
|
}
|
|
|
|
# Like "hg debugdrawdag", but do not leave local tags in the repo and define
|
|
# nodes as environment variables.
|
|
# This is useful if the test wants to hide those commits because tags would
|
|
# make commits visible. The function will set environment variables so
|
|
# commits can still be referred as $TAGNAME.
|
|
drawdag() {
|
|
hg debugdrawdag "$@"
|
|
eval `hg tags -T '{tag}={node}\n'`
|
|
rm -f .hg/localtags
|
|
}
|
|
|
|
# Simplify error reporting so crash does not show a traceback.
|
|
# This is useful to match error messages without the traceback.
|
|
shorttraceback() {
|
|
enable errorredirect
|
|
setconfig errorredirect.script='printf "%s" "$TRACE" | tail -1 1>&2'
|
|
}
|
|
|
|
# Set config items like --config way, instead of using cat >> $HGRCPATH
|
|
setconfig() {
|
|
python "$RUNTESTDIR/setconfig.py" "$@"
|
|
}
|
|
|
|
# Create a new extension
|
|
newext() {
|
|
extname="$1"
|
|
if [ -z "$extname" ]; then
|
|
_extcount=$((_extcount+1))
|
|
extname=ext$_extcount
|
|
fi
|
|
cat > "$TESTTMP/$extname.py"
|
|
setconfig "extensions.$extname=$TESTTMP/$extname.py"
|
|
}
|
|
|
|
showgraph() {
|
|
hg log --graph -T "{rev} {node|short} {desc|firstline}" | sed \$d
|
|
}
|
|
|
|
tglog() {
|
|
hg log -G -T "{rev}: {node|short} '{desc}' {bookmarks} {branches}" "$@"
|
|
}
|
|
|
|
tglogp() {
|
|
hg log -G -T "{rev}: {node|short} {phase} '{desc}' {bookmarks} {branches}" "$@"
|
|
}
|