humungus - gerc

i am gravely disappointed

there has been too much violence

overview - files - changes

a44f6f69d109 on 2019-08-21 19:38:37 -0400 EDT by Ted Unangst <tedu@tedunangst.com>

use per file last change timestamp

83009e6bf670 on 2019-08-20 21:59:49 -0400 EDT by Ted Unangst <tedu@tedunangst.com>

forgot about usage

a1ca80970c6d on 2019-08-20 21:47:44 -0400 EDT by Ted Unangst <tedu@tedunangst.com>

add diff command, for comparing work files vs repo

3a1e66821f0b on 2019-04-28 17:10:52 -0400 EDT by Ted Unangst <tedu@tedunangst.com>

ancestors go the other way

a04918eff360 on 2019-04-28 17:08:03 -0400 EDT by Ted Unangst <tedu@tedunangst.com>

a go.mod file

0a2f92fef641 on 2019-04-28 17:07:27 -0400 EDT by Ted Unangst <tedu@tedunangst.com>

incomplete and wrong ancestor adjustment for revlog

55f0812f351a on 2019-02-22 16:59:11 -0500 EST by Ted Unangst <tedu@tedunangst.com>

move all argv string parsing into frontend.
programmatic args for library functions

cd76189d32c4 on 2019-02-20 14:33:55 -0500 EST by Ted Unangst <tedu@tedunangst.com>

a hack to walk backwards to find last existing rev for annotate

3043d9055600 on 2019-02-20 14:06:21 -0500 EST by Ted Unangst <tedu@tedunangst.com>

add a package comment for main

d6c494ca8075 on 2019-02-20 13:59:38 -0500 EST by Ted Unangst <tedu@tedunangst.com>

split big file into small files

13ca781603b8 on 2019-02-20 13:50:40 -0500 EST by Ted Unangst <tedu@tedunangst.com>

add annotate support

6ea98b29c2da on 2019-02-18 18:16:23 -0500 EST by Ted Unangst <tedu@tedunangst.com>

rename a variable to be clearer

49d6b652dc73 on 2019-02-18 18:14:39 -0500 EST by Ted Unangst <tedu@tedunangst.com>

add go doc for public functions

0371433cf418 on 2019-02-16 22:57:41 -0500 EST by Ted Unangst <tedu@tedunangst.com>

-r last() is also easy to handle

5a979d962187 on 2019-02-16 18:41:29 -0500 EST by Ted Unangst <tedu@tedunangst.com>

add tags command

d817704d7a78 on 2019-02-16 17:46:52 -0500 EST by Ted Unangst <tedu@tedunangst.com>

handle a few special cases for filenames

9dc14358b77f on 2019-02-16 04:05:35 -0500 EST by Ted Unangst <tedu@tedunangst.com>

replace writestring with fprintf

382a3b2c89db on 2019-02-16 01:03:45 -0500 EST by Ted Unangst <tedu@tedunangst.com>

tune up the data/metadata handling a bit

a63e4b9bad8c on 2019-02-16 00:48:06 -0500 EST by Ted Unangst <tedu@tedunangst.com>

works a little better if the caller adds the extra newline

681764395b1d on 2019-02-16 00:38:04 -0500 EST by Ted Unangst <tedu@tedunangst.com>

refine change printing code

e137340f782d on 2019-02-16 00:24:28 -0500 EST by Ted Unangst <tedu@tedunangst.com>

print tags in log

a1d93c4eba95 on 2019-02-16 00:12:21 -0500 EST by Ted Unangst <tedu@tedunangst.com>

parse tags file and be more flexible about hash lookups

3ba729e545c6 on 2019-02-15 21:50:29 -0500 EST by Ted Unangst <tedu@tedunangst.com>

remove bad check for empty files

381080d9761a on 2019-02-15 21:46:48 -0500 EST by Ted Unangst <tedu@tedunangst.com>

remove metadata from revlog data. ignored for now.

43062c24d1ce on 2019-02-14 04:16:30 -0500 EST by Ted Unangst <tedu@tedunangst.com>

simpler and safer to make a function to split bytes to lines

f0529006659a on 2019-02-14 04:13:23 -0500 EST by Ted Unangst <tedu@tedunangst.com>

check len of right slice

558cef2ba1dd on 2019-02-14 03:43:47 -0500 EST by Ted Unangst <tedu@tedunangst.com>

an empty file isn't missing its newline

57eeeae5a538 on 2019-02-14 03:34:29 -0500 EST by Ted Unangst <tedu@tedunangst.com>

not allowed to dig into .hg either

de9ac73427f4 on 2019-02-14 03:29:29 -0500 EST by Ted Unangst <tedu@tedunangst.com>

