tests/test-commit.out
author Alexis S. L. Carvalho <alexis@cecm.usp.br>
Sat, 09 Jun 2007 01:04:28 -0300
changeset 4531 b51a8138292a
parent 4256 fe0fe0b4d73b
child 4970 30d4d8985dd8
permissions -rw-r--r--
Avoid extra filelogs entries. Right now, there are some situations in which localrepo.filecommit can create filelog entries even though they're not needed. For example: - permissions for a file have changed; - qrefresh can create a filelog entry identical to its parent (see the added test); - convert-repo creates extra filelog entries in every merge where the first parent has added files (for example, changeset ebebe9577a1a of the kernel repo added extra filelog entries to files in the arch/blackfin directory, even though the merge should only touch the drivers/ata directory). This makes "hg log file" in a converted repo less useful than it could be, since it may mention many merges that don't actually touch that specific file. They all come from the same basic problem: localrepo.commit (through filecommit) creates new filelog entries for all files passed to it (except for some cases during a merge). Patch and test case provided by Benoit. This should fix issue351.

% commit date test
abort: impossible time zone offset: 4444444
transaction abort!
rollback completed
abort: invalid date: '1\t15.1' 
transaction abort!
rollback completed
abort: invalid date: 'foo bar' 
transaction abort!
rollback completed
nothing changed
% partial commit test
trouble committing bar!
abort: No such file or directory: .../test/bar
adding dir/file
dir/file
adding dir.file
abort: no match under directory .../test/dir!
abort: no match under directory .../test/bleh!
abort: no match under directory .../test/dir2!
dir/file
does-not-exist: No such file or directory
abort: file .../test/does-not-exist not found!
abort: file .../test/baz not tracked!
abort: file .../test/quux not tracked!
dir/file
% partial subdir commit test
adding bar/bar
adding foo/foo
% subdir log 1
changeset:   0:6ef3cb06bb80
user:        test
date:        Mon Jan 12 13:46:40 1970 +0000
files:       foo/foo
description:
commit-subdir-1


% subdir log 2
changeset:   1:f2e51572cf5a
tag:         tip
user:        test
date:        Mon Jan 12 13:46:41 1970 +0000
files:       bar/bar
description:
commit-subdir-2


% full log
changeset:   1:f2e51572cf5a
tag:         tip
user:        test
date:        Mon Jan 12 13:46:41 1970 +0000
files:       bar/bar
description:
commit-subdir-2


changeset:   0:6ef3cb06bb80
user:        test
date:        Mon Jan 12 13:46:40 1970 +0000
files:       foo/foo
description:
commit-subdir-1


% dot and subdir commit test
% full log
changeset:   1:d9180e04fa8a
tag:         tip
user:        test
date:        Sat Jan 24 03:33:20 1970 +0000
files:       foo/plain-file
description:
commit-foo-dot


changeset:   0:80b572aaf098
user:        test
date:        Mon Jan 12 13:46:40 1970 +0000
files:       foo/plain-file
description:
commit-foo-subdir


% subdir log
changeset:   1:d9180e04fa8a
tag:         tip
user:        test
date:        Sat Jan 24 03:33:20 1970 +0000
summary:     commit-foo-dot

changeset:   0:80b572aaf098
user:        test
date:        Mon Jan 12 13:46:40 1970 +0000
summary:     commit-foo-subdir