Mercurial > hg > mercurial-crew-with-dirclash
view tests/test-import @ 2550:45235e492cc6
Disable automatic line endings conversion on windows
The rationale behind this is that such conversion implies a particular
situation in which all files in the repo are terminated by only LF. This
is documented nowhere and it bit me sharply when I upgraded.
Furthermore, it works on the assumption that a file containing no NULL
characters are actually a text file. Therefore it cannot guarantee that
no binary file will be harmed in the process.
Currently, if a file already contains CRLF line endings when it is
copied to the working dir from the repo, then the version in the working
dir will be corrupted by an extra CR.
I'm working on a patch that will turn this into a warning. But as a side
effect, committing such a file back will strip it from its CR.
In all case, unrequested data modification can occur under the feet of
the user, which is bad(tm), ihmo.
author | Raphael Marmier <raphael@marmier.net> |
---|---|
date | Mon, 03 Jul 2006 10:18:46 -0700 |
parents | f22e3e8fd457 |
children | 871ca5b9d348 |
line wrap: on
line source
#!/bin/sh hg init a echo line 1 > a/a hg --cwd a ci -d '0 0' -Ama echo line 2 >> a/a hg --cwd a ci -u someone -d '1 0' -m'second change' echo % import exported patch hg clone -r0 a b hg --cwd a export tip > tip.patch hg --cwd b import ../tip.patch echo % message should be same hg --cwd b tip | grep 'second change' echo % committer should be same hg --cwd b tip | grep someone rm -rf b echo % import of plain diff should fail without message hg clone -r0 a b hg --cwd a diff -r0:1 > tip.patch hg --cwd b import ../tip.patch rm -rf b echo % import of plain diff should be ok with message hg clone -r0 a b hg --cwd a diff -r0:1 > tip.patch hg --cwd b import -mpatch ../tip.patch rm -rf b echo % import from stdin hg clone -r0 a b hg --cwd a export tip | hg --cwd b import - rm -rf b echo % override commit message hg clone -r0 a b hg --cwd a export tip | hg --cwd b import -m 'override' - hg --cwd b tip | grep override rm -rf b cat > mkmsg.py <<EOF import email.Message, sys msg = email.Message.Message() msg.set_payload('email commit message\n' + open('tip.patch').read()) msg['Subject'] = 'email patch' msg['From'] = 'email patcher' sys.stdout.write(msg.as_string()) EOF echo % plain diff in email, subject, message body hg clone -r0 a b hg --cwd a diff -r0:1 > tip.patch python mkmsg.py > msg.patch hg --cwd b import ../msg.patch hg --cwd b tip | grep email rm -rf b echo % plain diff in email, no subject, message body hg clone -r0 a b grep -v '^Subject:' msg.patch | hg --cwd b import - rm -rf b echo % plain diff in email, subject, no message body hg clone -r0 a b grep -v '^email ' msg.patch | hg --cwd b import - rm -rf b echo % plain diff in email, no subject, no message body, should fail hg clone -r0 a b grep -v '^\(Subject\|email\)' msg.patch | hg --cwd b import - rm -rf b echo % hg export in email, should use patch header hg clone -r0 a b hg --cwd a export tip > tip.patch python mkmsg.py | hg --cwd b import - hg --cwd b tip | grep second rm -rf b