check that filenames are inside the repo

e1a57965924e on 2019-02-14 01:48:25 -0500 EST by Ted Unangst <tedu@tedunangst.com>

reverse logic of missingnl to be hasnl

8693c378edc0 on 2019-02-14 01:04:27 -0500 EST by Ted Unangst <tedu@tedunangst.com>

it's a feature not a bug

f9231e7d519f on 2019-02-13 21:52:50 -0500 EST by Ted Unangst <tedu@tedunangst.com>

can binary search the manifest instead of scanning

fbcd606ab905 on 2019-02-13 16:44:14 -0500 EST by Ted Unangst <tedu@tedunangst.com>

try finding unqiue lines, but still do the first pass with anything we find

a1f36b76a958 on 2019-02-13 00:10:03 -0500 EST by Ted Unangst <tedu@tedunangst.com>

clear revlog cache after close

b748318a8d2e on 2019-02-12 23:05:01 -0500 EST by Ted Unangst <tedu@tedunangst.com>

parse limit(range, limit) revnums too

2142b80639a7 on 2019-02-12 22:49:14 -0500 EST by Ted Unangst <tedu@tedunangst.com>

start parsing revnums in date format. today and yesterday.
this is starting to get troublesome.

87a4e2a3872d on 2019-02-12 21:31:13 -0500 EST by Ted Unangst <tedu@tedunangst.com>

leave the message as an array

b769b0f57294 on 2019-02-12 02:27:31 -0500 EST by Ted Unangst <tedu@tedunangst.com>

formatting tweaks

803e21d283fd on 2019-02-12 02:15:01 -0500 EST by Ted Unangst <tedu@tedunangst.com>

cache changes after parsing, but be careful not to cache diffs

ddc520b29c22 on 2019-02-12 01:43:49 -0500 EST by Ted Unangst <tedu@tedunangst.com>

need to slice off unused end of data after applying deltas

3ccbab7ad82b on 2019-02-12 01:41:35 -0500 EST by Ted Unangst <tedu@tedunangst.com>

nevermind, the ulen is uncompressed full data len, not just this chunk

a47282eb7bb8 on 2019-02-12 01:27:56 -0500 EST by Ted Unangst <tedu@tedunangst.com>

using a scratch alice between delta application massively reduces allocs

271eb12f1b37 on 2019-02-12 00:16:16 -0500 EST by Ted Unangst <tedu@tedunangst.com>

allocs profile is more interesting

29b331b0cf4d on 2019-02-12 00:16:07 -0500 EST by Ted Unangst <tedu@tedunangst.com>

can presize uncompress buffer

a1f51ff8d19f on 2019-02-11 19:46:28 -0500 EST by Ted Unangst <tedu@tedunangst.com>

print the correct dates in changesets

f7ba4dfa9a28 on 2019-02-11 19:04:19 -0500 EST by Ted Unangst <tedu@tedunangst.com>

limiting to one cpu is much faster

0e1d9a585c43 on 2019-02-11 18:58:59 -0500 EST by Ted Unangst <tedu@tedunangst.com>

fix calculation of offsets in unidiff

b38995b34432 on 2019-02-11 18:53:00 -0500 EST by Ted Unangst <tedu@tedunangst.com>

another peephole fixup: sometimes chunks get combined + then -. reverse them.

02a04d912a96 on 2019-02-11 18:16:37 -0500 EST by Ted Unangst <tedu@tedunangst.com>

revert boring check, doesn't help and makes some diffs worse

69ed92250646 on 2019-02-11 16:10:59 -0500 EST by Ted Unangst <tedu@tedunangst.com>

missing new line in printf

e9dad0571abb on 2019-02-11 15:49:58 -0500 EST by Ted Unangst <tedu@tedunangst.com>

skip boring lines for matches

b1d3908b2daa on 2019-02-11 14:46:46 -0500 EST by Ted Unangst <tedu@tedunangst.com>

allow cat of any revision

557a32627328 on 2019-02-11 14:26:31 -0500 EST by Ted Unangst <tedu@tedunangst.com>

fix missing context line

219467ce450b on 2019-02-11 14:25:27 -0500 EST by Ted Unangst <tedu@tedunangst.com>

test for trailing context

dfdaf224008a on 2019-02-11 14:01:20 -0500 EST by Ted Unangst <tedu@tedunangst.com>

understand tip to mean -1

9459a01dff23 on 2019-02-11 13:53:40 -0500 EST by Ted Unangst <tedu@tedunangst.com>

rename author to user

426a9248c175 on 2019-02-11 02:32:09 -0500 EST by Ted Unangst <tedu@tedunangst.com>

