view tests/test-convert-darcs @ 5675:a5fe27b83a4a

Issue 882: add standard hook to reject text files with CRLF. While the win32text extension does LF <-> CRLF conversion, and will issue a warning in case a file already in the repository uses CRLF, it provides no mechanism for verifying that incoming changes use LF. In a large development team with some Windows users, it is virtually guaranteed that someone will forget to set up the encode filter correctly and accidentally check in a file using CRLF, which can cause warnings for other Windows users when they next fetch changes. Since this is a general problem it is desirable to have a pre-commit (or -push) hook available to reject such accidents earlier rather than trying to fix them up after the fact.
author Jesse Glick <jesse.glick@sun.com>
date Wed, 19 Dec 2007 17:02:31 -0500
parents cc3af86ab6fe
children f29b7c8419cb
line wrap: on
line source

#!/bin/sh

"$TESTDIR/hghave" darcs || exit 80

echo "[extensions]" >> $HGRCPATH
echo "convert=" >> $HGRCPATH
echo 'hgext.graphlog =' >> $HGRCPATH

DARCS_EMAIL='test@example.org'; export DARCS_EMAIL
HOME=do_not_use_HOME_darcs; export HOME

# skip if we can't import elementtree
mkdir dummy
mkdir dummy/_darcs
if hg convert dummy 2>&1 | grep ElementTree > /dev/null; then
    echo 'hghave: missing feature: elementtree module'
    exit 80
fi

echo % initialize darcs repo
mkdir darcs-repo
cd darcs-repo
darcs init
echo a > a
darcs record -a -l -m p0
cd ..

echo % branch and update
darcs get darcs-repo darcs-clone
cd darcs-clone
echo c >> a
echo c > c
darcs record -a -l -m p1.1
cd ..

echo % update source
cd darcs-repo
echo b >> a
echo b > b
darcs record -a -l -m p1.2

echo % merge branch
darcs pull -a ../darcs-clone
echo e > a
darcs record -a -l -m p2
cd ..

glog()
{
    hg glog --template '#rev# "#desc|firstline#" files: #files#\n' "$@"
}

hg convert darcs-repo darcs-repo-hg
# The converter does not currently handle patch conflicts very well.
# When they occur, it reverts *all* changes and moves forward,
# letting the conflict resolving patch fix collisions.
# Unfortunately, non-conflicting changes, like the addition of the
# "c" file in p1.1 patch are reverted too.
# Just to say that manifest not listing "c" here is a bug.
glog -R darcs-repo-hg
hg -R darcs-repo-hg manifest --debug