From 3cecc890c2688a695e0d8611022829cc3ee3b8e0 Mon Sep 17 00:00:00 2001 From: Christian Ebert Date: Fri, 11 Jan 2008 23:36:56 +0100 Subject: [PATCH 1/3] keyword: test that expansion is done filewise Checks issue fixed in e56f3648b9a0. --- tests/test-keyword | 13 +++++++++++++ tests/test-keyword.out | 14 ++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/tests/test-keyword b/tests/test-keyword index a21770d58a..0967fb8cfb 100755 --- a/tests/test-keyword +++ b/tests/test-keyword @@ -79,6 +79,19 @@ hg update echo % cat cat sym a b +echo % check whether expansion is filewise +echo '$Id$' > c +echo 'tests for different changenodes' >> c +echo % commit c +hg commit -A -mcndiff -d '1 0' -u 'User Name ' +echo % force expansion +hg -v kwexpand +echo % compare changenodes in a c +cat a c +echo % rollback and remove c +hg rollback +rm c + echo % copy hg cp a c diff --git a/tests/test-keyword.out b/tests/test-keyword.out index baaf96dd8c..3585294027 100644 --- a/tests/test-keyword.out +++ b/tests/test-keyword.out @@ -146,6 +146,20 @@ expand $Id: a,v f782df5f9602 1970/01/01 00:00:00 user $ do not process $Id: xxx $ ignore $Id$ +% check whether expansion is filewise +% commit c +adding c +% force expansion +overwriting a expanding keywords +overwriting c expanding keywords +% compare changenodes in a c +expand $Id: a,v f782df5f9602 1970/01/01 00:00:00 user $ +do not process $Id: +xxx $ +$Id: c,v ba4426d1938e 1970/01/01 00:00:01 user $ +tests for different changenodes +% rollback and remove c +rolling back last transaction % copy % kwfiles added a From 262c766059dea375944b6b298ff9e7227bcd3c40 Mon Sep 17 00:00:00 2001 From: Matt Mackall Date: Mon, 14 Jan 2008 16:28:32 -0600 Subject: [PATCH 2/3] merge: add a bit more sanity to divergent copy checks --- mercurial/merge.py | 14 ++++++++------ tests/test-rename-merge1.out | 4 ++-- tests/test-rename-merge2.out | 4 ++-- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/mercurial/merge.py b/mercurial/merge.py index 6d08eb1c56..8f25d6cb8c 100644 --- a/mercurial/merge.py +++ b/mercurial/merge.py @@ -210,21 +210,23 @@ def findcopies(repo, m1, m2, ma, limit): for f in u2: checkcopies(ctx(f, m2[f]), m1, ma) - d2 = {} + diverge2 = {} for of, fl in diverge.items(): - for f in fl: - fo = list(fl) - fo.remove(f) - d2[f] = (of, fo) + if len(fl) == 1: + del diverge[of] # not actually divergent + else: + diverge2.update(dict.fromkeys(fl)) # reverse map for below if fullcopy: repo.ui.debug(_(" all copies found (* = to merge, ! = divergent):\n")) for f in fullcopy: note = "" if f in copy: note += "*" - if f in diverge: note += "!" + if f in diverge2: note += "!" repo.ui.debug(_(" %s -> %s %s\n") % (f, fullcopy[f], note)) + del diverge2 + if not fullcopy or not repo.ui.configbool("merge", "followdirs", True): return copy, diverge diff --git a/tests/test-rename-merge1.out b/tests/test-rename-merge1.out index 1c0ea5edcc..c486de1e54 100644 --- a/tests/test-rename-merge1.out +++ b/tests/test-rename-merge1.out @@ -11,9 +11,9 @@ resolving manifests b b2 all copies found (* = to merge, ! = divergent): - c2 -> a2 + c2 -> a2 ! b -> a * - b2 -> a2 + b2 -> a2 ! checking for directory renames a2: divergent renames -> dr a: remote moved to b -> m diff --git a/tests/test-rename-merge2.out b/tests/test-rename-merge2.out index 22e75294af..a6d0fa2e2d 100644 --- a/tests/test-rename-merge2.out +++ b/tests/test-rename-merge2.out @@ -228,8 +228,8 @@ resolving manifests unmatched files in other: c all copies found (* = to merge, ! = divergent): - c -> a - b -> a + c -> a ! + b -> a ! checking for directory renames a: divergent renames -> dr rev: versions differ -> m From ce5f6f93a6616550c2112e44b2b078f2e60f4216 Mon Sep 17 00:00:00 2001 From: Giorgos Keramidas Date: Fri, 11 Jan 2008 23:30:56 +0200 Subject: [PATCH 3/3] Display debugstate dates as '%Y-%m-%d %H:%M:%S' --- mercurial/commands.py | 4 ++-- tests/test-convert-hg-sink.out | 2 +- tests/test-filebranch | 4 ++-- tests/test-issue522.out | 2 +- tests/test-rebuildstate | 4 ++-- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/mercurial/commands.py b/mercurial/commands.py index 041d0dab0b..0da0199d9e 100644 --- a/mercurial/commands.py +++ b/mercurial/commands.py @@ -670,11 +670,11 @@ def debugstate(ui, repo): for file_, ent in k: if ent[3] == -1: # Pad or slice to locale representation - locale_len = len(time.strftime("%x %X", time.localtime(0))) + locale_len = len(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(0))) timestr = 'unset' timestr = timestr[:locale_len] + ' '*(locale_len - len(timestr)) else: - timestr = time.strftime("%x %X", time.localtime(ent[3])) + timestr = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(ent[3])) if ent[1] & 020000: mode = 'lnk' else: diff --git a/tests/test-convert-hg-sink.out b/tests/test-convert-hg-sink.out index 7c465e8eeb..9ccc187b33 100644 --- a/tests/test-convert-hg-sink.out +++ b/tests/test-convert-hg-sink.out @@ -34,7 +34,7 @@ no changes found % dirstate should be empty: 3 files updated, 0 files merged, 0 files removed, 0 files unresolved % put something in the dirstate: -a 0 -1 unset baz +a 0 -1 unset baz copy: bar -> baz % add a new revision in the original repo scanning source... diff --git a/tests/test-filebranch b/tests/test-filebranch index d2fdf1c2b8..db60abd174 100755 --- a/tests/test-filebranch +++ b/tests/test-filebranch @@ -37,7 +37,7 @@ echo 2b > baz hg commit -m "branch b" -d "1000000 0" echo "we shouldn't have anything but n state here" -hg debugstate | cut -b 1-16,35- +hg debugstate | cut -b 1-16,37- echo merging hg pull ../a @@ -48,7 +48,7 @@ echo 2b > baz echo new > quux echo "we shouldn't have anything but foo in merge state here" -hg debugstate | cut -b 1-16,35- | grep "^m" +hg debugstate | cut -b 1-16,37- | grep "^m" hg ci -m "merge" -d "1000000 0" diff --git a/tests/test-issue522.out b/tests/test-issue522.out index 17a8451007..e58d775778 100644 --- a/tests/test-issue522.out +++ b/tests/test-issue522.out @@ -11,7 +11,7 @@ resolving manifests getting foo 1 files updated, 0 files merged, 0 files removed, 0 files unresolved (branch merge, don't forget to commit) -n 0 -2 unset foo +n 0 -2 unset foo M foo c6fc755d7e68f49f880599da29f15add41f42f5a 644 foo rev offset length base linkrev nodeid p1 p2 diff --git a/tests/test-rebuildstate b/tests/test-rebuildstate index 5838b5b952..c0d16c7c00 100755 --- a/tests/test-rebuildstate +++ b/tests/test-rebuildstate @@ -12,13 +12,13 @@ hg add baz hg rm bar echo '% state dump' -hg debugstate | cut -b 1-16,35- | sort +hg debugstate | cut -b 1-16,37- | sort echo '% status' hg st -A hg debugrebuildstate echo '% state dump' -hg debugstate | cut -b 1-16,35- | sort +hg debugstate | cut -b 1-16,37- | sort echo '% status' hg st -A