a few cleanups

f6b327d55c33 on 2019-02-11 02:17:19 -0500 EST by Ted Unangst <tedu@tedunangst.com>

map linkrevs to index

9e7c6cfe8253 on 2019-02-11 02:08:17 -0500 EST by Ted Unangst <tedu@tedunangst.com>

slowly working diffing prev revisions into shape

603fa15a2b55 on 2019-02-11 01:33:07 -0500 EST by Ted Unangst <tedu@tedunangst.com>

fold diff fetching into main change loop

0d4c2234a809 on 2019-02-11 01:26:19 -0500 EST by Ted Unangst <tedu@tedunangst.com>

fix check for corrupted delta

2d89ed05d572 on 2019-02-11 01:23:44 -0500 EST by Ted Unangst <tedu@tedunangst.com>

use a bufio for reading files

c0bfb70d266b on 2019-02-11 00:58:57 -0500 EST by Ted Unangst <tedu@tedunangst.com>

give parsedeltas the zero copy treatment too

8e7774c8d001 on 2019-02-11 00:51:34 -0500 EST by Ted Unangst <tedu@tedunangst.com>

perf improvement: much less copying when applying deltas

fe6f3de1a9fb on 2019-02-11 00:47:22 -0500 EST by Ted Unangst <tedu@tedunangst.com>

perf improvement: cache all revlogs instead of reopening

a776d2ff4fab on 2019-02-11 00:29:15 -0500 EST by Ted Unangst <tedu@tedunangst.com>

global flags for profiling

85dc6e8fd320 on 2019-02-10 23:36:38 -0500 EST by Ted Unangst <tedu@tedunangst.com>

add a few tests for cases that have tricked patience in the past

edff589404cf on 2019-02-10 23:36:07 -0500 EST by Ted Unangst <tedu@tedunangst.com>

further fixes and refinements to diff

e60b405fcd60 on 2019-02-10 20:45:21 -0500 EST by Ted Unangst <tedu@tedunangst.com>

improved diff creation

1ba7796d71ba on 2019-02-10 20:33:32 -0500 EST by Ted Unangst <tedu@tedunangst.com>

there can be more than one boring line, don't skip too far ahead

f5781a7d6084 on 2019-02-10 20:26:20 -0500 EST by Ted Unangst <tedu@tedunangst.com>

a few tweaks to the peephole for prettier diffs

abcd76d44800 on 2019-02-10 20:10:30 -0500 EST by Ted Unangst <tedu@tedunangst.com>

debug print keeps sneaking in

6ce5be315715 on 2019-02-10 20:09:16 -0500 EST by Ted Unangst <tedu@tedunangst.com>

only uncount context lines in one loop

8ddbf7307214 on 2019-02-10 20:04:33 -0500 EST by Ted Unangst <tedu@tedunangst.com>

eat -u for diff compat

a1a753b5299b on 2019-02-10 19:57:59 -0500 EST by Ted Unangst <tedu@tedunangst.com>

some fixes for the amount of context in diffs

270d2932c75f on 2019-02-10 19:49:52 -0500 EST by Ted Unangst <tedu@tedunangst.com>

missing newline in error message

d1234199e4d3 on 2019-02-10 19:49:30 -0500 EST by Ted Unangst <tedu@tedunangst.com>

use diff now that it works instead of toying with deltas

3f75e00ff0ef on 2019-02-10 19:18:53 -0500 EST by Ted Unangst <tedu@tedunangst.com>

there's no diff if there's no diff

4610447e84b1 on 2019-02-10 19:09:47 -0500 EST by Ted Unangst <tedu@tedunangst.com>

try recursing one time

9f8c13a43a8c on 2019-02-10 18:59:30 -0500 EST by Ted Unangst <tedu@tedunangst.com>

update comment

692abbdefe18 on 2019-02-10 18:56:50 -0500 EST by Ted Unangst <tedu@tedunangst.com>

the one line skipper causes more trouble than its worth

ae3b44fa45f8 on 2019-02-10 17:40:46 -0500 EST by Ted Unangst <tedu@tedunangst.com>

paste error in bounds check

d5e90638b36d on 2019-02-10 17:39:20 -0500 EST by Ted Unangst <tedu@tedunangst.com>

not quite correct handling of files missing final newlines

75edef56c1ca on 2019-02-10 17:25:10 -0500 EST by Ted Unangst <tedu@tedunangst.com>

struct of slices is too much trouble to work with.
back to slice of structs

7c6008c210aa on 2019-02-10 17:08:49 -0500 EST by Ted Unangst <tedu@tedunangst.com>

