# HG changeset patch # User Thomas Arendsen Hein # Date 2008-01-15 22:04:44 # Node ID ad08dfad7e7be87f6427facb11c7c4a10f22e29a # Parent 493632bb171c42b272fec8b7d873b945eede13f3 # Parent e7ed5d07cc4c987a5c9e3fbb5476acbf5cb76d1f merge with main diff --git a/mercurial/commands.py b/mercurial/commands.py --- 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/mercurial/merge.py b/mercurial/merge.py --- 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-convert-hg-sink.out b/tests/test-convert-hg-sink.out --- 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 --- 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 --- 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-keyword b/tests/test-keyword --- 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 --- a/tests/test-keyword.out +++ b/tests/test-keyword.out @@ -146,6 +146,20 @@ expand $Id: a,v f782df5f9602 1970/01/01 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 diff --git a/tests/test-rebuildstate b/tests/test-rebuildstate --- 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 diff --git a/tests/test-rename-merge1.out b/tests/test-rename-merge1.out --- 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 --- 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