Mercurial > hg-stable
view tests/test-commit @ 5137:2be225ea5722
extdiff: do single file diffs from the wc with no copy
Extdiff was always making a temporary directory and copying files even when not required. This change makes extdiff avoid the copy when diffing a single file that lives in the wc. This lets external diff tools edit the working copy file directly. It also lets other extensions resuse the functions in extdiff and get in-place diffs.
author | Brad Schick <schickb@gmail.com> |
---|---|
date | Mon, 06 Aug 2007 14:50:57 -0700 |
parents | 9e3e975258a9 |
children | 75c2071385da |
line wrap: on
line source
#!/bin/sh cleanpath() { sed -e "s:/.*\(/test/.*\):...\1:" } echo % commit date test hg init test cd test echo foo > foo hg add foo hg commit -d '0 0' -m commit-1 echo foo >> foo hg commit -d '1 4444444' -m commit-3 hg commit -d '1 15.1' -m commit-4 hg commit -d 'foo bar' -m commit-5 hg commit -d ' 1 4444' -m commit-6 hg commit -d '111111111111 0' -m commit-7 echo % partial commit test echo bar > bar hg add bar rm bar hg commit -d "1000000 0" -m commit-8 2>&1 | cleanpath hg -q revert -a --no-backup mkdir dir echo boo > dir/file hg add hg -v commit -d '0 0' -m commit-9 dir echo > dir.file hg add hg commit -d '0 0' -m commit-10 dir dir.file 2>&1 | cleanpath echo >> dir/file mkdir bleh mkdir dir2 cd bleh hg commit -d '0 0' -m commit-11 . 2>&1 | cleanpath hg commit -d '0 0' -m commit-12 ../dir ../dir2 2>&1 | cleanpath hg -v commit -d '0 0' -m commit-13 ../dir cd .. hg commit -d '0 0' -m commit-14 does-not-exist 2>&1 | cleanpath ln -s foo baz hg commit -d '0 0' -m commit-15 baz 2>&1 | cleanpath touch quux hg commit -d '0 0' -m commit-16 quux 2>&1 | cleanpath echo >> dir/file hg -v commit -d '0 0' -m commit-17 dir/file cd .. echo % partial subdir commit test hg init test2 cd test2 mkdir foo echo foo > foo/foo mkdir bar echo bar > bar/bar hg add hg ci -d '1000000 0' -u test -m commit-subdir-1 foo hg ci -d '1000001 0' -u test -m commit-subdir-2 bar echo % subdir log 1 hg log -v foo echo % subdir log 2 hg log -v bar echo % full log hg log -v cd .. echo % dot and subdir commit test hg init test3 cd test3 mkdir foo echo foo content > foo/plain-file hg add foo/plain-file hg ci -d '1000000 0' -u test -m commit-foo-subdir foo echo modified foo content > foo/plain-file hg ci -d '2000000 0' -u test -m commit-foo-dot . echo % full log hg log -v echo % subdir log cd foo hg log . cd .. cd .. exit 0