* Intermittent failures in t9119 @ 2010-12-04 2:19 Junio C Hamano 2010-12-05 1:21 ` David D. Kilzer 2010-12-05 20:39 ` Junio C Hamano 0 siblings, 2 replies; 8+ messages in thread From: Junio C Hamano @ 2010-12-04 2:19 UTC (permalink / raw) To: David D. Kilzer; +Cc: git Sorry for bringing up an old story, but since you added "git svn info" with e6fefa9 (git-svn info: implement info command, 2007-11-21),... I am seeing breakages from the said test: not ok - 6 info file # # (cd svnwc; svn info file) > expected.info-file && # (cd gitwc; git svn info file) > actual.info-file && # test_cmp expected.info-file actual.info-file : trash directory.t9119-git-svn-info/master; diff *.info-file 12c12 < Text Last Updated: 2010-12-04 00:34:58 +0000 (Sat, 04 Dec 2010) --- > Text Last Updated: 2010-12-04 00:34:57 +0000 (Sat, 04 Dec 2010) I do not know if we should expect output from "svn info" to match exactly like the above. Is "Text Last Updated" supposed to show the stat timestamp of the working tree (I see "(stat $path)[9]" there)? If so, unless the checkout/update in svnwc and gitwc prior to this test was done within the same second, we do not have a good reason to expect that these files should be identical. I _think_ "svn info file" actually gives the timestamp of the revision that touched the file the last (in their linear worldview of the history), so perhaps this is demonstrating the real bug, but only when the test runs very slowly? ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Intermittent failures in t9119 2010-12-04 2:19 Intermittent failures in t9119 Junio C Hamano @ 2010-12-05 1:21 ` David D. Kilzer 2010-12-05 4:50 ` Junio C Hamano 2010-12-05 20:39 ` Junio C Hamano 1 sibling, 1 reply; 8+ messages in thread From: David D. Kilzer @ 2010-12-05 1:21 UTC (permalink / raw) To: Junio C Hamano; +Cc: git On Fri, December 3, 2010 at 6:19:16 PM, Junio C Hamano wrote: > I am seeing breakages from the said test: > > not ok - 6 info file > # > # (cd svnwc; svn info file) > expected.info-file && > # (cd gitwc; git svn info file) > actual.info-file && > # test_cmp expected.info-file actual.info-file > > : trash directory.t9119-git-svn-info/master; diff *.info-file > 12c12 > < Text Last Updated: 2010-12-04 00:34:58 +0000 (Sat, 04 Dec 2010) > --- > > Text Last Updated: 2010-12-04 00:34:57 +0000 (Sat, 04 Dec 2010) > > I do not know if we should expect output from "svn info" to match exactly > like the above. Is "Text Last Updated" supposed to show the stat > timestamp of the working tree (I see "(stat $path)[9]" there)? If so, > unless the checkout/update in svnwc and gitwc prior to this test was done > within the same second, we do not have a good reason to expect that these > files should be identical. The modification timestamp (mtime) for the two files should be in sync due to this line in t9119-git-svn-info.sh in 'setup repository and import': ptouch gitwc/file svnwc/file && > I _think_ "svn info file" actually gives the timestamp of the revision > that touched the file the last (in their linear worldview of the history), > so perhaps this is demonstrating the real bug, but only when the test runs > very slowly? What platform/OS is the test failing on? I can't reproduce it on an 8-core Mac Pro with Mac OS X 10.6.5. Dave ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Intermittent failures in t9119 2010-12-05 1:21 ` David D. Kilzer @ 2010-12-05 4:50 ` Junio C Hamano 0 siblings, 0 replies; 8+ messages in thread From: Junio C Hamano @ 2010-12-05 4:50 UTC (permalink / raw) To: David D. Kilzer; +Cc: git "David D. Kilzer" <ddkilzer@kilzer.net> writes: > The modification timestamp (mtime) for the two files should be in sync due to > this line in t9119-git-svn-info.sh in 'setup repository and import': > > ptouch gitwc/file svnwc/file && Hmph. One explanation that may make sense is that something else is touching the file in the working tree after you run your ptouch script, but I don't know what it is. >> I _think_ "svn info file" actually gives the timestamp of the revision >> that touched the file the last (in their linear worldview of the history), >> so perhaps this is demonstrating the real bug, but only when the test runs >> very slowly? > > What platform/OS is the test failing on? An FC13 machine at k.org; I see 16 "Xeon X5550 @ 2.67GHz" in /proc/cpuinfo output. ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Intermittent failures in t9119 2010-12-04 2:19 Intermittent failures in t9119 Junio C Hamano 2010-12-05 1:21 ` David D. Kilzer @ 2010-12-05 20:39 ` Junio C Hamano 2010-12-06 19:10 ` Eric Wong 1 sibling, 1 reply; 8+ messages in thread From: Junio C Hamano @ 2010-12-05 20:39 UTC (permalink / raw) To: David D. Kilzer; +Cc: git, Eric Wong Junio C Hamano <gitster@pobox.com> writes: > Sorry for bringing up an old story, but since you added "git svn info" > with e6fefa9 (git-svn info: implement info command, 2007-11-21),... > > I am seeing breakages from the said test: > > not ok - 6 info file > # > # (cd svnwc; svn info file) > expected.info-file && > # (cd gitwc; git svn info file) > actual.info-file && > # test_cmp expected.info-file actual.info-file > > : trash directory.t9119-git-svn-info/master; diff *.info-file > 12c12 > < Text Last Updated: 2010-12-04 00:34:58 +0000 (Sat, 04 Dec 2010) > --- > > Text Last Updated: 2010-12-04 00:34:57 +0000 (Sat, 04 Dec 2010) > > I do not know if we should expect output from "svn info" to match exactly > like the above. Is "Text Last Updated" supposed to show the stat > timestamp of the working tree (I see "(stat $path)[9]" there)? > ... > > I _think_ "svn info file" actually gives the timestamp of the revision > that touched the file the last (in their linear worldview of the history), > so perhaps this is demonstrating the real bug, but only when the test runs > very slowly? I think we should not expect "git svn info" to match "svn info" at least at the "Text Last Updated" line. The former seems to want to report the timestamp of the working tree, but "svn info" does not seem to look at the file in the working tree. $ mkdir svntest $ cd svntest $ mkdir repo $ svnadmin create repo $ svn checkout file://$(pwd)/repo work Checked out revision 0. $ cd work $ echo hello >world; svn add world; svn commit -m initial A world Adding world Transmitting file data . Committed revision 1. $ svn info world | grep 'Text Last' Text Last Updated: 2010-12-05 12:24:52 -0800 (Sun, 05 Dec 2010) $ touch world $ svn info world | grep 'Text Last' Text Last Updated: 2010-12-05 12:24:52 -0800 (Sun, 05 Dec 2010) $ ls -l world -rw-rw-r-- 1 junio junio 6 2010-12-05 12:25 world $ rm world $ svn info world | grep 'Text Last' Text Last Updated: 2010-12-05 12:24:52 -0800 (Sun, 05 Dec 2010) I have these suspicions: (1) Somebody may have liked if "git svn info" exactly matched "svn info" in that it would give the timestamp of the commit object that touched the path the last in the current history. The current implementation in that sense is buggy; (2) Nobody uses the value from "Text Last Updated" field in practice, so that bug has been unnoticed so far; (3) And it is not worth fixing it ;-) For now, I would suggest fixing the failing test to ignore the "Text Last Updated" field while comparing, and if somebody is inclined to, we would update the code to match what "svn info" does. Thoughts? ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Intermittent failures in t9119 2010-12-05 20:39 ` Junio C Hamano @ 2010-12-06 19:10 ` Eric Wong 2010-12-07 0:00 ` Junio C Hamano 0 siblings, 1 reply; 8+ messages in thread From: Eric Wong @ 2010-12-06 19:10 UTC (permalink / raw) To: Junio C Hamano; +Cc: David D. Kilzer, git Junio C Hamano <gitster@pobox.com> wrote: > (2) Nobody uses the value from "Text Last Updated" field in practice, so > that bug has been unnoticed so far; > > (3) And it is not worth fixing it ;-) > > For now, I would suggest fixing the failing test to ignore the "Text Last > Updated" field while comparing, and if somebody is inclined to, we would > update the code to match what "svn info" does. Agreed on both points. I consider "git svn log" and "git svn info" to be reasonable approximations of svn behavior, not exact replicas. Exactly matching would be extremely difficult given variations between different svn versions, and also svn requiring network access while git svn does not. -- Eric Wong ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Intermittent failures in t9119 2010-12-06 19:10 ` Eric Wong @ 2010-12-07 0:00 ` Junio C Hamano 2010-12-09 17:55 ` Eric Wong 0 siblings, 1 reply; 8+ messages in thread From: Junio C Hamano @ 2010-12-07 0:00 UTC (permalink / raw) To: Eric Wong; +Cc: David D. Kilzer, git Eric Wong <normalperson@yhbt.net> writes: > Junio C Hamano <gitster@pobox.com> wrote: >> (2) Nobody uses the value from "Text Last Updated" field in practice, so >> that bug has been unnoticed so far; >> >> (3) And it is not worth fixing it ;-) >> >> For now, I would suggest fixing the failing test to ignore the "Text Last >> Updated" field while comparing, and if somebody is inclined to, we would >> update the code to match what "svn info" does. > > Agreed on both points. I consider "git svn log" and "git svn info" to > be reasonable approximations of svn behavior, not exact replicas. > Exactly matching would be extremely difficult given variations between > different svn versions, and also svn requiring network access while > git svn does not. Ok, here is a minimum patch to do that. -- >8 -- Subject: t9119: do not compare "Text Last Updated" line from "svn info" On the "Text Last Updated" line, "git svn info <file>" does not give the timestamp of the commit that touched the path most recently, unlike "svn info <file>". Do not expect the output from two commands to match on these lines. There was a "ptouch" attempt to transplant the timestamp from svn working tree files to corresponding git working tree files, which mostly hid this difference, but is made pointless now with this change. Remove the helper function and calls to it. Signed-off-by: Junio C Hamano <gitster@pobox.com> --- t/t9119-git-svn-info.sh | 106 +++++++++++++++-------------------------------- 1 files changed, 34 insertions(+), 72 deletions(-) diff --git a/t/t9119-git-svn-info.sh b/t/t9119-git-svn-info.sh index f3f397c..ff19695 100755 --- a/t/t9119-git-svn-info.sh +++ b/t/t9119-git-svn-info.sh @@ -18,21 +18,14 @@ case $v in ;; esac -ptouch() { - perl -w -e ' - use strict; - use POSIX qw(mktime); - die "ptouch requires exactly 2 arguments" if @ARGV != 2; - my $text_last_updated = shift @ARGV; - my $git_file = shift @ARGV; - die "\"$git_file\" does not exist" if ! -e $git_file; - if ($text_last_updated - =~ /(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})/) { - my $mtime = mktime($6, $5, $4, $3, $2 - 1, $1 - 1900); - my $atime = $mtime; - utime $atime, $mtime, $git_file; - } - ' "`svn_cmd info $2 | grep '^Text Last Updated:'`" "$1" +# On the "Text Last Updated" line, "git svn info" does not return the +# same value as "svn info" (i.e. the commit timestamp that touched the +# path most recently); do not expect that field to match. +test_cmp_info () { + sed -e '/^Text Last Updated:/d' "$1" >tmp.expect + sed -e '/^Text Last Updated:/d' "$2" >tmp.actual + test_cmp tmp.expect tmp.actual && + rm -f tmp.expect tmp.actual } quoted_svnrepo="$(echo $svnrepo | sed 's/ /%20/')" @@ -62,17 +55,13 @@ test_expect_success 'setup repository and import' ' cd gitwc && git svn init "$svnrepo" && git svn fetch - ) && - ptouch gitwc/file svnwc/file && - ptouch gitwc/directory svnwc/directory && - ptouch gitwc/symlink-file svnwc/symlink-file && - ptouch gitwc/symlink-directory svnwc/symlink-directory + ) ' test_expect_success 'info' " (cd svnwc; svn info) > expected.info && (cd gitwc; git svn info) > actual.info && - test_cmp expected.info actual.info + test_cmp_info expected.info actual.info " test_expect_success 'info --url' ' @@ -82,7 +71,7 @@ test_expect_success 'info --url' ' test_expect_success 'info .' " (cd svnwc; svn info .) > expected.info-dot && (cd gitwc; git svn info .) > actual.info-dot && - test_cmp expected.info-dot actual.info-dot + test_cmp_info expected.info-dot actual.info-dot " test_expect_success 'info --url .' ' @@ -92,7 +81,7 @@ test_expect_success 'info --url .' ' test_expect_success 'info file' " (cd svnwc; svn info file) > expected.info-file && (cd gitwc; git svn info file) > actual.info-file && - test_cmp expected.info-file actual.info-file + test_cmp_info expected.info-file actual.info-file " test_expect_success 'info --url file' ' @@ -102,13 +91,13 @@ test_expect_success 'info --url file' ' test_expect_success 'info directory' " (cd svnwc; svn info directory) > expected.info-directory && (cd gitwc; git svn info directory) > actual.info-directory && - test_cmp expected.info-directory actual.info-directory + test_cmp_info expected.info-directory actual.info-directory " test_expect_success 'info inside directory' " (cd svnwc/directory; svn info) > expected.info-inside-directory && (cd gitwc/directory; git svn info) > actual.info-inside-directory && - test_cmp expected.info-inside-directory actual.info-inside-directory + test_cmp_info expected.info-inside-directory actual.info-inside-directory " test_expect_success 'info --url directory' ' @@ -118,7 +107,7 @@ test_expect_success 'info --url directory' ' test_expect_success 'info symlink-file' " (cd svnwc; svn info symlink-file) > expected.info-symlink-file && (cd gitwc; git svn info symlink-file) > actual.info-symlink-file && - test_cmp expected.info-symlink-file actual.info-symlink-file + test_cmp_info expected.info-symlink-file actual.info-symlink-file " test_expect_success 'info --url symlink-file' ' @@ -131,7 +120,7 @@ test_expect_success 'info symlink-directory' " > expected.info-symlink-directory && (cd gitwc; git svn info symlink-directory) \ > actual.info-symlink-directory && - test_cmp expected.info-symlink-directory actual.info-symlink-directory + test_cmp_info expected.info-symlink-directory actual.info-symlink-directory " test_expect_success 'info --url symlink-directory' ' @@ -146,14 +135,13 @@ test_expect_success 'info added-file' " git add added-file ) && cp gitwc/added-file svnwc/added-file && - ptouch gitwc/added-file svnwc/added-file && ( cd svnwc && svn_cmd add added-file > /dev/null ) && (cd svnwc; svn info added-file) > expected.info-added-file && (cd gitwc; git svn info added-file) > actual.info-added-file && - test_cmp expected.info-added-file actual.info-added-file + test_cmp_info expected.info-added-file actual.info-added-file " test_expect_success 'info --url added-file' ' @@ -163,7 +151,6 @@ test_expect_success 'info --url added-file' ' test_expect_success 'info added-directory' " mkdir gitwc/added-directory svnwc/added-directory && - ptouch gitwc/added-directory svnwc/added-directory && touch gitwc/added-directory/.placeholder && ( cd svnwc && @@ -177,7 +164,7 @@ test_expect_success 'info added-directory' " > expected.info-added-directory && (cd gitwc; git svn info added-directory) \ > actual.info-added-directory && - test_cmp expected.info-added-directory actual.info-added-directory + test_cmp_info expected.info-added-directory actual.info-added-directory " test_expect_success 'info --url added-directory' ' @@ -196,13 +183,12 @@ test_expect_success 'info added-symlink-file' " ln -s added-file added-symlink-file && svn_cmd add added-symlink-file > /dev/null ) && - ptouch gitwc/added-symlink-file svnwc/added-symlink-file && (cd svnwc; svn info added-symlink-file) \ > expected.info-added-symlink-file && (cd gitwc; git svn info added-symlink-file) \ > actual.info-added-symlink-file && - test_cmp expected.info-added-symlink-file \ - actual.info-added-symlink-file + test_cmp_info expected.info-added-symlink-file \ + actual.info-added-symlink-file " test_expect_success 'info --url added-symlink-file' ' @@ -221,13 +207,12 @@ test_expect_success 'info added-symlink-directory' " ln -s added-directory added-symlink-directory && svn_cmd add added-symlink-directory > /dev/null ) && - ptouch gitwc/added-symlink-directory svnwc/added-symlink-directory && (cd svnwc; svn info added-symlink-directory) \ > expected.info-added-symlink-directory && (cd gitwc; git svn info added-symlink-directory) \ > actual.info-added-symlink-directory && - test_cmp expected.info-added-symlink-directory \ - actual.info-added-symlink-directory + test_cmp_info expected.info-added-symlink-directory \ + actual.info-added-symlink-directory " test_expect_success 'info --url added-symlink-directory' ' @@ -235,11 +220,6 @@ test_expect_success 'info --url added-symlink-directory' ' = "$quoted_svnrepo/added-symlink-directory" ' -# The next few tests replace the "Text Last Updated" value with a -# placeholder since git doesn't have a way to know the date that a -# now-deleted file was last checked out locally. Internally it -# simply reuses the Last Changed Date. - test_expect_success 'info deleted-file' " ( cd gitwc && @@ -249,13 +229,9 @@ test_expect_success 'info deleted-file' " cd svnwc && svn_cmd rm --force file > /dev/null ) && - (cd svnwc; svn info file) | - sed -e 's/^\(Text Last Updated:\).*/\1 TEXT-LAST-UPDATED-STRING/' \ - > expected.info-deleted-file && - (cd gitwc; git svn info file) | - sed -e 's/^\(Text Last Updated:\).*/\1 TEXT-LAST-UPDATED-STRING/' \ - > actual.info-deleted-file && - test_cmp expected.info-deleted-file actual.info-deleted-file + (cd svnwc; svn info file) >expected.info-deleted-file && + (cd gitwc; git svn info file) >actual.info-deleted-file && + test_cmp_info expected.info-deleted-file actual.info-deleted-file " test_expect_success 'info --url file (deleted)' ' @@ -272,13 +248,9 @@ test_expect_success 'info deleted-directory' " cd svnwc && svn_cmd rm --force directory > /dev/null ) && - (cd svnwc; svn info directory) | - sed -e 's/^\(Text Last Updated:\).*/\1 TEXT-LAST-UPDATED-STRING/' \ - > expected.info-deleted-directory && - (cd gitwc; git svn info directory) | - sed -e 's/^\(Text Last Updated:\).*/\1 TEXT-LAST-UPDATED-STRING/' \ - > actual.info-deleted-directory && - test_cmp expected.info-deleted-directory actual.info-deleted-directory + (cd svnwc; svn info directory) >expected.info-deleted-directory && + (cd gitwc; git svn info directory) >actual.info-deleted-directory && + test_cmp_info expected.info-deleted-directory actual.info-deleted-directory " test_expect_success 'info --url directory (deleted)' ' @@ -295,14 +267,9 @@ test_expect_success 'info deleted-symlink-file' " cd svnwc && svn_cmd rm --force symlink-file > /dev/null ) && - (cd svnwc; svn info symlink-file) | - sed -e 's/^\(Text Last Updated:\).*/\1 TEXT-LAST-UPDATED-STRING/' \ - > expected.info-deleted-symlink-file && - (cd gitwc; git svn info symlink-file) | - sed -e 's/^\(Text Last Updated:\).*/\1 TEXT-LAST-UPDATED-STRING/' \ - > actual.info-deleted-symlink-file && - test_cmp expected.info-deleted-symlink-file \ - actual.info-deleted-symlink-file + (cd svnwc; svn info symlink-file) >expected.info-deleted-symlink-file && + (cd gitwc; git svn info symlink-file) >actual.info-deleted-symlink-file && + test_cmp_info expected.info-deleted-symlink-file actual.info-deleted-symlink-file " test_expect_success 'info --url symlink-file (deleted)' ' @@ -319,14 +286,9 @@ test_expect_success 'info deleted-symlink-directory' " cd svnwc && svn_cmd rm --force symlink-directory > /dev/null ) && - (cd svnwc; svn info symlink-directory) | - sed -e 's/^\(Text Last Updated:\).*/\1 TEXT-LAST-UPDATED-STRING/' \ - > expected.info-deleted-symlink-directory && - (cd gitwc; git svn info symlink-directory) | - sed -e 's/^\(Text Last Updated:\).*/\1 TEXT-LAST-UPDATED-STRING/' \ - > actual.info-deleted-symlink-directory && - test_cmp expected.info-deleted-symlink-directory \ - actual.info-deleted-symlink-directory + (cd svnwc; svn info symlink-directory) >expected.info-deleted-symlink-directory && + (cd gitwc; git svn info symlink-directory) >actual.info-deleted-symlink-directory && + test_cmp_info expected.info-deleted-symlink-directory actual.info-deleted-symlink-directory " test_expect_success 'info --url symlink-directory (deleted)' ' ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: Intermittent failures in t9119 2010-12-07 0:00 ` Junio C Hamano @ 2010-12-09 17:55 ` Eric Wong 2010-12-31 14:13 ` David D. Kilzer 0 siblings, 1 reply; 8+ messages in thread From: Eric Wong @ 2010-12-09 17:55 UTC (permalink / raw) To: Junio C Hamano; +Cc: David D. Kilzer, git Junio C Hamano <gitster@pobox.com> wrote: > Eric Wong <normalperson@yhbt.net> writes: > > Junio C Hamano <gitster@pobox.com> wrote: > >> (2) Nobody uses the value from "Text Last Updated" field in practice, so > >> that bug has been unnoticed so far; > >> > >> (3) And it is not worth fixing it ;-) > >> > >> For now, I would suggest fixing the failing test to ignore the "Text Last > >> Updated" field while comparing, and if somebody is inclined to, we would > >> update the code to match what "svn info" does. > > > > Agreed on both points. I consider "git svn log" and "git svn info" to > > be reasonable approximations of svn behavior, not exact replicas. > > Exactly matching would be extremely difficult given variations between > > different svn versions, and also svn requiring network access while > > git svn does not. > > Ok, here is a minimum patch to do that. > Signed-off-by: Junio C Hamano <gitster@pobox.com> Thanks, Acked-by: Eric Wong <normalperson@yhbt.net> -- Eric Wong ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Intermittent failures in t9119 2010-12-09 17:55 ` Eric Wong @ 2010-12-31 14:13 ` David D. Kilzer 0 siblings, 0 replies; 8+ messages in thread From: David D. Kilzer @ 2010-12-31 14:13 UTC (permalink / raw) To: Eric Wong, Junio C Hamano; +Cc: git Eric Wong <normalperson@yhbt.net> wrote: > Junio C Hamano <gitster@pobox.com> wrote: > > Eric Wong <normalperson@yhbt.net> writes: > > > Junio C Hamano <gitster@pobox.com> wrote: > > >> (2) Nobody uses the value from "Text Last Updated" field in practice, >so > > >> that bug has been unnoticed so far; > > >> > > >> (3) And it is not worth fixing it ;-) > > >> > > >> For now, I would suggest fixing the failing test to ignore the "Text Last > > >> Updated" field while comparing, and if somebody is inclined to, we would > > >> update the code to match what "svn info" does. > > > > > > Agreed on both points. I consider "git svn log" and "git svn info" to > > > be reasonable approximations of svn behavior, not exact replicas. > > > Exactly matching would be extremely difficult given variations between > > > different svn versions, and also svn requiring network access while > > > git svn does not. > > > > Ok, here is a minimum patch to do that. > > > Signed-off-by: Junio C Hamano <gitster@pobox.com> > > Thanks, Acked-by: Eric Wong <normalperson@yhbt.net> Acked-by: David Kilzer <ddkilzer@kilzer.net> Thanks! Dave ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2010-12-31 14:14 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2010-12-04 2:19 Intermittent failures in t9119 Junio C Hamano 2010-12-05 1:21 ` David D. Kilzer 2010-12-05 4:50 ` Junio C Hamano 2010-12-05 20:39 ` Junio C Hamano 2010-12-06 19:10 ` Eric Wong 2010-12-07 0:00 ` Junio C Hamano 2010-12-09 17:55 ` Eric Wong 2010-12-31 14:13 ` David D. Kilzer
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).