Mercurial > hg
graph
-
branching: merge stable into defaultMon, 03 May 2021 18:55:19 +0200, by Raphaël Gomès
-
phabricator: adapt to the new `urlutil.url()` API stable 5.8Sat, 01 May 2021 00:28:39 -0400, by Matt Harbison
-
extensions: ignore exceptions from an extension's `getversion()` method stableFri, 30 Apr 2021 17:36:09 -0400, by Matt Harbison
-
git: ensure all dirstate state values are bytes stableWed, 28 Apr 2021 17:05:32 -0400, by Matt Harbison
-
tests: synchronize the git and Mercurial username stableWed, 28 Apr 2021 10:29:45 -0400, by Matt Harbison
-
git: initialize `extra` to have at least the branch name for nullid stableTue, 27 Apr 2021 19:38:19 -0400, by Matt Harbison
-
git: consistently use str for parents when rebuilding the index database stableTue, 27 Apr 2021 18:39:59 -0400, by Matt Harbison
-
git: pass the correct type to the sqlite3 query for baselog.hasnode() stableTue, 27 Apr 2021 17:54:08 -0400, by Matt Harbison
-
git: use the correct type for stopping changelog.revs() stableTue, 27 Apr 2021 17:11:55 -0400, by Matt Harbison
-
git: use the proper filenode for deleted files in changelog.changelogrevision stableTue, 27 Apr 2021 16:58:59 -0400, by Matt Harbison
-
tests: add coverage for git.changelog.headrevs(...) stableTue, 27 Apr 2021 12:59:17 -0400, by Matt Harbison
-
git: make changelog.tiprev() return int instead of tuple (issue6510) stableTue, 27 Apr 2021 12:31:30 -0400, by Matt Harbison
-
tests: stabilize test-git-interop.t for some versions of git stableTue, 27 Apr 2021 00:23:05 -0400, by Matt Harbison
-
manifests: push down expected node length into the parserFri, 30 Apr 2021 02:11:58 +0200, by Joerg Sonnenberger
-
core: don't hard-code node lengthFri, 30 Apr 2021 03:19:45 +0200, by Joerg Sonnenberger
-
core: don't hard-code hex node lengthsFri, 30 Apr 2021 03:09:16 +0200, by Joerg Sonnenberger
-
enforcesinglehead-test: add the expected node output next to the errorMon, 03 May 2021 02:33:00 +0200, by Pierre-Yves David
-
revlog: code for `revlogv0` in its own moduleThu, 08 Apr 2021 00:34:16 +0200, by Pierre-Yves David
-
revlog: have an explicit "pack_header" methodThu, 01 Apr 2021 11:31:54 +0200, by Pierre-Yves David
-
revlog: remove the revlogio classSat, 01 May 2021 14:47:39 +0200, by Pierre-Yves David
-
revlog: fix some comment styleSat, 01 May 2021 14:47:33 +0200, by Pierre-Yves David
-
revlog: add a `entry_binary` method on indexThu, 08 Apr 2021 00:01:11 +0200, by Pierre-Yves David
-
template: make an explicit closure for formatting entry in peerurlsThu, 15 Apr 2021 12:08:34 +0200, by Pierre-Yves David
-
template: use `list_paths` in `peerurls`Thu, 15 Apr 2021 11:50:08 +0200, by Pierre-Yves David
-
paths: use `list_paths` in `hg paths`Thu, 15 Apr 2021 11:48:29 +0200, by Pierre-Yves David
-
urlutil: introduce a new `list_paths` functionThu, 15 Apr 2021 11:46:31 +0200, by Pierre-Yves David
-
urlutil: deprecate `getpath`Thu, 15 Apr 2021 10:05:51 +0200, by Pierre-Yves David
-
urlutil: inline the relevant part of `getpath` in `get_push_paths`Thu, 15 Apr 2021 10:01:44 +0200, by Pierre-Yves David
-
url_util: introduce a `try_path` functionThu, 15 Apr 2021 09:50:56 +0200, by Pierre-Yves David
-
narrow: add more status messages when narrowingTue, 20 Apr 2021 11:22:35 -0700, by Martin von Zweigbergk
-
narrow: add progress-reporting when looking for local changes in `hg tracked`Tue, 20 Apr 2021 10:24:03 -0700, by Martin von Zweigbergk
-
chg: pass --no-profile to disable profiling when starting hg serveFri, 16 Apr 2021 16:21:26 -0700, by Kyle Lippincott
-
profiling: add --no-profile to disable profiling enabled via configFri, 16 Apr 2021 15:31:05 -0700, by Kyle Lippincott
-
tests: fix test-chg to ignore a warning about being unable to set localeFri, 16 Apr 2021 18:56:26 -0700, by Kyle Lippincott
-
branch: delete obsolete message about changing branch of obsolete commitTue, 27 Apr 2021 14:36:52 -0700, by Martin von Zweigbergk
-
rewriteutil: check for divergenceTue, 23 Feb 2021 10:28:42 -0800, by Martin von Zweigbergk
-
rewriteutil: adapt "cannot %s while merging" to work with "change branch of"Wed, 28 Apr 2021 08:48:10 -0700, by Martin von Zweigbergk
-
rewriteutil: point to help about instability when rewriting creates orphanThu, 11 Feb 2021 15:11:10 -0800, by Martin von Zweigbergk
-
help: add topic about evolution, based on text from evolve extensionTue, 27 Apr 2021 14:59:45 -0700, by Martin von Zweigbergk
-
rewriteutil: add devel warning if precheck is called with contextsThu, 11 Feb 2021 15:02:57 -0800, by Martin von Zweigbergk
-
rewriteutil: replace "null changeset" by "the null revision" in error messageTue, 27 Apr 2021 11:02:41 -0700, by Martin von Zweigbergk
-
relnotes: copy contents of "next" to "5.8" and clear "next" stableTue, 20 Apr 2021 08:28:11 -0700, by Martin von Zweigbergk
-
dirstateguard: use mktemp-like functionality to generate the backup filenames stableTue, 20 Apr 2021 13:01:47 -0700, by Kyle Lippincott
-
node: replace nullid and friends with nodeconstants classMon, 29 Mar 2021 01:52:06 +0200, by Joerg Sonnenberger
-
repoview: separate concerns in _filteredrepotypes comment stableSat, 24 Apr 2021 16:30:05 +0200, by Georges Racinet
-
repoview: fix memory leak of filtered repo classes stableFri, 23 Apr 2021 18:30:53 +0200, by Georges Racinet
-
repoview: style change in newtype() cache handling stableSat, 24 Apr 2021 15:46:39 +0200, by Georges Racinet
-
typing: enable pytype processing on mercurial/upgrade_utils/actions.py stableWed, 14 Apr 2021 09:49:36 -0400, by Matt Harbison
-
Added tag 5.8rc1 for changeset 8d2b62d716b0 stableWed, 21 Apr 2021 10:49:28 -0400, by Augie Fackler
-
relnote: document the use of persistent-nodemap by default for Rust build stableTue, 20 Apr 2021 16:29:05 +0200, by Pierre-Yves David
-
relnode: document the move to `zstd` as default compression stableTue, 20 Apr 2021 16:18:43 +0200, by Pierre-Yves David
-
relnote: clarify the backward compatibility entry about p1/p2 swap stableTue, 20 Apr 2021 16:12:19 +0200, by Pierre-Yves David
-
packaging: extract pre-computed version when running from plain tarball stable 5.8rc1Tue, 20 Apr 2021 20:35:46 +0200, by Joerg Sonnenberger
-
Added tag 5.8rc0 for changeset f67b8946bb1b stableTue, 20 Apr 2021 11:12:19 -0400, by Augie Fackler
-
merge: default into stable for 5.8 rc stable 5.8rc0Tue, 20 Apr 2021 11:01:06 -0400, by Augie Fackler
-
mail: force SMTPException to bytes before wrapping in error.AbortMon, 19 Apr 2021 20:38:52 -0400, by Matt Harbison
-
mail: split out the SMTP login to allow the keyring extension to wrap itMon, 19 Apr 2021 17:26:57 -0400, by Matt Harbison
-
store: exclude `undo.` nodemap's file from `walk`Tue, 20 Apr 2021 04:27:03 +0200, by Pierre-Yves David
-
streamclone: treat volatile file as "fullfile"Tue, 20 Apr 2021 05:08:55 +0200, by Pierre-Yves David
-
nodemap: add a test about nodemap "vacuum" during stream cloneMon, 19 Apr 2021 20:47:46 +0200, by Pierre-Yves David
-
nodemap: add a test about racy commit during stream cloneMon, 19 Apr 2021 20:24:13 +0200, by Pierre-Yves David
-
streamclone: remove sleep based "synchronisation" in testsMon, 19 Apr 2021 19:12:28 +0200, by Pierre-Yves David
-
testing: add a `write_file` functionMon, 19 Apr 2021 19:10:49 +0200, by Pierre-Yves David
-
testing: add a utility function to wait for file createMon, 19 Apr 2021 19:10:18 +0200, by Pierre-Yves David
-
streamclone: check the errors log in testsMon, 19 Apr 2021 19:09:18 +0200, by Pierre-Yves David
-
mail: use a context manager when writing to mboxTue, 20 Apr 2021 00:23:56 -0400, by Matt Harbison
-
errors: remove unnecessary varargs handling from OutOfBandErrorMon, 19 Apr 2021 21:31:24 -0700, by Martin von Zweigbergk
-
phab-refresh: use a special comment on the stable branchMon, 19 Apr 2021 11:10:16 +0200, by Pierre-Yves David
-
phab-refresh: extract the comment in a variableMon, 19 Apr 2021 11:04:11 +0200, by Pierre-Yves David
-
tests: make test-archive.t pass on py3.9 (issue6504)Mon, 19 Apr 2021 16:53:45 -0700, by Martin von Zweigbergk
-
errors: raise RemoteError in some places in exchange.pyMon, 19 Apr 2021 12:52:23 -0700, by Martin von Zweigbergk
-
errors: introduce a class for remote errorsMon, 19 Apr 2021 09:37:01 -0700, by Martin von Zweigbergk
-
errors: make OutOfBandError extend AbortMon, 19 Apr 2021 10:49:15 -0700, by Martin von Zweigbergk
-
revlog: replace revlog._io.size with a new revlog.index.entry_sizeMon, 05 Apr 2021 12:22:25 +0200, by Pierre-Yves David
-
perf-discovery: use `get_unique_pull_path`Wed, 14 Apr 2021 20:32:53 +0200, by Pierre-Yves David
-
help: clarify when `$HG_URL` and `$HG_SOURCE` are added in hooksWed, 14 Apr 2021 00:38:25 +0800, by Aay Jay Chan
-
nodemap: deal with data mmap errorFri, 16 Apr 2021 15:39:00 +0200, by Pierre-Yves David
-
nodemap: test various corruption scenario for the persistent nodemapFri, 16 Apr 2021 14:59:13 +0200, by Pierre-Yves David
-
cmdutil: fix an uninitialize variable usage in clearunfinished()Sat, 17 Apr 2021 00:28:21 -0400, by Matt Harbison
-
help: document `$HG_NEW_OBSMARKERS` in pretxnclose hookMon, 05 Apr 2021 14:19:17 +0800, by Aay Jay Chan
-
help: prepend environment variables used in hooks with "$"Thu, 01 Apr 2021 22:43:55 +0800, by Aay Jay Chan
-
revset: drop an outdated commentThu, 15 Apr 2021 09:59:12 +0200, by Pierre-Yves David
-
ui: deprecated `ui.expandpath`Thu, 15 Apr 2021 01:03:12 +0200, by Pierre-Yves David
-
urlutil: remove usage of `ui.expandpath` in `get_clone_path`Wed, 14 Apr 2021 21:29:27 +0200, by Pierre-Yves David
-
urlutil: remove usage of `ui.expandpath` in `get_unique_pull_path`Wed, 14 Apr 2021 21:27:00 +0200, by Pierre-Yves David
-
urlutil: remove usage of `ui.expandpath` in `get_pull_paths`Wed, 14 Apr 2021 21:20:58 +0200, by Pierre-Yves David
-
debugbackupbundle: use `get_unique_pull_path`Wed, 14 Apr 2021 21:15:53 +0200, by Pierre-Yves David
-
debugssl: use `get_unique_pull_path`Wed, 14 Apr 2021 21:15:22 +0200, by Pierre-Yves David
-
debugdiscovery: use `get_unique_pull_path`Wed, 14 Apr 2021 21:11:39 +0200, by Pierre-Yves David
-
profiling: use `util.expandpath` instead of `ui.expandpath` for outputWed, 14 Apr 2021 21:02:38 +0200, by Pierre-Yves David
-
dispatch: use the new API to resolve --repositoryWed, 14 Apr 2021 20:57:34 +0200, by Pierre-Yves David
-
revset: use `get_unique_pull_path` for `remote(…)`Wed, 14 Apr 2021 20:21:11 +0200, by Pierre-Yves David
-
remotefilelog: use `get_unique_pull_path` in `getflogheads`Wed, 14 Apr 2021 20:15:09 +0200, by Pierre-Yves David
-
summary: use the new APIsWed, 14 Apr 2021 19:30:48 +0200, by Pierre-Yves David
-
share: use `get_clone_path`Wed, 14 Apr 2021 18:37:29 +0200, by Pierre-Yves David
-
init: use `get_clone_path` when suitableWed, 14 Apr 2021 18:02:25 +0200, by Pierre-Yves David
-
clone: use `get_clone_path`Wed, 14 Apr 2021 18:34:42 +0200, by Pierre-Yves David
-
incoming: kill the `repo._subtoppath =` hackWed, 14 Apr 2021 17:41:02 +0200, by Pierre-Yves David
-
identify: use `get_unique_pull_path`Wed, 14 Apr 2021 17:29:27 +0200, by Pierre-Yves David
-
bundle: support multiple destinationsWed, 14 Apr 2021 17:02:20 +0200, by Pierre-Yves David
-
lfs: use the new APIsWed, 14 Apr 2021 14:35:13 +0200, by Pierre-Yves David
-
fastannotate: use `get_unique_pull_path`Wed, 14 Apr 2021 13:06:09 +0200, by Pierre-Yves David
-
remotefilelog: use the right expandpath in to expand `~`Wed, 14 Apr 2021 12:57:55 +0200, by Pierre-Yves David
-
transplant: use `get_unique_pull_path`Fri, 16 Apr 2021 10:46:56 +0200, by Pierre-Yves David
-
infinitepush: use `get_unique_pull_path`Fri, 16 Apr 2021 10:46:52 +0200, by Pierre-Yves David
-
relink: use `get_unique_pull_path`Wed, 14 Apr 2021 12:29:44 +0200, by Pierre-Yves David
-
histedit: use `get_unique_push_path`Wed, 14 Apr 2021 12:01:27 +0200, by Pierre-Yves David
-
urlutil: add a new `get_unique_push_path`Wed, 14 Apr 2021 11:57:20 +0200, by Pierre-Yves David
-
fetch: use `get_unique_pull_path` to retrieve the pathWed, 14 Apr 2021 11:38:10 +0200, by Pierre-Yves David
-
patchbomb: use `get_unique_pull_path`Wed, 14 Apr 2021 11:30:49 +0200, by Pierre-Yves David
-
narrow: use `get_unique_pull_path`Wed, 14 Apr 2021 11:18:48 +0200, by Pierre-Yves David
-
urlutil: add a new `get_unique_pull_path`Wed, 14 Apr 2021 11:15:54 +0200, by Pierre-Yves David
-
mq: use the new `get_clone_path` to get the remote urlWed, 14 Apr 2021 10:51:31 +0200, by Pierre-Yves David
-
urlutil: add a `get_clone_path` functionWed, 14 Apr 2021 10:35:40 +0200, by Pierre-Yves David
-
outgoing: use `get_push_paths` in the revset tooSun, 11 Apr 2021 19:18:54 +0200, by Pierre-Yves David
-
incoming: use `urlutil.get_pull_paths`Wed, 14 Apr 2021 02:14:15 +0200, by Pierre-Yves David
-
outgoing: accept multiple destinationsWed, 14 Apr 2021 01:26:44 +0200, by Pierre-Yves David
-
outgoing: pass subrepo path using function argument instead of abssource hackThu, 15 Apr 2021 09:23:28 +0200, by Pierre-Yves David
-
subrepo: introduce a `repo_rel_or_abs_source` functionThu, 15 Apr 2021 09:23:19 +0200, by Pierre-Yves David
-
urlutil: use bytes for Abort messagesWed, 14 Apr 2021 22:50:41 -0400, by Matt Harbison
-
changegroup: update commentThu, 08 Apr 2021 16:41:13 +0200, by Raphaël Gomès
-
re2: adjust local variable assignment scopeMon, 12 Apr 2021 23:31:54 -0400, by Matt Harbison
-
rhg: Make `files` work on repo-relative paths when possibleSat, 13 Mar 2021 09:50:34 +0100, by Simon Sapin
-
split: avoid strip if split is a no-op (identical to original)Mon, 12 Apr 2021 19:25:34 -0700, by Kyle Lippincott
-
split: fix issue with empty splits adjusting phasesMon, 12 Apr 2021 17:52:46 -0700, by Kyle Lippincott
-
split: add test demonstrating issue with empty splits adjusting phasesMon, 12 Apr 2021 17:51:56 -0700, by Kyle Lippincott
-
test-lfs: fix expected outputWed, 14 Apr 2021 16:09:12 +0200, by Pierre-Yves David
-
test-lfs: avoid a bashism when spawning the serverWed, 14 Apr 2021 15:56:21 +0200, by Pierre-Yves David
-
test-lfs: avoid paginationWed, 14 Apr 2021 15:54:32 +0200, by Pierre-Yves David
-
run-test: make it clearer why we terminating processWed, 14 Apr 2021 15:53:43 +0200, by Pierre-Yves David
-
push-dests: move the code around missing default dest inside `get_push_paths`Tue, 13 Apr 2021 15:30:32 +0200, by Pierre-Yves David
-
push-dests: rework the handling of default valueTue, 13 Apr 2021 15:32:59 +0200, by Pierre-Yves David
-
outgoing: merge the code handling --graph with the main oneSun, 11 Apr 2021 20:00:46 +0200, by Pierre-Yves David
-
outgoing: move filtering logic in its own functionTue, 13 Apr 2021 15:13:20 +0200, by Pierre-Yves David
-
outgoing: make `recurse` a real functionSun, 11 Apr 2021 19:31:03 +0200, by Pierre-Yves David
-
outgoing: remove some early returnSun, 11 Apr 2021 19:20:14 +0200, by Pierre-Yves David
-
infinitepush: use the new function to determine push destinationSat, 10 Apr 2021 21:55:01 +0200, by Pierre-Yves David
-
urlutil: add a `get_pull_paths` to perform the pull destination logicTue, 13 Apr 2021 12:28:44 +0200, by Pierre-Yves David
-
urlutil: add a `get_push_paths` to perform the push destination logicMon, 12 Apr 2021 22:22:56 +0200, by Pierre-Yves David
-
urlutil: extract `parseurl` from `hg` into the new moduleMon, 12 Apr 2021 06:34:54 +0200, by Pierre-Yves David
-
urlutil: extract `url` related code from `util` into the new moduleMon, 12 Apr 2021 03:01:04 +0200, by Pierre-Yves David
-
urlutil: extract `path` related code into a new moduleSun, 11 Apr 2021 23:54:35 +0200, by Pierre-Yves David
-
help: document the `path://` url schemeSat, 10 Apr 2021 15:30:32 +0200, by Pierre-Yves David
-
help: point to `hg help urls` in `hg help config.paths`Sat, 10 Apr 2021 15:28:10 +0200, by Pierre-Yves David
-
merge with stableMon, 12 Apr 2021 22:42:47 -0400, by Matt Harbison
-
narrow: add capabilities for local repos, not just remote peersFri, 09 Apr 2021 17:41:48 -0400, by Charles Chamberlain
-
typing: make minor adjustments to mercurial/util.py to pass pytype checkingThu, 25 Mar 2021 22:29:41 -0400, by Matt Harbison
-
util: fix the signature for the pypy override of sortdict.update()Thu, 25 Mar 2021 20:22:00 -0400, by Matt Harbison
-
typing: add type hints to mercurial/error.pyThu, 25 Mar 2021 18:59:14 -0400, by Matt Harbison
-
tests: add a (very slow) test that executes pytypeFri, 19 Mar 2021 00:36:26 -0400, by Matt Harbison
-
upgrade: do not hardcore file extension of revlogsTue, 06 Apr 2021 10:38:27 +0200, by Pierre-Yves David
-
upgrade: take advantage of the new information returned by `store.walk`Tue, 06 Apr 2021 10:38:11 +0200, by Pierre-Yves David
-
store: also return some information about the type of file `walk` foundTue, 06 Apr 2021 10:38:03 +0200, by Pierre-Yves David
-
tests: skip test-git-interop.t on WindowsMon, 05 Apr 2021 23:54:54 -0400, by Matt Harbison
-
contrib: restore the `hg fix` configuration in the examplesMon, 05 Apr 2021 13:02:51 -0400, by Matt Harbison
-
blackbox: fix type error on log rotation on read-only filesystemWed, 31 Mar 2021 17:54:02 -0400, by Valentin Gatien-Baron
-
rust: Remove use of `py.eval()`Thu, 08 Apr 2021 14:38:27 +0200, by Simon Sapin
-
rust: Remove the compile-time 'dirstate-tree' feature flagThu, 08 Apr 2021 21:46:54 +0200, by Simon Sapin
-
procutil: avoid using os.fork() to implement runbgcommandSun, 13 Sep 2020 22:14:25 -0400, by Valentin Gatien-Baron
-
share: store relative share paths with '/' separatorsThu, 08 Apr 2021 18:43:08 -0400, by Matt Harbison
-
unit-tests: Fix `cargo test` on 32-bit platformsFri, 09 Apr 2021 12:02:51 +0200, by Simon Sapin
-
rename: add --forget option and stop suggesting `hg revert` for undoingFri, 09 Apr 2021 08:46:40 -0700, by Martin von Zweigbergk
-
win32: enable legacy I/O mode to fix missing pager output on Windows with py3Fri, 09 Apr 2021 11:32:19 -0400, by Matt Harbison
-
persistent-nodemap: enable the feature by default when using RustThu, 14 Jan 2021 04:58:20 +0100, by Pierre-Yves David
-
persistent-nodemap: disable it for test-wireproto-content-redirects.tFri, 09 Apr 2021 03:36:24 +0200, by Pierre-Yves David
-
persistent-nodemap: disable it for test-wireproto-command-capabilities.tFri, 09 Apr 2021 03:30:18 +0200, by Pierre-Yves David
-
persistent-nodemap: disable it unconditionally for test-wireproto-caching.tFri, 09 Apr 2021 03:36:07 +0200, by Pierre-Yves David
-
persistent-nodemap: disable it unconditionally for test-ssh-proto-unbundle.tFri, 09 Apr 2021 03:51:25 +0200, by Pierre-Yves David
-
persistent-nodemap: disable it unconditionally for test-ssh-proto.tFri, 09 Apr 2021 03:51:35 +0200, by Pierre-Yves David
-
persistent-nodemap: disable it unconditionally for test-share-safe.tFri, 09 Apr 2021 04:13:07 +0200, by Pierre-Yves David
-
persistent-nodemap: disable it unconditionally for test-http-protocol.tFri, 09 Apr 2021 03:44:45 +0200, by Pierre-Yves David
-
persistent-nodemap: disable it unconditionally for test-http-bad-server.tFri, 09 Apr 2021 03:15:07 +0200, by Pierre-Yves David
-
clang-format: run the formatter on mercurial/cext/revlog.cThu, 08 Apr 2021 20:05:59 +0200, by Pierre-Yves David
-
revlog-compression: use zstd by default (if available)Tue, 06 Apr 2021 18:55:19 +0200, by Pierre-Yves David
-
rhg: make rhg recognise it supports zstd compression for revlogsWed, 07 Apr 2021 13:31:15 +0200, by Pierre-Yves David
-
match: convert O(n) to O(log n) in exactmatcher.visitchildrensetWed, 31 Mar 2021 12:46:54 -0700, by Kyle Lippincott
-
exthelper: improve docs to indicate what module vars are neededTue, 30 Mar 2021 13:05:22 -0700, by Kyle Lippincott
-
tests: restore the ability to run `black` on WindowsMon, 05 Apr 2021 12:44:33 -0400, by Matt Harbison
-
setup: copy python3.dll next to hg.exe when building on Windows for hgext.gitSat, 03 Apr 2021 21:15:45 -0400, by Matt Harbison
-
tests: stablize test-hook.t on WindowsSat, 03 Apr 2021 20:26:45 -0400, by Matt Harbison
-
tests: handle Windows file separator differences in test-config.tSat, 03 Apr 2021 20:25:37 -0400, by Matt Harbison
-
tests: update the detailed exit codes for icasefs gated testsSat, 03 Apr 2021 15:02:09 -0400, by Matt Harbison