ok, getting silly, but add a peephole optimizer for a few more blank line cases

7e592d895389 on 2019-02-10 16:30:53 -0500 EST by Ted Unangst <tedu@tedunangst.com>

handle a few special cases when creating diffs

c65d702c4add on 2019-02-10 03:53:22 -0500 EST by Ted Unangst <tedu@tedunangst.com>

possible for a p2 line to be at 0

b0ab09642f41 on 2019-02-10 03:51:00 -0500 EST by Ted Unangst <tedu@tedunangst.com>

actually save space by using byte instead of rune

a19c44df6caf on 2019-02-10 03:48:53 -0500 EST by Ted Unangst <tedu@tedunangst.com>

use two slices instead of wasting padding

fd5f5719e0c7 on 2019-02-10 03:26:30 -0500 EST by Ted Unangst <tedu@tedunangst.com>

add an implementation of patience diffing algorithm

41b8b28ee893 on 2019-02-09 17:42:33 -0500 EST by Ted Unangst <tedu@tedunangst.com>

fix revision fetching with a filename

98c606cc2582 on 2019-02-09 17:30:58 -0500 EST by Ted Unangst <tedu@tedunangst.com>

negative revisions are pretty easy

73bda4fa3320 on 2019-02-09 17:02:37 -0500 EST by Ted Unangst <tedu@tedunangst.com>

parse hex revs too

fc409a860c14 on 2019-02-09 16:46:17 -0500 EST by Ted Unangst <tedu@tedunangst.com>

start parsing revnums as ranges

c24ab9b3e078 on 2019-02-09 16:09:50 -0500 EST by Ted Unangst <tedu@tedunangst.com>

ah ha! baserev chain can be linear or not linear depending on flag.

a807190023d9 on 2019-02-09 15:26:12 -0500 EST by Ted Unangst <tedu@tedunangst.com>

don't go past end getting forw context

1e8254a8c0ad on 2019-02-09 15:23:52 -0500 EST by Ted Unangst <tedu@tedunangst.com>

storename: _ is __

b6e7fa26cd7b on 2019-02-07 23:08:27 -0500 EST by Ted Unangst <tedu@tedunangst.com>

fixes for context diffs

f663acdd7f34 on 2019-02-07 22:44:03 -0500 EST by Ted Unangst <tedu@tedunangst.com>

baserev is linear? real bug was skipping one?

edc298b859a3 on 2019-02-07 22:24:00 -0500 EST by Ted Unangst <tedu@tedunangst.com>

fix a bug where we would skip to base for short chains

d3eb85201179 on 2019-02-07 20:46:41 -0500 EST by Ted Unangst <tedu@tedunangst.com>

want the list of files in the changeset, not the manifest

78e0bccb502d on 2019-02-07 20:42:43 -0500 EST by Ted Unangst <tedu@tedunangst.com>

cheating method can't compute diffs from full revisions

4dd67533c0c8 on 2019-02-07 20:27:51 -0500 EST by Ted Unangst <tedu@tedunangst.com>

add the spec for known file formats

65c949daad12 on 2019-02-07 20:27:26 -0500 EST by Ted Unangst <tedu@tedunangst.com>

fix storename escaping

4bb26991f69e on 2019-02-07 20:11:54 -0500 EST by Ted Unangst <tedu@tedunangst.com>

the baserev chain may not be linear

06249f11a8d0 on 2019-02-07 17:37:02 -0500 EST by Ted Unangst <tedu@tedunangst.com>

copyright and readme

6b1e71231fa4 on 2019-02-07 17:05:45 -0500 EST by Ted Unangst <tedu@tedunangst.com>

allow closing a repo

4415a011eca5 on 2019-02-07 16:58:39 -0500 EST by Ted Unangst <tedu@tedunangst.com>

sometimes the baserev isn't the baserev...

f997fd5879e9 on 2019-02-07 16:25:12 -0500 EST by Ted Unangst <tedu@tedunangst.com>

support name args for files

cf75d73bc9eb on 2019-02-07 15:23:45 -0500 EST by Ted Unangst <tedu@tedunangst.com>

smooth some delta operations

5e151596ccb6 on 2019-02-07 15:20:34 -0500 EST by Ted Unangst <tedu@tedunangst.com>

make a repo object instead of global

a4d556f33a6b on 2019-02-07 15:00:05 -0500 EST by Ted Unangst <tedu@tedunangst.com>

quick conversion to package and main

72632148c6cd on 2019-02-07 14:11:30 -0500 EST by Ted Unangst <tedu@tedunangst.com>

good enough revision control.
good enough to run a few commands anyway.