Mercurial > hg
view tests/test-import @ 10301:56b50194617f
templates: rename `Last change' column in hgwebdir repository list.
This patch changes column headers in the templates that previously
said `Last change' to `Last modified'. Neither code nor functionality
are changed other than that.
For some time now, I have been annoyed by the fact the `Last change'
column didn't list the age of the youngest changeset in the
repository, or at least tip. It just occurred to me that this is
because the wording is slightly misleading; what the column in fact
lists is when the repository was last *modified*, that is, when
changesets was last added or removed from it.
The word `change' can be understood as referring to the changeset
itself. Using `changed' would be ever so slightly less
amigous. However, the standard nomenclature in this case is
`modification date' and `Last modified', which is incidentally entirely
unambigous. Hence, `Last modified' is the wording used.
author | Dan Villiom Podlaski Christiansen <danchr@gmail.com> |
---|---|
date | Sun, 24 Jan 2010 20:51:53 +0100 |
parents | f0c5c59d878d |
children | 832f35386067 |
line wrap: on
line source
#!/bin/sh hg init a mkdir a/d1 mkdir a/d1/d2 echo line 1 > a/a echo line 1 > a/d1/d2/a hg --cwd a ci -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 -r b echo % import exported patch with external patcher cat > dummypatch.py <<EOF print 'patching file a' file('a', 'wb').write('line2\n') EOF chmod +x dummypatch.py hg clone -r0 a b hg --cwd a export tip > tip.patch hg --config ui.patch='python ../dummypatch.py' --cwd b import ../tip.patch cat b/a rm -r 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 -r 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 -r b echo % import of plain diff with specific date and user hg clone -r0 a b hg --cwd a diff -r0:1 > tip.patch hg --cwd b import -mpatch -d '1 0' -u 'user@nowhere.net' ../tip.patch hg -R b tip -pv rm -r b echo % import of plain diff should be ok with --no-commit hg clone -r0 a b hg --cwd a diff -r0:1 > tip.patch hg --cwd b import --no-commit ../tip.patch hg --cwd b diff --nodates rm -r b echo % hg -R repo import # put the clone in a subdir - having a directory named "a" # used to hide a bug. mkdir dir hg clone -r0 a dir/b hg --cwd a export tip > dir/tip.patch cd dir hg -R b import tip.patch cd .. rm -r dir echo % import from stdin hg clone -r0 a b hg --cwd a export tip | hg --cwd b import - rm -r 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 -r b cat > mkmsg.py <<EOF import email.Message, sys msg = email.Message.Message() msg.set_payload('email commit message\n' + open('tip.patch', 'rb').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 -r 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 -r 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 -r b echo % plain diff in email, no subject, no message body, should fail hg clone -r0 a b egrep -v '^(Subject|email)' msg.patch | hg --cwd b import - rm -r 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 -r b # subject: duplicate detection, removal of [PATCH] # The '---' tests the gitsendmail handling without proper mail headers cat > mkmsg2.py <<EOF import email.Message, sys msg = email.Message.Message() msg.set_payload('email patch\n\nnext line\n---\n' + open('tip.patch').read()) msg['Subject'] = '[PATCH] email patch' msg['From'] = 'email patcher' sys.stdout.write(msg.as_string()) EOF echo '% plain diff in email, [PATCH] subject, message body with subject' hg clone -r0 a b hg --cwd a diff -r0:1 > tip.patch python mkmsg2.py | hg --cwd b import - hg --cwd b tip --template '{desc}\n' rm -r b # We weren't backing up the correct dirstate file when importing many patches # (issue963) echo '% import patch1 patch2; rollback' echo line 3 >> a/a hg --cwd a ci -m'third change' hg --cwd a export -o '../patch%R' 1 2 hg clone -qr0 a b hg --cwd b parents --template 'parent: {rev}\n' hg --cwd b import ../patch1 ../patch2 hg --cwd b rollback hg --cwd b parents --template 'parent: {rev}\n' rm -r b # bug non regression test # importing a patch in a subdirectory failed at the commit stage echo line 2 >> a/d1/d2/a hg --cwd a ci -u someoneelse -d '1 0' -m'subdir change' echo % hg import in a subdirectory hg clone -r0 a b hg --cwd a export tip | sed -e 's/d1\/d2\///' > tip.patch dir=`pwd` cd b/d1/d2 2>&1 > /dev/null hg import ../../../tip.patch cd $dir echo "% message should be 'subdir change'" hg --cwd b tip | grep 'subdir change' echo "% committer should be 'someoneelse'" hg --cwd b tip | grep someoneelse echo "% should be empty" hg --cwd b status # Test fuzziness (ambiguous patch location, fuzz=2) echo % test fuzziness hg init fuzzy cd fuzzy echo line1 > a echo line0 >> a echo line3 >> a hg ci -Am adda echo line1 > a echo line2 >> a echo line0 >> a echo line3 >> a hg ci -m change a hg export tip > tip.patch hg up -C 0 echo line1 > a echo line0 >> a echo line1 >> a echo line0 >> a hg ci -m brancha hg import -v tip.patch cd .. # Test hunk touching empty files (issue906) hg init empty cd empty touch a touch b1 touch c1 echo d > d hg ci -Am init echo a > a echo b > b1 hg mv b1 b2 echo c > c1 hg copy c1 c2 rm d touch d hg diff --git hg ci -m empty hg export --git tip > empty.diff hg up -C 0 hg import empty.diff for name in a b1 b2 c1 c2 d; do echo % $name file test -f $name && cat $name done cd .. # Test importing a patch ending with a binary file removal echo % test trailing binary removal hg init binaryremoval cd binaryremoval echo a > a python -c "file('b', 'wb').write('a\x00b')" hg ci -Am addall hg rm a hg rm b hg st hg ci -m remove hg export --git . > remove.diff cat remove.diff | grep git hg up -C 0 hg import remove.diff hg manifest cd .. echo % 'test update+rename with common name (issue 927)' hg init t cd t touch a hg ci -Am t echo a > a # Here, bfile.startswith(afile) hg copy a a2 hg ci -m copya hg export --git tip > copy.diff hg up -C 0 hg import copy.diff echo % view a # a should contain an 'a' cat a echo % view a2 # and a2 should have duplicated it cat a2 cd .. echo % 'test -p0' hg init p0 cd p0 echo a > a hg ci -Am t hg import -p0 - << EOF foobar --- a Sat Apr 12 22:43:58 2008 -0400 +++ a Sat Apr 12 22:44:05 2008 -0400 @@ -1,1 +1,1 @@ -a +bb EOF hg status cat a cd .. echo % 'test paths outside repo root' mkdir outside touch outside/foo hg init inside cd inside hg import - <<EOF diff --git a/a b/b rename from ../outside/foo rename to bar EOF cd .. echo '% test import with similarity (issue295)' hg init sim cd sim echo 'this is a test' > a hg ci -Ama cat > ../rename.diff <<EOF diff --git a/a b/a deleted file mode 100644 --- a/a +++ /dev/null @@ -1,1 +0,0 @@ -this is a test diff --git a/b b/b new file mode 100644 --- /dev/null +++ b/b @@ -0,0 +1,2 @@ +this is a test +foo EOF hg import --no-commit -v -s 1 ../rename.diff hg st -C hg revert -a rm b hg import --no-commit -v -s 100 ../rename.diff hg st -C cd .. echo '% add empty file from the end of patch (issue 1495)' hg init addemptyend cd addemptyend touch a hg addremove hg ci -m "commit" cat > a.patch <<EOF diff --git a/a b/a --- a/a +++ b/a @@ -0,0 +1,1 @@ +a diff --git a/b b/b new file mode 100644 EOF hg import --no-commit a.patch cd .. echo '% create file when source is not /dev/null' cat > create.patch <<EOF diff -Naur proj-orig/foo proj-new/foo --- proj-orig/foo 1969-12-31 16:00:00.000000000 -0800 +++ proj-new/foo 2009-07-17 16:50:45.801368000 -0700 @@ -0,0 +1,1 @@ +a EOF hg init oddcreate cd oddcreate hg import --no-commit ../create.patch cat foo 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 ..