mirror of
https://github.com/facebook/sapling.git
synced 2024-10-11 09:17:30 +03:00
8c33c0736a
Summary: In pushrebase code path, `_getmanifest` needs to be used to obtain the manifest correctly for pushes from treeonly repos. The merge commit code path missed this change. Fix it. Besides, the rename checking code patch can also hit flat manifest errors via repo.commitctx -> ... -> fctx._copied -> ctx.filenode -> ctx._fileinfo. Patch that path too. Reviewed By: phillco Differential Revision: D9977904 fbshipit-source-id: 8c51aa9cc6bd85b0147d88c61a5af074e36cdb61
86 lines
1.9 KiB
Bash
86 lines
1.9 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
|
|
}
|
|
|
|
# Enable extensions or features
|
|
enable() {
|
|
local rcpath
|
|
if [ -f .hg/hgrc ]; 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'
|
|
}
|
|
|
|
# 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}" "$@"
|
|
}
|