-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathCHANGES
1498 lines (1392 loc) · 86.5 KB
/
CHANGES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
* got 0.107; 2024-12-28
- gotwebd.css styling tweaks
- hide ssh debug output during fetch/send -v, keep showing it at -vv and -vvv
- discern mixed-commit worktree diffs with commit ID headers
- gotwebd: avoid printf("%s", NULL) when path parameter is not in query
- implement a regression test harness for gotwebd
- fix free() called with bogus pointer in 'got fetch'; regression from 0.106
- ensure config privsep children get collected upon error to prevent zombies
- fix some fprintf(3) failure checks
- gotwebd: replace strftime(3) with asctime_r(3) for the sake of consistency
- tweak gotwebd log message levels, and log requests in verbose (-v) mode
- prevent out-of-bounds read during gotwebd fcgi record debugging
- implement tog work tree diff support via log view and CLI
- improve error reporting when 'got patch' encounters malformed patches
- improve got_opentemp_named_fd error reporting by showing the path template
- add ssh -J jumphost support to got and cvg commands which use the network
- add regression tests checking for memory leaks with Otto malloc and ktrace
- got tag: change -s signer to -S signer
- got tag: provide one-line output mode via new -s option
- tog: use wtimeout(3) instead of nodelay(3) to honour our display refresh rate
- switch got_pathlist data store from TAILQ to RB-tree
- plug many memory leaks, some of which affected gotwebd in particular
* got 0.106; 2024-11-21
- prevent gotd from exiting with pending notifications if client disconnects
- convert got to the new imsg API
- gotwebd: improve performance of repository age calculations
- gotwebd: ensure child processes inherit non-default config
* got 0.105; 2024-11-14
- fix bogus "branch on server has different ancestry" errors from 'got send'
- do not try to merge binary files during (un)stage -p and revert -p
- fix gotd notifications about changes involving empty files
- minor gotwebd.css styling changes
- plug several memory and file-descriptor leaks
* got 0.104; 2024-10-22
see git repository history for per-change authorship information
- gotd.conf: document the macro syntax
- tog: prevent a segfault upon unexpected object type in ref list view
- fix pack file creation in the presence of tagged tag objects
- plugged some memory leaks
- fix a crash when unstaging a file which has been removed from disk
- gotwebd: fix out of bounds access while handling the configuration
* got 0.103; 2024-09-24
see git repository history for per-change authorship information
- fix bug causing performance to degrade as more and more pack files appear
- tog: add diff view 'p' keymap to write the diff to file
- tog: display diffstat in diff view when diffing blobs or trees directly
- gotwebd: show commit id prefix on briefs page
- add support for HMAC digests to gotd HTTP notifications
- move authentication credentials from gotd.conf(5) to gotd-secrets.conf(5)
- fix spurious tog regression test failures on slower machines
- restore abort() calls in lib/hash.c to quiet potential compiler warnings
- gotwebd: unbreak listing of tags on the summary page (regression from 0.102)
- gotwebd: minor tweaks to the HTML for ease of styling
* got 0.102; 2024-08-14
see git repository history for per-change authorship information
- support for sha256 repositories; the network protocol requires git(1) for now
- gotwebd: add support for the "owner" file
- gotwebd: fix the README link in the summary view
- fix handling of .gitignore files containing empty lines
- fix handling of files without trailing newline in histedit, rebase and merge
- gotd: allow numeric UIDs in permit/deny rules, as intended
- gotd: support numeric UIDs in the `user' directive
- fix comment handling and explain quoting in the *.conf.5 man pages
- tog: add ability to mark arbitrary commits to diff them
- print file index and work tree version in got info
* got 0.101; 2024-07-11
see git repository history for per-change authorship information
- improve gotwebd.8 one-line description
- adjust some SIZE_MAX bounds checks
- fix histedit -e bug where reverting all the changes caused histedit -c cycles
- show a more useful error when a reference name collides with another
- improve error message shown by 'got send' when ancestry has diverged
- fix wrong gotwebd default repository path in the manpage
- tog: fix jumping to the next commit from the diff view with the J key
- tog: fix horizontal scroll bug that draws a trailing '.'
- gotwebd: plug file descriptor leak in error path
- fix bug that prevented gotwebd from working without a config file
* got 0.100; 2024-06-03
see git repository history for per-change authorship information
- abort if we see a sha2 hash to quiet a potential compiler warning
- switch to using readdir because readdir_r is deprecated
- show hint about update -b if the user attempts to rebase a branch onto itself
- in got.1 EXAMPLES, mention how files can be moved or renamed
- fix running gotd regress in release tarball sources
- in gotd.8 add an example which illustrates how to create repositories for gotd
- don't leak the existence of gotd repositories to unrelated user accounts
- fix empty notification messages with multiple gotd notification targets
- display abbreviated commit/tag IDs in email notification subject lines
- fix Date header generated by got-notify-email
- regress: make server tests more robust against race hazard
- regress: replace userinfo(8) with the more common getent(1)
- fix wrong errno check in bufio_close_sync(), i.e. got-fetch-http
- bufio: crank BIO_CHUNK up to 64k for improved http fetch performance
- gotwebd.conf: remove `listen on socket off' and `unix_socket off' options
- gotwebd.conf: make `listen' a top-level statement
- gotwebd.conf: remove unix_socket_name option
- gotwebd.conf: allow changing the user ID which gotwebd runs as
- gotd/gotwebd: unify log.c
- gotwebd: use less temporary files in /tmp
- gotd/gotwebd: hide log_info() behind -v and log_debug behind -vv options
- fix confusing error message from 'got commit' upon uncommitable paths
- gotwebd: use the last matching fastcgi parameter if multiple parameters match
- gotwebd: remove previd and prevset query string parameter, they were unused
- plug 'got diff obj1 obj2' line metadata memory leak
- fix interop with servers that do not use Git protocol sidebands, such as git9
- reintroduce the 'got init' command as an alternative to 'gotadmin init'
* got 0.99; 2024-05-05
see git repository history for per-change authorship information
- make 'got fetch' work with URLs which refer to $HOME via a tilde: ~user
- replace strftime %G-%m-%d with %F to prevent 2024-12-30 -> 2025-12-30
- fix spurious errors from got-fetch-http when server has no more data to send
- prevent gotd notification process from exiting due to EPIPE
- fix I/O hangs with TLS in got-notify-http
- document http and https protocol support in got.conf(5), too
- fix an fd leak in gotd's notify process causing endless CPU spin
- back out got stage -R option addition; deemed too inconvenient in practice
- fix got-fetch-http GET request URL; add leading slash and avoid double slashes
- allow custom GOT_TEST_HTTP_PORT when running regression tests
- gotwebd: add magic ".git" handling; try foo.git if repository foo is not found
- expose authenticated gotd user account in HTTP notifications
- gotd.conf(5) HTTP/JSON documentation fixes
- fix endless loop upon Ctrl-D (EOF) input during got stage/unstage/revert -p
- make gotd notifications work when 'git push' is used instead of 'got send'
- make got stage -p behave the same way in interactive and -F modes for 'q'
- fix lingering gotd processes from clients closing connections early
- regress: prevent spurious failure of gotd test_clone_basic_access_denied
- fix an issue where 'git fetch' would error or hang against gotd
- use polling read in got_pkt_readn() to avoid endless hangs in gotsh
* got 0.98; 2024-04-23
see git repository history for per-change authorship information
- speed up got tag -l by caching timestamps in got_ref_cmp_tags()
- provide a macro for vi(1) path for use by -portable at compile time
- avoid a rename/stat race when gotd installs a new pack and then uses it
- make 'got ref -l' output consistent when packed references exist
- make 'got ref -l' work consistently when a reference argument is given
- add initial support for notifications to gotd(8), via email and http/json
- display process title in syslog when a gotd child process exits
- hide a pointless end-of-file error on imsg pipe in libexec helpers
- plug a memory leak in 'got blame'
- add support for topological sorting to the commit graph
- add log -t option which enables topological sorting of commits
- make 'got rebase' find a merge base with topological sorting if needed
- call unveil(2) earlier during import, commit, histedit, and tag commands
- make 'got status' display interrupted rebase, histedit, and merge operations
- got.1: escape Eq since it's a GNU roff macro, to fix rendering in -portable
- regress: use seq instead of jot, for portability reasons
- get rid of unnecessary "dns inet" pledge promises while fetching via git://
- add http clone/fetch support using a new got-fetch-http helper
- drop git+ssh protocol name from documentation; Git has done the same
- require -R option for staging or unstaging directory contents
- got patch: fix applying on empty files
* got 0.97; 2024-03-11
see git repository history for per-change authorship information
- improve error messages shown upon execv failure
- fix 'gotadmin pack' crash upon Ctrl-C due to invalid imsg_free()
- significantly speed up deltification of large files
- improve error handling in got_privsep_recv_imsg()
* got 0.96; 2024-02-13
see git repository history for per-change authorship information
- gotwebd: add foldable commit briefs
- gotwebd: fix (again) the styling for the next/prev buttons
- gotwebd: add knob for the number of tags and commits in the summary page
- gotwebd: remove PAGE handling
- gotwebd: retire max_repos setting
- gotwebd: guard against missig folder and file parameter in BLOB and BLAME
- gotwebd: improve copy-paste from BLOB pages
- gotwebd: fix colour of target lines in dark mode CSS
- gotwebd.conf.5: show defaults, improve EXAMPLES
- gotwebd.8: improve EXAMPLES sections
- fix logging during gotwebd shutdown
- plug several memory leaks in tog
- plug object id queue leak when iterating pack index files
- ensure tmp file is closed and fix UB in diff error path
- do not crash when a meta-data file in the .got directory is empty
- make the gotd auth process provide the user's account name for later use
- avoid opening objects in the gotd session process for no reason
- use imsg_get_fd() instead of imsg->fd everywhere
- tolerate remotes without urls in git config file for interop with git-annex
- plug some fd leaks in the fdopen{,dir} error paths
- log -b: handle merge commits unrelated to requested changed path history
- fix use of uninitialized variable in update_blob()
- plug memory leak in got_pack_dump_delta_chain_to_file()
- never write accum_buf on error in got_pack_dump_delta_chain_to_file()
* got 0.95; 2023-12-08
see git repository history for per-change authorship information
- plug memory leaks in checkout, update, and status commands
- gotwebd: repair the "chroot" option in /etc/gotwebd.conf; regression from 0.94
- gotwebd: add breadcumbs to navigate paths in tree/blob/commits/blame views
- gotwebd: add a dark mode, enabled based on web-browser preferences
- gotwebd: add History/Blob/Raw-File links to blob and blame views
- gotwebd: adjust blob line numbers for text-mode browsers
- gotwebd: make the blame view work in text-mode browsers
- gotwebd: add a Patch action to serve diffs in plain text
- gotwebd: add Patch and Tree links to the diff view
- gotwebd: display README files in tree views
- gotwebd: display a tree-listing and README files in the summary view
- gotwebd: render less tags in the summary page to make space for other content
- gotwebd: swap order of tags and branch listings on the summary page
- gotwebd: display 'More' link instead of 'prev/next' links in the tag listing
* got 0.94; 2023-11-29
see git repository history for per-change authorship information
- in diff error message, say what was being diffed
- gotwebd.css: vertically align briefs age and author
- honor fetch_all_branches configuration again
- tog: switch back to patience diff algorithm by default for pretty diffs
- gotwebd: render all the datetimes in a time tag
- slightly reword 'got merge' documentation to hopefully be more clear
- make 'tog diff' release the work-tree lock earlier
- got patch: handle embedded NULs in lines of patch files with binary data
- simplify usage of the 'mesg' histedit script command
- fix some fd leaks in error paths and avoid some double-close()
- use ibuf_fd_set() instead of reaching into the ibuf struct
- gotwebd: remove dead ipproto handling in host() and host_if()
- allow setting variables in gotd.conf syntax
- fix gotwebd unveil permissions; gotwebd now runs entirely read-only
- reduce gotwebd pledges to the minimum currently required
- gotwebd.conf: drop support for inferring listen addresses via interface names
- gotwebd.conf: use listen * instead of listen "" to listen on any address
- gotwebd: get rid of got_sockaddr.[ch] usage to help -portable
- allow gotd repo read/write processes to max out data-size resource limits
- gotwebd: replace proc.c with much simpler code
- gotwebd: don't chdir to / before spawning the child processes
- remove the quite ineffective gotwebd repository cache to fix stability issues
- fix memory leak on error in got_privsep_recv_painted_commits()
- gotwebd: fix broken signal catching
- detect concurrent changes to the set of pack files while matching object IDs
* got 0.93; 2023-09-18
see git repository history for per-change authorship information
- show out-of-memory errors from zlib inflate() and deflate() calls
- make 'got fetch' and 'got send' release the work tree lock earlier
- tog: add basic regress for log limit and log search
- fix "no git repository found" on locked work trees; regression from 0.91
- gotwebd: CSS improvements, looks much better in text-based browsers
- gotwebd: don't lose track of the current file during commit log pagination
- gotwebd: move buffering from the fastcgi layer to the template layer
- got diff: fix "No newline at end of file" showing up where not expected
- make 'got send' detect connections unexpectedly closed by server
- fix detection of modified files in fresh work trees created with checkout -E
- gotd: fix bogus "gotsh: operation timed out" errors; regression from 0.92
* got 0.92; 2023-08-29
see git repository history for per-change authorship information
- allow modified files to be deleted during merges if content exists in repo
- disallow overlapping repo and work tree in 'got checkout'
- speed up opening of the work tree's file-index
- speed up deltification by resizing block hash tables less often
- add support for commit keywords to 'got log -x'
- fix 'got log -dPp' diffstat duplication bug
- improve out-of-date reporting accuracy in 'got branch -l' output
- document that the log -d option implies log -P
- prevent file-index corruption via deletion of missing locally-added files
- prevent a double-free in got_worktree_commit
- fix regression from 0.76: 'got diff' output matches /usr/bin/diff -p again
- gotsh: do not set POLLOUT flag if there is no data to send, for portability
- gotd: stop logging "unexpected end of file" when client decides to disconnect
- make gotd flush pending messages before disconnecting the client upon success
- gotwebd: fix bogus modification times displayed when show_repo_age is off
- tog: show work tree base commit marker in the log view
- tog: fix an infinite loop that could be triggered via log view search
- plug a memory leak in tog's blame view
- tog regress: prevent crash in ncurses when Ctrl-C is used to cancel test runs
- tog regress: fix occasional failures due to commit timestamp mismatch
- regress: nix 'set -A' kshism from tests for portability
* got 0.91; 2023-07-19
see git repository history for per-change authorship information
- use _POSIX_HOST_NAME_MAX from <limits.h> for portability
- add merge -M option which tells 'got merge' not to fast-forward a reference
- make gitwrapper ignore "permission denied" errors for repository paths
- add cvg(1), a CVS-like Git client; still WIP and not installed by default yet
- add initial implementation of 'gotadmin dump' which creates Git bundle files
- add initial implementation of 'gotadmin load' which loads Git bundle files
- gotadmin cleanup: consider object reachability while cleaning packfiles
- gotadmin cleanup: don't delete pack files that are too young
- prevent useless EEXIST errors filling up the global custom error array
- abort histedit if the user quits the editor without saving the script
- fix double-free in tog blame view error path
- add support for keywords as <commit> arguments to got and tog
* got 0.90; 2023-06-23
see git repository history for per-change authorship information
- fix segfault in 'got diff' when a root commit is passed to -c
- make 'got status' error out as intended when invoked in a repository
- make 'got tree /' succeed in a work tree
- make 'got add *' more forgiving about versioned paths on the command line
- make 'got merge' forward branches if there are no changes to merge
- prevent 'got merge' from creating commits on branches outside "refs/heads/"
- got, tog: show reference names that begin with the prefix "HEAD" as intended
- gotd: unveil repositories read-only in session process while serving fetches
- gotd: avoid a "failed to push some refs" error from no-op 'git push'
- gotd: avoid re-writing existing ref files when a ref-update is a no-op
- gotd: show relevant commit hashes in error message if incoming pushes collide
- gotd: wait asynchronously for child process termination
- gotwebd: avoid the slowness of needlessly traversing full commit history
- gotwebd.conf: disallow 1 for max_commits_display and report range errors
- gotwebd.conf: disallow yes/no for booleans to avoid accidental "on" vs. "no"
- gotwebd: avoid "gotweb_render_index: repo.git: unexpected end of file" error
- gotwebd: simplify the matching of requests against servers in gotwebd.conf
- ignore files with invalid reference names while reading references from disk
- teach 'gotadmin cleanup' to remove redundant pack files
- grab gc.pid.lock file during cleanup operation to block 'git gc' from running
* got 0.89; 2023-06-05
see git repository history for per-change authorship information
- gotd: return early after disconnect on auth event error instead of crashing
- make 'got patch' display statistics about files with conflicts and rejects
- make 'got diff' not treat \r\n line endings as special
- fix test failures in test_blame_lines_shifted_skip on certain times of day
- show reference labels next to commit messages in tog log view
- some gotwebd refactoring related to handling of file descriptors
- gotwebd: lower log priority of unexpected disconnections
- gotwebd: avoid needless double fseek()
- fix the size of gotwebd's tempfiles array; exposed by errors from ftruncate()
- simplify ancestry checks in checkout, update, rebase, and merge commands
- make gitwrapper not fail if programs it wants to run do not exist on disk
- stop showing backup references in the tog log and diff views
- consistently use ten Xs in mkstemp(3) templates
- only delete empty directories which appear in arguments to 'got rm'
- simplify parsing of host names and IP addresses in gotwebd's parse.y
- make 'got merge' refuse to run if a merge is in progress
- make 'got merge -c' fail even if new changes only affect unrelated paths
* got 0.88; 2023-04-29
see git repository history for per-change authorship information
- tog: always use alternate charset for vertical/horizontal line
- several tog regression test suite improvements
- run the tog tests as part of the default regress set
- tog: resize log view if toggling fullscreen from child view
- when finding changed paths iterate tree entries in on-disk order for speed
- cache fulltext data in delta cache to improve speed with long delta chains
- gotwebd: fix logic error in gotweb_render_index
* got 0.87; 2023-04-19
see git repository history for per-change authorship information
- add gitwrapper(1)
- tog: resume blame and diff search from the first line
- fix crash in got log due to NULL-deref in got_object_blob_close
- add support for protecting references against 'got send -f' to gotd
- fix spurious empty packfile error from gotd when rewinding a branch
- tog: implement automated test harness
- update the base commit ID of unmodified files if the blob ID matches
- fix rebase/histedit -a leaving some files on the temporary branch
- make 'got revert' and 'got rm' work on non-existent directories
- got: flush stdout before printing the error in main()
- when aborting rebase/histedit/merge, unlink files added by merged changes
- fix 'got commit' using a bad parent commit ID when worktree is out-of-date
- allow no-op merge commits to be created
- fix sending merge commits
- show how to fetch a pull request in got.1 pull request example section
* got 0.86; 2023-03-12
see git repository history for per-change authorship information
- fix race condition on NFS where log-message file's modify time may change
- fix gotd sending too large pack files in some cases
- support histedit fold operations which delete a file and then add it again
- make diffing files which changed into dirs and vice-versa possible
- handle files changing into directories during 'got update'
- add quoting to repository path sent to server for git-shell compatibility
- gotwebd: handle short reads and timeouts
- gotwebd: provide gotweb_render_page() entrypoint for all pages
- gotwebd: reply with non-200 HTTP status code on error
* got 0.85; 2023-03-07
see git repository history for per-change authorship information
- gotwebd: add missing colon in diff view (patch by Josiah Frentsos)
- more preparation for eventual sha256 object ID support
- add test coverage for more tree conflict cases during merges
- fall back to vi(1) instead of ed(1) if neither EDITOR nor VISUAL are set
- in got.1, clarify what users are expected to do during 'histedit -e'
- gotd requires a config file; don't fail silently when it cannot be read
- regress: replace unportable ln -h option with rm && ln
- regress: make cmdline tests POSIX /bin/sh compatible
- gotd: remove more (all?) double process names in log
- don't pass -d to yacc during the build (patch by Josiah Frentsos)
- regress: override locale settings to force the "C" locale
- regress: replace "sed -i" with ed(1) for portable in-place editing
- fix gotd sometimes reading reused deltas from wrong pack file
* got 0.84; 2023-02-22
too many changes to list all here; see git repository history for more;
and see git repository history for per-change authorship information
- add 'got histedit -d' flag to drop all commits
- show worktree UUID in backout/cherrypick -l output
- several changes in preparation for eventual SHA256 object ID support
- make 'got rebase' work when the to-be-rebased branch has no parent commit
- fix bad line-wrapping in tog ref and tree views
- add horizontal scrolling support to tog ref and tree views
- create .pack and .idx files with filemode 0444, like Git does
- make 'got fetch' fetch the work tree's current branch as an implicit fallback
- improve 'got fetch' behaviour when work tree's branch is not on server
- gotwebd: fix briefs/tags navigation overlap
- drop double process name from some gotd logs
- tog: fix high CPU usage issue after starting search (reported by Mikhail)
- fix gotd exiting with abnormal error during client connection teardown
- fix gotd segfault in libevent while disconnecting clients
- tweak 'got commit' log-message validation: now checks timestamp and size > 0
- gotwebd: abort blame if the client disconnects midway through
- make 'got fetch -b branch' only fetch the named branch
- got/tog/gotadmin: call pledge(2) earlier where possible
- no longer error out if redundant "got commit -A $GOT_AUTHOR" option is used
- add 'gotadmin pack' -D flag to force generation of ref-deltas in pack files
- make 'got fetch' update cached HEAD symref if it has changed in remote repo
- add commit/histedit/merge/rebase -C option to commit unresolved conflicts
- make 'got status' check for merge conflict markers on newly added lines only
- fix read/write out of bounds in gitconfig file parser (reported by James Cook)
- fix "got fetch" hanging if remote repo is out-of-date (reported by James Cook)
- ignore patterns with trailing "/" now match directories (suggested by Lucas)
- make 'got merge' honour author setting in gitconfig (reported by James Cook)
- sync default values shown in gotwebd.conf(5) EXAMPLES section
- fix parsing of indented comments in gitconfig file (reported by James Cook)
- fix tog diff between arbitrary commits; regression from 0.80
* got 0.83; 2023-01-30
- fix usage display error in got merge command (patch by Mikhail)
- fix missing commits in pack files created with packed object enumeration
- avoid traversing enumerated commits more than once in got-read-pack
- fix ulimit-related test failures on sparc64 (tracey)
- got commit editor now shows log messages from backout and cherrypick (jamsek)
- new cherrypick/backout -l option to show recorded log messages (jamsek)
- new cherrypick/backout -X option to discard recorded log messages (jamsek)
- gotd: implement the delete-refs capability (op)
- fix histedit -m on a commit which only changes filemode bits
- gotsh.1: show how to set up anonymous public read-only repository access
* got 0.82; 2023-01-23
- fix comparison in tree object parser always evaluating to false (jamsek)
- add missing bounds-check in gitproto ref-line tokenizer
- gotd.8 and gotwebd.8 man page improvements (patch by Josiah Frentsos)
- make gotd session process accept just one flush packet at a time
- sort ENVIRONMENT entries in got.1 and tog.1 (op)
- only forward implicit flush packets from gotsh if they are expected
- return GOT_ERR_EOF from pkt.c if a read attempt indicates EOF
- treat read errors from client socket in gotsh as fatal errors
- gotwebd: refactor gotweb_render_content_type/_file (op)
- gotwebd: turn gotweb_get_time_str into gotweb_render_age (op)
- gotwebd: don't list references per-commit in got_get_repo_commits (op)
- gotwebd: avoid history traversal in briefs/commits, kill "prev" button (op)
- gotd: disconnect on client EOF error to avoid stale connections (op)
- gotsh: validate with parse_command before connecting (op)
- add a test for ssh connections to gotsh without a repo path argument (op)
- gotsh: avoid a temporary buffer for the socket path (op)
- gotsh: move apply_unveil right after the first pledge (op)
- fix tog refreshing the screen more often than intended (jamsek)
- tog: show action report on user-toggleable event (patch by Mikhail, jamsek)
- don't print empty line when exiting tog (jamsek)
- got: don't leak pathlist in commit and revert commands (jamsek)
- gotd: fix wrong PIDs for parent and child processes shown in logs
* got 0.81; 2023-01-18
- gotd: print configuration errors without -d (op)
- gotd: move nrepos check to parse_config (op)
- gotd: move socket path check to parse.y and error from the main process (op)
- fix an issue where multiple ref-updates are rejected by gotd
- fix an issue where gotd fails to accept multiple have-lines from clients
- regress: replace typeset with printf for shell portability (naddy)
- fix spurious "gotsh: unexpected flush packet" error when client is up-to-date
- gotd: fix "bad packfile with zero objects" error while creating branches
- document the gotd -n option
* got 0.80; 2023-01-17
too many changes to list all here; see git repository history for more
- implement per-repository read/write authorization rules in gotd
- add a gotd "listen" process which watches the unix socket
- add a gotd "session" process, split off from the parent process
- switch gotd from chroot(2) to unveil(2)
- run gotd authentication in a separate child process
- enforce a per-uid connection limit in the gotd listen process
- introduce connection options to gotd.conf
- gotd: allow to express timeouts using minutes/hours (op)
- switch gotd.conf syntax from 'unix_socket' to 'listen on'
- remove the gotsh group requirement from gotd; any user can now connect
- expose 'gotctl info' output only to the root user
- remove support for showing client capabilities in 'gotctl info'
- farewell, gotweb. you served us well. rm gotweb (tracey)
- lots of gotwebd refactoring (op)
- gotwebd: use a templating system to render HTML (op)
- gotwebd: add an RSS feed for the tags (op)
- gotwebd: remove erratic horizontal scrolling (op)
- gotwebd.conf: use `listen on socket' syntax for UNIX sockets too (op)
- gotwebd: render BLOB inline, add BLOBRAW for serving raw blobs (op)
- gotwebd: css: fix horizontal overflow in blob and blame pages (op)
- gotwebd: urlencode also the double quote character (op)
- gotwebd: make commit page more like `got log' / tog (op)
- cope with deleted references when reloading the tog log view
- tog: fix typo that breaks log search when in hsplit (jamsek)
- tog: always echo input prompt to bottom left of screen (jamsek)
- make 'tog log' display the committer handle by default, '@' switches to author
- tog: add mutt-like =/* keymaps as home/end aliases (patch by Mikhail)
- implement diffstat display for got log, got diff, and tog diff (jamsek)
- show from: and via: headers on consecutive lines in 'got log' and 'tog log'
- show full URL during got clone/fetch/send (op)
- make 'got send' print errors reported by the server (op)
- fix 'got rebase' not detecting an out-of-date work tree in some cases
- reduce max amount of tags stored in object cache to avoid high memory usage
- avoid copying reused deltas to delta cache file; copy from pack file instead
- got patch: handle the removal of binary files (op)
- fix uninitialised variables in libexec helpers (jamsek)
- got: minor refactor of got_pathlist_free() API (jamsek)
- fix indexing of pack files which contain ref-deltas
* got 0.79; 2022-11-08
- repair build on OpenBSD/sparc64 (patch by Ted Bullock)
- fix crash in gotd if client gets disconnected on error (reported by Mikhail)
- fix crash in got-send-pack when server does not announce any capabilities
- make gotd work as intended on an empty repository
- prevent freeing of bogus pointers in got_inflate_end() and got_deflate_end()
- reduce delta cache size to avoid running out of memory on large pack files
- add missing free of delta buffers in several error paths
- make 'got clone -b' work for repositories which lack a valid HEAD reference
- use sub-second precision when checking for objects/pack/ modification
- fix capabilities announced by gotsh when no references exist in repository
* got 0.78; 2022-11-03
- gotsh.1: Use Sx for referencing EXAMPLES (patch by Josiah Frentsos)
- change got_pack_parse_offset_delta tslen argument to size_t (op)
- fix regression test failures with Git 2.30.5 / 2.38.1 or later installed
- fix gotd(8) usage() string (patch by Josiah Frentsos)
- regress/rebase.sh: remove accidentally included absolute path to "got" (naddy)
- fix off_t type mismatches in printf format string arguments (naddy, op)
- fix spelling of "FastCGI" (patch by Josiah Frentsos)
- add missing `goto done;' on error path of read_raw_delta_data() (op)
- add bounds check when reading a delta offset from a packed object (op)
- check size before calling mmap(2) (op)
- sort getopt() option lists and switch statements (patch by Josiah Frentsos)
- make got.conf(5) warn about remotes configured in locally-shared repositories
- add missing check for errors from got_gotconfig_read() in open_worktree()
- plug a memory leak on error in got_gotconfig_read()
- convert pack filesize variables to off_t for large packs on 32-bit arch (op)
- remove sendfd pledge promise from gotd repo_read and repo_write processes
- add gotctl(8); initially supported commands are 'info' and 'stop'
- respect umask when creating or changing files and directories (op)
- fix typo which caused a double-free in gotd repo_write_shutdown()
- got-fetch-pack: fix wrong memmove length leading to dubious checksum failures
- avoid incomplete writes of pack file data in gotsh and got-send-pack
- add a test suite for gotd(8); check basic clone and send functionality
- require space between commit author name and email, for Git compatibility
- gotwebd: avoid 500 error code if erroring out in plaintext mode (landry)
- gotwebd: add respect_exportok flag, defaulting to off (landry)
- respect open files resource limit when sizing pack cache; regression from 0.71
- provide a diff of changes in a temp file while editing a commit log message
- fix memory and file descriptor leak for raw objects; regression from 0.77
- remove casts which made older gcc versions unhappy
- fix free of wrong address on error in gotweb's parse.y
* got 0.77; 2022-10-24
- disallow integrating into references outside refs/heads/ (jrick)
- gotwebd.conf: add syntax for defining macros and document them (op)
- simplify the way 'got patch' opens a tempfile when reading from stdin
- lots of refactoring to allow gotd(8) code to run without libexec helpers
- more refactoring to allow gotd(8) to stream packfile data on network sockets
- add missing error checking around some unlink(2) syscalls
- don't crash if delta cache is missing while combining deltas; for dev builds
- allow got_object_parse_tree() to reuse entries buffer allocations for speed
- show a more useful error if the size of a packed object won't fit in 64 bits
- switch integers used for counting objects while indexing packs to unsigned
- refresh cached list of pack index paths while searching a packed object
- introduce gotd(8) and gotsh(1); WIP and not yet provided in binary packages
- close parent's end of imsg pipe before waiting for a child process to exit
- fix detection of SIGTERM in tog; this signal was accidentally being ignored
- avoid printing harmless errors that can occur when tog exits due to Ctrl-C
* got 0.76; 2022-09-23
- gotwebd documentation fixes
- tog: extend log view author highlight colour to full field width (jamsek)
- tog: make headline highlight extend the full view width (jamsek)
- make got_commit_graph_iter_next use caller-provided storage for the id (op)
- tog: add new log view limit feature to filter commits (patch by Mikhail + op)
- tog: respect current cursor position during log search (patch by Mikhail)
- tog: implement runtime help accessible via H,F1 keymaps (jamsek)
- add gotadmin init -b <branch> to specify repo head ref (jamsek)
- ensure got patch respects x-bit perms for new files (jamsek)
- gotwebd: drop needless NULL check (op)
- show file mode for new added files in work tree diffs (jamsek)
- fix wrong function prototypes shown in diff hunk headers (thj@freebsd, jamsek)
* got 0.75; 2022-09-07
too many changes to list all here; see git repository history for more
- unlink temporary files created during ssh signature verification
- add gotwebd, a fast-cgi server and successor of gotweb (tracey)
- lots of release-preparation work on gotwebd (naddy, op, tracey, stsp)
- cast argument of type rlim_t to unsigned long long to match the %llu (naddy)
- tog: add key to toggle author/committer in log view (op)
- make our email address parsing closer to Git's parsing rules (op)
- got commit: add -A flag to specify the author of a patch (op)
- tog: alias J and K to > and < keybindings for diff view (patch by Mikhail)
- fix 'got cat' printing commit author instead of committer (op)
- tog: add 'L' key to blame view; opens log view for the annotated line (jamsek)
- don't chug along if repo format version is unsupported (florian)
- fix dead stores to variables, found with LLVM's scan-build (florian)
- fix uninitialized error return (florian)
- make sure got_repo_pack_fds_close() frees a malloc'ed pointer (florian)
- prevent memory leak when asprintf fails (florian)
- prevent use-after-free of packed_refs_path in error path (florian)
- got_repo_pack_fds_close: don't close(0) (patch by Lucas)
- reset committer's name+email during rebase and histedit
- tog: fix unintentional move of cursor after closing child views (jamsek)
- tog: uppercase all the key maps which open new views (jamsek)
- make 'got histedit' fetch author info from Git configuration as a fallback
- fix 'got patch -R' when using diff3 merge (op)
- add GOT_IGNORE_GITCONFIG env var to force ignoring of Git config files
- fix off_t type mismatches (naddy)
- got patch: error if patchfile isn't a regular file (op)
- make 'got patch' apply pledge(2) earlier (op)
- got/tog diff: fix accounting for line-endings in files containing CRLF (op)
- got patch: add -c flag to apply at a specified commit (op)
- fix two missing error checks in tog (found by florian with scan-build)
- remove pointless repo_close + leaked error (found by florian with scan-build)
- tog: add n{G,g} key map to jump to line n like less(1) (jamsek)
- diff: re-alloc arrays in larger chunks for up to 3x more performance (jamsek)
- fix whitespace-related issues when 'got patch' is matching a hunk (op)
- tog: add keymaps to jump to next/prev file/hunk in the diff view (jamsek)
- fix 'got tag' not tagging the work tree's current branch by default
- tog log: don't block while loading commits after 'G' key was pressed (jamsek)
- man pages: group options in accordance to style(9) (patch by Josiah Frentsos)
- man pages: Replace 'Ar sign' with 'Cm sign' (patch by Josiah Frentsos)
- don't add trailing \0 to signed tag objects; fixes interop with Github (jrick)
- use Xo/Xc in the man pages (patch by Josiah Frentsos)
- fix diffing two blobs by object ID with 'got diff' (jamsek)
- refresh pack-index path list if mtime of the objects/pack directory changed
- diff3: switch diff output mode from "edscript" to "plain" (patch by Tom Jones)
- use the faster plain-diff headers-only mode for diff3
- do not segfault while verifying "lightweight" tags (jrick)
- don't search through ignored paths and files on commit (sdk)
- plug a lot of memory leaks (op)
- forbid rebase of references outside the "refs/heads/" namespace
- fflush(stdout) after asking questions; improves got-portable behaviour (op)
- fix bug where 'got branch -lt' produced duplicate listings of a branch
- tog: ensure stdin is a tty to guard against 'tog < /dev/null' etc. (jamsek)
* got 0.74; 2022-07-14
- cast printf argument of type time_t to long long to match the %lld (naddy)
- add missing revoked_signers grammar to got.conf(5) (jrick)
- move 'got init' command to 'gotadmin init'
- regress test SSH key revocations (jrick)
- long overdue update of AUTHORS lists in man pages
- add signer_id option to got.conf(5) (jrick)
- delta_cache.c needs to include <stdint.h>; unbreaks -portable build on ubuntu
- regress: use bs=1M for dd, not bs=1m; fixes -portable test failure on ubuntu
- fix buf_alloca error handling (op)
- some privsep.c refactoring and cleanup (op)
- tog: implement global 'S' key map to switch split mode (jamsek)
- tog: implement +/- keymaps to resize the focussed split (jamsek)
- make 'tog log' error out in shallow Git repositories instead of hanging
- tog: enable moving to prev/next blame line in diff view (jamsek)
- improve documentation of the histedit 'mesg' command
- histedit script: allow mesg command only after pick or edit commands (op)
- for linux, fix usage of pipe(2) during SSH signing and verification (jrick)
* got 0.73; 2022-07-04
- got patch: use diff3 to merge changes if possible (op)
- tog: alias C-b/C-f to scroll page back/forward with b/f (jamsek)
- tog: make SPACE page down in all views (naddy)
- tog: allow prefixing movement keys with count modifier (jamsek)
- always show commit or tree IDs in diff header, in order to help 'got patch'
- build non-release builds with -Wwrite-strings (op)
- got patch: handle git-style diffs for the 3-way merge too (op)
- implement support for commit coloring in got-read-pack for speed
- move got_opentemp out of open_blob and blame.c for future gotwebd (tracey)
- move got_opentemp out of diff.c and diffreg.c for future gotwebd
- tog: refactor log cursor movement in preparation for horizontal split (jamsek)
- tog: implement support for horizontal splitscreens (jamsek)
- switch 'tog diff' and 'tog blame' to Myers diff by default for speed
- make the diff algorithm used by 'tog diff' and 'tog blame' configurable
- make the patch parser look for the next "diff" header for robustness (op)
- got patch: don't loose the x bit when merging with diff3 (op)
- got patch: handle mangled whitespace (op)
- fix "imsg_add TREE_ENTRY: Result too large" error on i386 (semarie, op)
- create and verify tags signed by SSH keys (jrick)
- tog: add C-g/backspace key map to abort compound commands (jamsek)
- rename got.conf(5) fetch-all-branches to fetch_all_branches for consistency
- rename got.conf(5) mirror-references to mirror_references for consistency
- use pipe() which is a more portable syscall than pipe2() (jrick)
- got patch: check for specific chars instead of using isspace(3) (op)
* got 0.72; 2022-06-18
- fix "bad offset in pack file" error due to uninitialized variable (op)
- initialize all variables used for sending privsep messages to zero (op)
- tog: reset search state after Ctrl-L to fix a use-after-free (op)
- fix unexpected imsg error after incomplete enumeration in got-read-pack
- tog: heed selection cursor position while searching (patch by Mikhail)
* got 0.71; 2022-06-17
- got patch: fail when reading empty hunks (op)
- got patch: switch from fseek() to fseeko(), use unary minus (naddy)
- got patch: avoid open/sync/close of the fileindex over and over again (op)
- make got_privsep_recv_tree() reject trees with less than zero entries
- plug memory leak in an error path of got_privsep_recv_tree()
- prevent an out-of-bounds access in got_privsep_recv_tree()
- parse tree entries into an array instead of a pathlist for speed
- batch up tree entries in imsg instead of sending one imsg per tree entry
- imsg_add() frees its msg argument on error; avoid double-free in error paths
- avoid malloc/free for duplicate check in got_pathlists_insert()
- plug a small memleak on error in got_pack_create()
- fix paths stored in pack meta data, improving file deltification
- store a path hash instead of a verbatim path in pack meta data
- reduce the amount of memory used for caching deltas during deltification
- shrink struct got_pack_meta a bit by removing the have_reused_delta flag
- use random seeds for murmurhash2 (op)
- fix bug in findwixt() which caused pack files with missing parent commits
- avoid looping over deltas twice in dump_delta_chain_to_{file,mem}()
- open tempfiles needed for delta application upfront, for future gotwebd
- reduce GOT_PACK_CACHE_SIZE to 32 to accommodate for previous tempfile change
- tog: override SIGTERM and SIGINT handlers to avoid ncurses cleanup() handler
- move creation of tempfiles outside of lib/diff.c
- tests: don't pass $ret to test_done on failure when it's known to be zero (op)
- tests: set `ret' in a few places where it was forgotten (op)
- convert delta cache to a hash table
- implicitly unstage changes when staging the reverse of a staged diff (op)
- implement object enumeration support in got-read-pack for speed
- add one-line output mode to got log with -s flag (patch by Evan Silberman)
- rename the former got log -s (search) flag to got log -S
- make it possible to match committed patches with got log -p -S pattern
- tog: add key bindings for half-page scroll (patch by Mikhail, Mark Jamsek)
- make got log -S match author name and commit ID, like tog search does (op)
- got patch: ensure new and old paths are NUL-terminated (op)
- got patch: guard against invalid (negative) line offsets (op)
- got patch: use ints for line offsets instead of longs (op)
- remove redundant datalen checks before calling recv_imsg_error (op)
- use strndup instead of malloc+memcpy in privsep.c (op)
- do stricter validation of data received from libexec helpers (op)
- move got_opentempfd() out of got_repo_open(), for future gotwebd (tracey)
- fix D_GOTWWW default path; gotweb can now run without a config file again
- add horizontal scrolling to tog diff, blame, and log views (Mark Jamsek)
- show last-modified date in the "tog ref" view if 'm' is pressed (Mark Jamsek)
- make tog horizontal scrolling work with unicode (with op@)
* got 0.70; 2022-05-10
- avoid subtraction of values larger than int in qsort(3) comparison callbacks
- make 'got patch' handle git-style rename diffs
- store deltas in compressed form while packing, both in memory and cache file
- avoid O(N) loops over object ID lists while packing
- run the search for deltas to reuse in got-read-pack directly, for speed
- hook send.sh cmdline tests into 'make regress', this was overlooked earlier
- fix regression from 0.69 where packing tags fails if zero commits are packed
- map delta cache file into memory if possible while writing a pack file
* got 0.69; 2022-04-24
- plug a memory leak in got_fetch_pack() (patch by Mikhail)
- plug a memory leak in list_refs() (op)
- link libexec helpers against _p libraries when building with 'make PROFILE=1'
- regress: use test(1) -eq and -ne to compare integers, reduce quoting (naddy)
- got patch: add -p option to strip path components (op)
- stop relying on commit cache for good performance of got_object_id_by_path()
- leave work tree in usable state after 'got rebase' fails path-prefix checks
- make gotadmin pack -x option work with tag arguments
- make 'got cat' not search for a work tree if the -r option is used
- make 'got tag' unlock work tree earlier to allow other parallel commands
- add a -q (quiet) option to 'gotadmin pack'
- sort references by date for packing to process newer commits first
- fix double-free in an error case of cmd_checkout()
- make sure callers of got_object_idset_add() free data (tb)
- speed up initial stage of packing by adding a "skip" commit color
- regress: redirect jot(1) output instead of looping over it (op)
- reimplement object-ID set data structure on top of a hash table
- inline struct got_object_id in struct got_object_qid for speed
- got patch: resolve paths from the current working directory (op)
- got patch: add -R option to reverse a patch (op)
* got 0.68; 2022-03-22
- explicitly include <endian.h> for be32toh() (naddy)
- apply time-based rate-limiting to send-/fetch-/index-pack progress output
- make the URI parser tolerate trailing slashes at the end of the input URI
- add 'got patch' command for applying unified diffs (op)
- handle reference arguments which look like short object IDs (with naddy)
- make got log, diff, blame, tree, and cat unlock the work tree earlier
- fix 'got status' with an obstructed file given as argument (found by op)
- cache a list of known pack index files when the repository is opened
- print additional progress information while packing
- const-ify data tables which contain only constants (naddy)
- fix gotweb build failure with -Werror due to write-only variable warnings
- move got_errors[] table into a single compilation unit, error.c (naddy)
- explicitly include <unistd.h> for close(2) (naddy)
- fix potential NULL deref in error path of got_object_idset_remove()
- man pages: fix missing commas between subordinate and main clauses (naddy)
- fix a bug where 'gotadmin pack' packed too many objects unless -a was used
- gotweb: fix free() on uninitialized variable upon error during blame
* got 0.67; 2022-02-18
- compress delta data from delta_cache directly into pack file
- show rebase and histedit backups in tog ref view
- gotweb: unbreak index page when pack files are missing (tracey)
- make 'got rm' behave like rm(1) for paths found missing on disk
- make 'got rm' report an "unexpected status" error for unversioned files
- fix double-free and double-close issues in error paths of got_packidx_open()
- fix 'got status' showing unversioned directories on NFS (found by Ted Bullock)
- fix loose object file header parser for zero-length headers
- improve 'got add' error message if file does not exist (found by Timo Myyrä)
- improve error message due to malformed `author' in got.conf (omar)
- fix infinite loop triggered by pack files >= 4GB in size (found by semarie)
- set zlib output buffer length properly after resizing the output buffer
- improve error reporting for invalid numbers given on command line (omar)
- fix 'got diff' on files which match an ignore pattern (found by omar)
- reduce minimum deltification chunk size to 32 (suggested by ori)
- use murmurhash instead of sha1 for deltification blocks (suggested by ori)
- shrink the width of formatted output fields to their expected size (naddy)
- reuse existing deltas when creating pack files
- fix fd leak in got_fetch_pack (omar)
- fix imsg_clear calls after imsg_flush failures (omar)
- display GMT offset in 'got cat' command (jrick)
- const-ify command and option tables (naddy)
* got 0.66; 2022-01-11
- only open raw objects if necessary while writing out pack file data
- map raw object files into memory while packing if possible
- encode short deltas in memory instead of writing them to a temporary file
- add missing checks for reads beyond the mapped memory area of a pack file
- fix file corruption regression in 'got checkout' from 0.65 (reported by naddy)
* got 0.65; 2022-01-06
- fix 32-bit size_t multiplication overflow in meyrs diff code
- ignore the return value of closefrom(2) (patch by Anna a.k.a. CyberTailor)
- sort paths in got log -Pp and tog's diff view the same way as in the diff
- fix NULL dereference in 'got clone' if server sends an empty pack file
- tog: make searches start from the current position in all views
- tog: clear search highlighting when reloading view (naddy)
- set close-on-exec flag on files opened by main process (suggested by millert)
- use 'gotadmin pack' when running tests with GOT_TEST_PACK=1, not 'git repack'
- fix bogus "object not found" errors when specified object ID begins with 00
- avoid creation of new temporary files whenever a packed object is read
- use time-based rate-limiting for gotadmin progress output
- print status output even when 'gotadmin cleanup' finds no objects to remove
- tog: fix a scrolling problem when diffing binary files
* got 0.64; 2021-11-23
- try only 3 delta base candidates instead of 10 to speed up packing
- use up to 128 delta chain elements again; creates smaller packs at same speed
- remove unused variables to fix LLVM 13 warnings (naddy)
- make 'got rebase' switch the work tree if no commits need rebasing (jrick)
- fix man page HTML rendering for command aliases (kn)
- let gotadmin find the repository automatically if invoked in a work tree
- preserve binary files during updates and merges instead of leaving them empty
- allow sorting references by timestamp in tog ref view
- add got ref -t option to sort listed references by modification time
- add got branch -t option to sort listed branches by modification time
- regress: make test operands POSIX compliant (thomas_adam)
* got 0.63; 2021-10-17
- fix 'got send -T' regression if tag already exists on server (found by Omar)
- fix another regression where a 3-way merge would segfault (naddy)
- tog: add Ctrl-n/Ctrl-p for scrolling one line down/up (patch by Omar Polo)
- always initialize output parameter "n" of get_line() in diff3.c
- set oldo.to in diff3.c's duplicate() even if the file contains no newlines
* got 0.62; 2021-10-16
- man pages: document command aliases in tmux(1) style, add tags (kn)
- ignore unversioned files while aborting rebase, histedit, merge or operations
- let 'got fetch' send all references to the server to avoid redundant downloads
- plug memory leaks in got-fetch-pack and got-send-pack
- provide lib/Makefile to enable tags file generation (kn)
- add support for multiple path arguments to 'got diff'
- fix merging of lines inserted at the top of a file (reported by Omar Polo)
- display the requested object type in "object not found" error messages
- implement 'got diff -c' for diffing commits with optional filtering by path
- speed up 'got histedit -l' and 'got rebase -l'
- fix merging of files which contain a dot on a line by itself
- sort and de-duplicate work tree path command line arguments (suggested by kn)
- fix pack index cache element rotation; keep often used entries near the front
- use a bloom filter to avoid pointless pack index searches
- do not skip ignored directories in 'got status' if they contain tracked files
- FreeBSD's ed(1) does not accept "0i"; use the equivalent "1i" instead (naddy)
- speed up pack file creation a little by caching raw objects
- limit delta chain length in newly created pack files to 32 deltas
- while packing, store encoded deltas in temporary files instead of in memory
- sync with OpenBSD parse.y (naddy)
- make 'gotadmin indexpack' unveil the repository read/write, not read-only
- plug memory leak in an error path of read_packed_object()
* got 0.61; 2021-10-03
- fix list of 'got status' options in the got.1 man page
- tog: use sched_yield(2) for better portability (patch by Quentin Rameau)
- fix histedit_no_op test which was failing randomly (patch by Lucas)
- fix 'got send' with tree objects which contain symlinks (reported by Omar)
- tog: show parent commit IDs of merge commits in the diff view
- add a 'got merge' command for creating merge commits
- fix 'got update' of an added + obstructed file
- mark some function parameters 'const', as they should be (patch by Omar Polo)
- add 'static' qualifier to local functions in got-read-pack (again Omar Polo)
- fix some integers that had a slightly wrong type (again by Omar Polo)
- match printf specifiers and (cast) types for portability (naddy)
- don't change bad symlinks into regular files during merges
- handle errno variations upon open(2) failure with O_NOFOLLOW for portability
- garbage-collect unused "dist" target from subdirectory Makefiles (naddy)
- match the unsigned char type used by the zlib interface (naddy)
- fix unsigned/signed char mismatch in parse.y (naddy)
- fix 'got fetch' downloading too many objects in some cases
- interrupt 'got rebase' upon missing/unversioned/not-deleted files
- interrupt 'got histedit' upon missing/unversioned/not-deleted files
- pull in a type fix from the OpenBSD parse.y template (naddy)
- explicitly set the default branch name after 'git init' in regress tests
- add histedit -e option which runs the 'edit' script command for every commit
- skip ignored directories during 'got status' disk crawl
* got 0.60; 2021-09-15
- fix another instance of 'got send' sending branches the server already has
- make 'got send' regression tests run 'git fsck' on all involved repositories
- shell code fixes in regress tests for portability (naddy)
* got 0.59; 2021-09-14
- fix copy-pasto in got.conf man page
- add -q quiet mode to checkout and update (tracey)
- make 'got send' send commits which are referenced only by tags (found by Omar)
- add -S option to 'got status' for suppressing certain status codes (tracey)
- make 'got checkout' display the checked out reference and commit ID
- make 'got update' display the worktree's branch name upon success
* got 0.58; 2021-09-11
- tog: support navigating to first/last line of tree and ref views (naddy)
- tog: jump directly to first log item instead of traversing the list (naddy)
- tog: when jumping to bottom of the log view, go from tail backwards (naddy)
- make "got branch -d" print reference name and value (naddy)
- move code duplicated by got-send-pack and got-fetch-pack to common files
- assert against accidentally overflowing argv[] in got_dial_ssh() (naddy)
- make 'gotadmin info' display separate send/fetch URLs if they differ
- fix a null-pointer deref in 'got fetch -d' (reported by Omar Polo)
* got 0.57; 2021-09-03
- remove superfluous strdup(3) from parse.y files (Martin Vahlensieck)
- adapt regress tests which handle UTC dates (naddy)
- make 'got send' actually heed branch {} options in got.conf(5) as intended
- disable ignore lists during status walks used by rebase and histedit
- tog: add support for navigating to first/last line of blame view (naddy)
- fix bogus error when 'got cherrypick' merged changes into locally added file
- remove ancestry checks to make 'got cherrypick' and 'got backout' run faster
- limit checks for merge conflicts to files affected by the merge to be faster
- fix 'got send' adding too many objects to the pack file in some cases
* got 0.56; 2021-08-30
- prevent a race where 'gotadmin cleanup' deletes concurrently created objects
- plug a small memory leak in tog's show_diff_view() function
- fix a use-after-free in get_changed_paths() in got and tog
- use less memory allocations when formatting log messages
- make got_deltify() rellocate the deltas array less often
- plug a memory leak in an error path of got_deltify()
- fix miscalculation of the final pack file size reported by got_pack_create()
- fix the error message shown when the server sends a bad ref line
- prevent NULL deref in got-fetch-pack if server does not announce capabilities
- add a missing bounds-check in got-fetch-pack when parsing server response
- fix, again, use of POSIX [ s1 = s2 ] syntax instead of [ s1 == s2 ] (naddy)
- add 'got send' for sending changes to remote repositories (with naddy, tracey)
- allow deletion of refs/remotes/ branches with got branch -d
- add missing "return 1" to failure handling in the regress scripts (naddy)
- make realloc_ids() malloc-like and do not overallocate (naddy)
- fix seek to incorrect offset in the delta base when creating deltas
- use gmtime_r(3) to display timestamps in UTC as intended (found by naddy)
- add keys for navigating to first/last item of tog log and diff views (jasper)
* got 0.55; 2021-07-26
- display recovery steps in the lonely pack index error message
- fix double-free that occurred upon exit from 'tog tree'; found by naddy
- don't scan pack index offsets for large values if pack file is < 2GB
- new -X option for removing backups created by got rebase and got histedit
- add 'got fetch -X' option for deleting references created by 'got fetch'
- make 'got ref -d' print reference name and value like the new -X options do
* got 0.54; 2021-07-08
- fix imsg header includes in pack_create.c
- explicitly include endian.h for be32toh() in repository_admin.c (naddy)
- switch from SIMPLEQ to equivalent STAILQ macros (naddy)
- fix logic error in gotweb navigation for commits, briefs, and tags (tracey)
- fix bugs where files skipped by 'got update' could not be updated again
- fix out-of-bounds access in 'gotadmin pack'
- fix unintended redundant recallocarray() calls done by 'gotadmin pack'
- cache object type in memory to speed up packing of objects referenced by tags
- fix, again, use of POSIX [ s1 = s2 ] syntax instead of [ s1 == s2 ] (naddy)
- new 'gotadmin cleanup' command for removing unreferenced loose objects
- handle pack index files which lack a corresponding pack file
- make 'got add' always require the -I option in order to add ignored files
- write lines instead of just one character at a time in diff_output_lines()
- verify object ID checksums while loose objects are being accessed
* got 0.53; 2021-06-22
- do not update symlinks which are already up-to-date
- add a gotadmin utility with info, pack, indexpack, and listpack commands
- fix 3-way merge of files which lack a final \n
- make double-quotes appear in rendered got.1 man page as intended (Nam Nguyen)
- gotweb: render error page instead of returning error 500 (tracey)
- avoid an error in tog(1) while the terminal window is being resized
- plug a memory leak in got_ref_list_free()
- catch invalid reference names passed to 'got ref -l'
- fix a memory leak in dial_git() (naddy)
- fix unrelated changes being merged by got cherrypick/backout/rebase/histedit
- go back to Patience diff for merging during cherrypick/backout/histedit/rebase
- fix file descriptor leak in got_repo_close() (tracey)
- fix hang in commit regress test if $VISUAL is set in the environment (tracey)
- use socketpair(2) instead of pipe(2) for better portability to Linux
- make it possible to profile gotweb and document how profiling works