--- a/mercurial/patch.py Wed Oct 07 22:50:20 2009 +0200
+++ b/mercurial/patch.py Fri Oct 09 00:29:39 2009 +0200
@@ -63,6 +63,10 @@
subject = msg['Subject']
user = msg['From']
+ if not subject and not user:
+ # Not an email, restore parsed headers if any
+ subject = '\n'.join(': '.join(h) for h in msg.items()) + '\n'
+
gitsendmail = 'git-send-email' in msg.get('X-Mailer', '')
# should try to parse msg['Date']
date = None
--- a/mercurial/windows.py Wed Oct 07 22:50:20 2009 +0200
+++ b/mercurial/windows.py Fri Oct 09 00:29:39 2009 +0200
@@ -267,7 +267,7 @@
head, tail = os.path.split(head)
while head and tail:
try:
- if osutil.listdir(name):
+ if osutil.listdir(head):
return
os.rmdir(head)
except:
--- a/tests/test-import Wed Oct 07 22:50:20 2009 +0200
+++ b/tests/test-import Fri Oct 09 00:29:39 2009 +0200
@@ -345,3 +345,24 @@
cd oddcreate
hg import --no-commit ../create.patch
cat foo
+cd ..
+
+echo % 'first line mistaken for email headers (issue 1859)'
+hg init emailconfusion
+cd emailconfusion
+cat > a.patch <<EOF
+module: summary
+
+description
+
+
+diff -r 000000000000 -r 9b4c1e343b55 test.txt
+--- /dev/null
++++ b/a
+@@ -0,0 +1,1 @@
++a
+EOF
+hg import -d '0 0' a.patch
+hg parents -v
+cd ..
+
--- a/tests/test-import.out Wed Oct 07 22:50:20 2009 +0200
+++ b/tests/test-import.out Fri Oct 09 00:29:39 2009 +0200
@@ -295,3 +295,16 @@
% create file when source is not /dev/null
applying ../create.patch
a
+% first line mistaken for email headers (issue 1859)
+applying a.patch
+changeset: 0:5a681217c0ad
+tag: tip
+user: test
+date: Thu Jan 01 00:00:00 1970 +0000
+files: a
+description:
+module: summary
+
+description
+
+
--- a/tests/test-remove Wed Oct 07 22:50:20 2009 +0200
+++ b/tests/test-remove Fri Oct 09 00:29:39 2009 +0200
@@ -108,3 +108,12 @@
echo % dir, options -Af
rm test/bar
remove -Af test
+
+echo 'test remove dropping empty trees (issue1861)'
+mkdir -p issue1861/b/c
+echo x > issue1861/x
+echo y > issue1861/b/c/y
+hg ci -Am add
+hg rm issue1861/b
+hg ci -m remove
+ls issue1861
--- a/tests/test-remove.out Wed Oct 07 22:50:20 2009 +0200
+++ b/tests/test-remove.out Fri Oct 09 00:29:39 2009 +0200
@@ -111,3 +111,8 @@
./foo
./test/foo
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
+test remove dropping empty trees (issue1861)
+adding issue1861/b/c/y
+adding issue1861/x
+removing issue1861/b/c/y
+x