See the
git repository
history for per-change authorship information.
make gotsys-write-conf configure clone-urls for all accessible repositories
ensure visitors see the repository index page after logging into gotwebd
make 'gotadmin cleanup' run even if HEAD points at a non-existent branch
gotsys.conf.5 and got.1 wording and markup fixes
replace obsolete tmppath pledge in got-notify-http with wpath+cpath & unveil
avoid a malloc/free dance per parsed tree entry in got-read-pack
stop using the pack delta-cache in got-read-pack, cache-less is faster here
fix double-free in error path of the 'gotadmin pack' commit coloring phase
store first-level object_idset hash table entries inline to avoid malloc/free
avoid doing asprintf/free per tree entry in got_pack_load_tree_entries()
avoid a per tree-entry memcpy() in got-read-pack enumerate_tree()
avoid deltifying packed delta-base objects to speed up pack file generation
cache fewer but larger deltas in delta-cache to speed up got-index-pack
fix gotd/gotsys-check trying to parse gotsys.conf from a non-zero file offset
fix setting of a custom HEAD reference during repository creation by gotsysd
tweak gotwebd's Content-Security-Policy (CSP) to allow javascript in websites
fix CSP-violating URL-paths to gotwebd static assets in generated HTML
document gotwebd's Content-Security-Policy in gotwebd.conf.5
fix gotwebd serving websites from a branch other than HEAD
add a per-repository clone_url option to gotwebd.conf
make gotsys-write-conf set the clone_url option in gotwebd.conf
make 'tog diff' indent log messages above patches for safety
gotweb can now show SSH host key fingerprints for clone URLs and login hints
make gotsys-write-conf add ssh host key fingerprints to /etc/gotwebd.conf
only display the "Clone URL:" label if there is a clone URL to display
fix overflow CSS for gotwebd clone URL
scope gotwebd authentication cookies to gotweb URL root path instead of "/"
make gotwebd display the authenticated user name while logged in
provide a link which can be used to log out when logged into gotwebd
plug fulltext delta cache memory leaks; found by otto malloc
make gotwebd serve its own static files if not they are not served by httpd
avoid deleting local HEAD and "refs/got/" refs during 'got fetch -d'
hint at PASSWDSKIP for security(8) in gotsh.1
fix bogus 'got histedit' error when deleting files which do not exist on disk
standardize -h option exit status code across all commands
gotwebd: stop reading from client once request has been parsed; fixes hangs
gotwebd: add support for serving static web sites from Git repositories
gotwebd: fix login links when gotwebd is not served at the root URL location
gotwebd: add support for custom mime types, like in httpd.conf
gotwebd: allow for displaying non-default SSH port numbers in login hints
gotwebd: prepend 64 bits of randomness to login token data
gotwebd: stop gracefully when a TERM signal is received
remove undocumented support for macros from gotsys.conf parse.y
make it possible to set repository descriptions in gotwebd.conf
add gotwebctl, a utility which can be used to control gotwebd
fix gotsys.conf syntax check for empty hmac secrets
allow gotsysd to configure and restart gotwebd
remove gotsys-sshdconfig; gotsysd no longer modifies /etc/ssh/sshd_config
improve syntax error handling in gotsysd.conf, gotwebd.conf, and gotd.conf
disable gotwebd authentication if it is not enabled in /etc/gotwebd.conf
ensure that GOTWEBD_LOGIN_TIMEOUT is used consistently at build time
prevent date-specific gotsysd regress failures due to asctime_r whitespace
make gotwebd refuse to start up if the _gotwebd user is root
make gotwebd warn if the webserver's user is set to root in /etc/gotwebd.conf
add /etc/gotwebd.conf parameters for hiding repositories
reject bad hostnames provided to the gotsh weblogin command
allow gotwebd to optionally display a login hint when authentication fails
clean up gotwebd requests before freeing sockets; avoids deref of NULL sock
fix wrong process names in gotwebd error messages
use an absolute URL in redirects generated by gotwebd
fix an issue where histedit would not merge added files correctly
tweak gotwebd deferred accept handling to work more like httpd's
add a 'weblogin' command to gotsh for use with gotwebd user authentication
add user authentication support to gotwebd
make gotwebd IPC sockets use non-blocking I/O as intended to fix hang
prevent gotd looping on unhandled errors raised by accept()
fix gotsysd.conf "listen on" statement failing on non-existent sockets
pass gotwebd.conf's www user setting to every gotwebd child process
security fix for -portable: gotwebd can be tricked into reading repositories outside its repos_path; bug introduced in got-0.111; OpenBSD is not affected
make 'tog diff' show the repository name in names of patches written to /tmp
plug memory leaks which were making gotwebd regress tests fail
fix parallel processing of requests in gotwebd, improving responsiveness
set gotwebd pledges according to address families of listening sockets
run gotwebd fcgi parameter parsing in a dedicated process under pledge "stdio"
make gotd commit notifications only show history which is unique to the branch
enable sftp/scp support in the sshd_config file generated by gotsysd
make gotsysd-managed repositories readable for the _gotd group
regress: replace "sed -i" with ed(1) for portable in-place editing
ensure that error messages from gotsysd libexec helpers get logged
fix gotsysd using wrong auth and hmac labels in the generated gotd.conf
preserve bad symlinks across merges during rebase and histedit
improve binary files detection: detect any control characters, not just NUL
gotwebd: fix race condition resulting in truncated html with trailing garbage
make commit coloring faster and more accurate, producing smaller pack files
improve selection of pack files for pinning in the open pack file cache
regress: don't load global/home git configuration files while running tests
make 'got clone' set a got.conf default branch for fetching only, not sending
make our pack-refs header format align with the expectations of git 2.50.0
fix bogus "bad offset in pack file" errors wrongly raised by gotd
fix gotd branch protection rejecting commits that already exist on server
pick a default branch to clone when the server does not advertise HEAD symref
do not clobber changes staged via stage -p during "got revert"
enforce additional restrictions on reference names specified in gotsys.conf
change gotwebd favicons to show the smiley fish only
fix gotd reload when /etc/gotd-secrets.conf is used
fix bogus "raw object has unexpected size" errors during deltification
fix bug in delta block stretch size calculation resulting in invalid deltas
fix gotsysd behaviour when the anonymous user is removed from gotsys.conf
add support for email and http/json notifications to gotsysd and gotsys.conf
make errors reported by gotsys-apply-conf actually visible
stop trying to start gotd from gotsys-apply-conf if gotd is not running
fix infinite loop in got_pack_repaint_parent_commits() and got-read-pack
fix creation of gotd.conf deny rules in gotsys-write-conf
add support for global repository access rules to gotsysd.conf
fix segfault due to double-free in got-read-gotconfig
preserve author timestamps when rebasing commits
stop running ssh with -q by default; -q hides host key fingerprint errors
fix gotsys-read-conf crash when ssh key comments are missing in gotsys.conf
relax repository path permission checks in gotsys-repo-create
add gotsys apply -w option which waits until sysconf has been run
fix gotsysd getting stuck due to missing final messages from libexec helpers
plug a file descriptor leak in the gotsysd libexec process
tweak 'got status' and 'got add' ignores handling for better git compatibility
improve redundant pack detection during 'gotadmin cleanup'
gotwebd: do not forget to initialize *ngroups argument for getgrouplist()
fix default access for root and _gotd when gotsysd runs without config file
fix bogus "unexpected privsep message" from gotsh during 'got send'
fix a race in gotd notification processing causing notify process to exit
remove /tmp/got-importmsg temp files when import commit message is left empty
rely on secondary _gotwebd groups if repos_path is not owned by _gotwebd group
fix unrelated errors being reported if a histedit operation is aborted
implement support for protected references in gotsys.conf and gotsysd
plug memory leaks in some libexec helpers and in the gitconfig parser
stop needlessly opening the repository whenever a work tree is opened
introduce gotsysd: configure gotd servers by committing to gotsys.git repo
make gotd run 'gotsys check' on gotsys.conf commits before accepting them
make gotd run 'gotsys apply' when the gotsys.git repo receives changes
add a missing malloc failure check to gotd's repo_write process
make got clone/fetch work against Git servers which do not speak English
stop processing more messages upon error in gotd repo_write process
close file descriptors passed to gotd_imsg_compose_event() on failure
potential fix for use-after-free in lib/repository.c's match_packed_object()
make gotd return an informative error when the connection limit is exceeded
in gotctl info, display the time when a client connection was created
add reload support to gotd, triggered via 'gotctl reload', not via SIGHUP!
test S_ISREG in parse_ref_file() explicitly rather than via getline(3)
release ref-file lock when fstat fails in parse_ref_file()
do not treat unhandled signals as a fatal error in gotwebd
fix an edge case of tog spinning when 'B' is pressed in log view
stop using got_repo_map_path() in gotwebd to fix spurious realpath(3) errors
avoid creation of pack_fds array when not needed, saving file descriptors
gotwebd now runs as the _gotwebd user by default, rather than "www"
gotwebd can now serve repositories outside the /var/www chroot directory
the gotwebd.conf repos_path directive is no longer relative to the chroot
get rid of the gotwebd-specific libexec helpers in /var/www/bin/gotwebd
improve gotwebd behaviour when sending data to already disconnected clients
plug some memory leaks in got-send-pack and got-fetch-pack
fix got-fetch-http performance when server sends chunked HTTP responses
fix an endless loop in got-read-pack (regression from 0.109)
change gotwebd diff algorithm from Myers to Patience diff
gotd regress depends on p5-Net-Daemon now due to an added test case
fix gotd failing to protect references when the client sends an empty pack
during pack generation, fix exclusion of commits via an ancestor commit
fix a bogus "received unexpected privsep message" error from gotsh
fix diffstat path order bug in field width computation
gotwebd: preserve 'folder=' parameter when following More links
add ssh -i identity-file support to commands which use the network
make 'got import' output independent of readdir(3) entry order
avoid full file content comparisons in 'got status' for speed
tog: fix NULL deref when log view T keymap is used on worktree entry
tog: fix a deadlock (hang) in the log view implementation
tog: plug a memory leak
tog: do not exit if a tag pointing at a non-commit is selected in ref view
tog: do not mark an incorrect base commit in nested log views
tog: fix NULL deref when scrolling small tree views down
tog: avoid showing a negative log view entry index
tog: do not apply a pointless count modifier to the H, &, p keymaps
tog: do not make users wait for the worktree diff to quit out of tog
gotwebd: make parent process drop root privileges
gotwebd: drop read access to /var/www from parent process
gotwebd: rename "socket" processes to "server"
gotadmin cleanup: pack the repository before removing objects
gotadmin cleanup: do not delete directly referenced trees and blobs
gotadmin cleanup: do not delete objects reachable via nested tags
regress: skip test memleak_send_basic in sha256 mode; expected to fail
regress: make seq(1) invocations portable to fix test failures on linux
regress/gotwebd: implement paginated commits test
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
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
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
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
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
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
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
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'
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
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
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()
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()
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
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
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
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
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
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
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
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
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
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
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
too many changes to list all here; see git repository history for more;
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
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
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
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
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
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
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
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
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)
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)
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 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)
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 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@)
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
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)
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
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)
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)
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
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)
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
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()
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
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)
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
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)
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
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)
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
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
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
fix memory and fd leaks in got_pack_stop_privsep_child() (tracey)
fix bogus 'permission denied' error when a file at work tree root is removed
port packfile creation code over from git9
new -I option for 'got status' to show files which match an ignore pattern
fix error checking in dial_ssh()
increase pack index cache size from 16 to 64 to improve performance
fix off-by-one in got_repo_cache_pack() causing the wrong pack to be evicted
cap pack file cache size at 1/8 of the current open file descriptor limit
when reading a pack index byte-swap fields at compile-time where possible
diff: reduce duplicate code (kn)
fix "mandoc -T lint" WARNINGS and ERRORS, add missing word (kn)
fix open file descriptor leak in error path of read_object_header_privsep()
deltify.c: explicitly include <endian.h> for be64toh()
rebase/histedit -l: error out if no backups for the requested branch exist
fix use of uninitialized stat buffer during status crawl (found by naddy)
use Myers diff instead of Patience diff when merging files with diff3
port file deltification code from git9; a prerequisite for writing pack files
implement raw object data access; another prerequisite for writing pack files
improve got log -x documentation (jrick)
improve got ref -d documentation
fix strftime(3) short buffer checks (jrick)
ensure that old commits remain referenced after rebase and histedit
new got rebase -l option which lists past rebase operations
new got histedit -l option which lists past histedit operations
implicitly mark all files in work tree as up-to-date after 'got integrate'
tog: fix behaviour if 'n' is pressed before search is started (found by naddy)
in 'got clone', allow -l together with -q, for consistency with 'got fetch'
add 'got commit -F' option to commit with a log message stored in a file
simplify error message shown when 'got rebase' has nothing to do
tolerate tag objects which lack tagger timestamp information (found by naddy)
got info: fix a pasto in an error message (naddy)
include remote branches in the output of 'got branch -l' (suggested by helg)
use POSIX [s1 = s2] syntax instead of [s1 == s2] (patch by Ryo ONODERA)
tog log: terminate author field at '>' in case there is no '@' (naddy)
replace fparseln(3) with getline(3), for better portability (naddy)
make 'got clone' pin the fetched branch in got.conf(5)
allow the 'got fetch' -l option together with the -q option
store branches passed via 'got clone -b' in got.conf(5) and git-config(1)
work around spurious ACK responses from git servers in got-fetch-pack
add a 'fetch-all-branches' configuration setting to got.conf(5)
add a 'reference' directive to remote repositories in got.conf(5)
fix 'got up -c commit path' deleting unrelated files (found by Timo Myyrä)
fix 'tog blame' segfault upon empty input file (found by naddy)
let 'got clone' write gitconfig directives that match the generated got.conf
fix a use after free in got_worktree_close() (naddy)
make fclose(3) failure checks consistent; check 'fclose() == EOF' everywhere
make close(2) failure checks consistent; check 'close() == -1' everywhere
fix missing close(2) error check in got_worktree_close()
update got.1 CAVEATS section; prompted by feedback from otto@
fix assignment to wrong pointer in got_ref_dup()
fix performance on repositories with many references (e.g. freebsd src.git):
implement an object ID map for reference lists
use reflist object id maps in got log, tog log, and tog diff (with naddy)
switch reflist to TAILQ; insert elements more efficiently for sorted input
reset tog blame view's scroll position if line count shrinks too much (naddy)
replace unprintable characters with '.' before passing them to curses (naddy)
allow editing of log message comments with 'got histedit'
implicitly mark all files in work tree as up-to-date after rebase/histedit
add fd field to got_repository, modify got_packidx_open to use fds (yzhong)
more size_t for loop indices to avoid signedness warnings; by emaste@freebsd
fix path existence check in got_object_tree_path_changed (reported by jrick)
fix parsing of tag objects which lack a tag message; found in u-boot.git repo
do not mix up repos if tog's -r option is used in a work tree (with naddy)
avoid signed vs unsigned comparisons in fetch.c (with millert)
introduce got_custom_error array to support multiple errors in flight
switch to strerror_r(3) in error.c for thread-safety
new diff implementation from git.gameoftrees.org/diff.git (with neels)
use Patience diff algorithm with fallback to Myers diff
new blame algorithm which compares commit N-1 to N (with neels)
handle binary files in got/tog diff commands; add -a options to force text
consistently label removed files as "/dev/null" in diff headers
prevent potential fclose(NULL) in error path of diff_blobs()
use size_t for loop indices to avoid signedness warnings (by emaste@freebsd)
in tests, replace echo with printf and stop option processing via "--" (naddy)
fix test failure of test_tree_submodule_of_same_repo for packed repos (yzhong)
add fd to got_worktree, modify got_fileindex_entry_update to use fds (yzhong)
add histedit -f flag for folding shortcut (jrick)
prevent log message loss of folded commits during histedit
tog: plug two memory leaks in draw_file()
tog: show current/total line numbers in diff view header
tog: highlight matched search terms in diff and blame views
tog: call pthread_cond_destroy(cond) just once when closing log view (naddy)
tog: reset diff view's scroll position if diff context shrinks too much
tog: make tog diff accept reference and tag arguments; add -w and -C options
tog: new 'tog ref' subcommand which displays references in the repository
tog: fix entry selection when moving to the parent in tree view (naddy)
tog: fix page-down/page-up scrolling in the tree view (with naddy)
tog: trim redundant parameters from many functions, and tidy up code (naddy)
tog: log view now requests more commits when the window expands (naddy)
tog: call pledge(2) directly in main() instead of per-command
tog: fix bug on FreeBSD where pressing 'q' in a child view caused tog to exit
tog: fix move to next/prev commit in diff view if log is not displayed (naddy)
tog: make ^L in the log view stick to branches/tags selected via -c option
tog: make tree view keep track of branches/tags specified via -c
tog: fix crashes when the log view reloads displayed data
tog: resize events go to child views as well as parent views (found by naddy)
tog: move the tree view's selection cursor up if terminal shrinks too much
tog: fix display of lines that end in "\r\n" (problem found by jrick)
tog: accommodate newer ncurses where panel_userptr() returns const (naddy)
tog: use getline(3) instead of fparseln(3) for better portability
detect unknown repository format extensions such as Git's sha256 extension
prevent a NULL dereference if 'got log -p' runs against a root commit
fix permissions mode bits for fetched pack files; patch by Alisdair MacLeod
use fchmod(2) instead of chmod(2) (semarie, naddy)
initialize sb.st_mode after stat(2) failure in got_worktree_resolve_path()
clear staged file type in file index entries whenever staged status is cleared
unlink temporary files in error cases of install_blob()
fix replacing a file with a symlink during merges; problem found by jrick
fix parsing of 'ON' keyword in gotweb parse.y; patch by Martin Vahlensieck
remove unused variable in gotweb.c; patch by Martin Vahlensieck
do not treat the -h and -V flags as errors (naddy)
allow regress test data to be stored in locations other than /tmp
unveil repositories read-write when adding tags with 'got tag'
rewrite test argument parsing with the POSIX getopts shell built-in (naddy)
in tests, accommodate ls -l implementations that print "total 0" (naddy)
fix a bug where 'got status' showed an unchanged empty file as changed
handle non-const basename(3) and dirname(3) for POSIX compatibility
properly handle nonexistent remote repository names given to 'got fetch'
add "branch" keyword to got.conf which specifies a list of branches to fetch
rework got's commit-time log message modification check
fix potential type mismatches between format specifiers and arguments (naddy)
prefer the BSD extension to reset getopt over the GNU one (naddy)
fix 'bad path' error from 'got clone' by unveiling the repository path again
make 'got ref -d' delete both loose and packed representations of the ref
make dangling symbolic references show up in 'got ref -l'
fix handling of slashes in got.conf repository paths (found by naddy)
hide remote HEAD refs in gotweb in order to match got and tog output
make 'got histedit' collapse folded add+delete operations (found by jrick)
fix matching the first object ID listed in a pack index (found by jrick)
let 'got clone' try to connect to server before creating repository contents
fix default branch name written to Git config file by 'got clone'
allow an interrupted 'got clone' to be resumed by 'got fetch'
handle failed connection attempts to git:// servers (patch by jrick)
make gotweb work in subdirectories of the web space (found by uwerler)
do not rely on <zlib.h> to pull in <unistd.h> (naddy)
remove unused #includes from the new got-read-gotconfig/parse.y (naddy)
document our default choice of text editor (suggested by Ricky Cintron)
in tests, replace ksh syntax with POSIX arithmetic expressions (naddy)
fix got.conf overriding GOT_AUTHOR even if no author is set in got.conf
in tests, expand arguments in shell script for POSIX compatibility (naddy)
fix crash in got_free_gotconfig()
in cmd_checkout() handle basename(3) modifying its argument for portability
print newline to clear the bottom line when tog exits (naddy)
install got-read-gotconfig into gotweb's chroot environment
add -q option to tests for quiet output and use it for 'make regress'
document how to re-create a corrupt or missing file index in got-worktree(5)
fix some memory leaks in tog (tracey)
add workaround for a performance issue when 'tog diff' shows a large diff
add -s option to 'got status' which acts as a status code filter
add -s option to 'got remove' which deletes files in a particular status
plug a memory leak in got_privsep_recv_tree() in error case
in got_object_commit_get_logmsg(), handle log messages which lack '\n'
do not rely on <zlib.h> to pull in <unistd.h> (naddy)
use POSIX standard endian functions and include <endian.h> (naddy)
add got.conf(5) configuration file
use modern POSIX timestamp fields in struct stat (naddy)
use plain write() in place of dprintf() with a pre-formatted string (naddy)
stop including <sys/syslimits.h> directly (naddy)
switch regress function declarations from ksh to POSIX shell syntax (naddy)
add support for managing symbolic links under version control
new -S option for 'got commit' and 'got stage' to skip symlink safety checks
add a 'got info' command which displays work tree meta-data
display more context in "no such entry found in tree" error messages
fix spurious 'got cherrypick' error with a path prefix and an empty tree
fix committing file additions from a work tree with a path prefix
fix build error with clang 10 due to missing for-loop block grouping (naddy@)
make 'got log' -R and -P options work in combination
cope with directory entries returned from readdir(3) with type DT_UNKNOWN
fix merging with files that do not contain a newline character
heed .{cvs,git}ignore if a path is given on the 'got status' command line
plug memory leak that occurred when files were deleted during checkout/update
add new parse.y code for future use and restructure gotweb's parse.y
fix an error return in gotweb (by Martin Vahlensieck)
document how to use commit messages prepared in a file (by Scott Bennett)
make 'got/tog tree' show symlink targets like 'ls -lF' does: link@ -> target
allow creation of commits which carry unmodified submodule tree entries along
some error, usage, and progress message improvements
fix "no such entry found in tree" error with got log -p and an added path
show a list of paths changed in a commit with 'got log -P' and in tog
prevent false positive tree entry differences due to bogus file mode bits
write directory tree entry mode bits in the same way as Git does (0040000)
don't pass "-p 22" to ssh; makes ssh_config's Port option work (semarie)
fix a file index corruption problem with 'got rebase' (found by tracey)
fix 'got log -r' loading refs from the wrong repo if invoked in a work tree
filter out "remotes/*/HEAD" references in got/tog log output
make use of new convenience API functions of kcgi 0.12 in gotweb
make 'got update' skip conflicted files (prevents loss of local changes)
show a summary of conflicts and related problems after updating/merging files
add 'got log' -x option to stop logging when a specific commit was traversed
add 'got log' -R option to reverse commit display order
clarify wording in got.1 related to local changes/commits/branches
show bad object ID in "object not found" error messages where possible
normalize tree entry modes to 0100644 or 0100755 when writing tree objects
fix "searching..." displayed in tog log view while merely scrolling down
in got.1, clarify how 'got update' deals with local (aka uncommitted) changes
be nice to unaware users who attempt to use got commands in a Git work tree
show 'searching...' during 'tog log' search even if no new commits are loaded
display "no matches found" if no commit matches a 'tog log' search
display "no more matches" if 'tog log' search cannot find any more matches
make 'tog log' consistently scroll a page upon page-down key (found by naddy)
make 'got fetch' create or restore remote HEAD reference if it is missing
make 'got fetch -d' delete branches from both refs/heads and refs/remotes
take status line into account during page up/down in 'tog log' (naddy)
make 'got tree' use the current branch if invoked in a work tree (tracey)
compute pack file's checksum during download and check it in got-fetch-pack
make got-index-pack compute and verify the pack file's checksum as well
stop verifying pack file checksum in the main process during clone/fetch
fix bogus 'reference HEAD not found' error (reported by Matthias aka _xhr_)
make 'got clone' create refs/remotes/origin/HEAD, as 'git clone' does
make 'got fetch' handle updates to refs/remotes/*/HEAD
add support for git and git+ssh network protocols (patch by ori@)
add 'got clone' and 'got fetch' commands
don't error out if rebase sees no merged paths; elide the commit instead
prevent 'got commit' from committing empty sub-directories (found by tracey)
allow limiting the output of 'got ref -l' to a single ref or a namespace
add -c option to 'got ref' which now expects just one argument after options
plug a memory leak in got-read-pack
remove 'Next' link from tags on gotweb summary page if no tags exist (tracey)
trim directories in got remove -R (tracey)
prevent commits from being listed more than once in a histedit script
fix histedit 'rebase commit ID mismatch' error when splitting a commit
be helpful when users try to check out work trees without a known branch
map 'tog path' to 'tog log path' if possible (requested by mpi)
when "bad path" errors occur always show the path in question
show merged commit ID upon merge conflict during rebase and histedit
improve man page documentation of rebase and histedit
disallow 'got rebase' while a histedit operation is in progress
switch 'got tag' commit argument to a new -c option
let 'got branch' switch and update the work tree
improve documentation of -r flags in tog man page (naddy)
add 'got histedit -m' option which makes it easy to edit log messages
switch 'tog diff' repository path argument to a new -r option (naddy)
fix 'tog diff object1 object2' when run inside a work tree (naddy)
document semantics of got log and tog log path arguments
add ^B/^F key bindings (page up/down) to 'tog blame' and 'tog tree' (naddy)
disable compiler warnings in release builds to avoid -Werror build breakage
fix gotweb build with -O2 on sparc64 (tracey; reported by kmos)
add next/prev navigation to gotweb commit briefs and commits pages (tracey)
add new gotweb tags page and ability to navigate all tags (tracey)
ensure gotweb's libexec helpers inherit build flags from parent directories
allow 'got ref' to manipulate refs which do not have a slash in their name
add an optional path argument to 'tog tree'
fix misplaced tog search prompt in split-screen views
initial release of gotweb(8), a repository server for web browsers (tracey)
fix a segfault in 'got backout' (tracey, reported by semarie)
switch 'tog tree' repository path argument to a new -r option
fix 'got blame' and 'tog blame' on files added on worktree's current branch
enable searching in tog diff view with the '/' key (tracey)
ignore EROFS during checkout for repositories on read-only filesystems
do not open log message editor if there are no changes during 'histedit -c'
display branch name and first commit to be edited at top of histedit script
fix bug where 'got revert -R' failed on added subtrees
fix bug where 'got log PATH' failed to map PATH into the repository
make 'tog log' show linear history by default; add -b option and B key
make 'got log' show linear history by default; remove -f and add -b option
do not display unversioned files during 'got revert -R'
tweak default colors for directories and symlinks in 'tog tree'
sleep for one nanosecond after syncing the file index to disk
fix 'tog log -c' with tags
fix suspending and resuming tog with Ctrl-Z and fg (reported by naddy@)
fix 'tog tree' usage displayed in error case (patch by naddy@)
support Git-style "lightweight" tags as arguments for 'got diff'
handle Git-style "lightweight" tags in got tag -l
make got and tog accept a --version argument (prompted by tedu@)
add -E option to 'got checkout' allowing use of a non-empty work tree path
make 'tog log PATH' fail when a non-existent path is specified
fix out of bounds access (patch by Martin <openbsd () academicsolutions ! ch>)
fix switching to tog's tree view when logging a path (reported by naddy@)
do not open and close pack index files needlessly
fix 'got log' and 'tog log' performance issue when lots of tags exist
do history traversal in got-read-pack to improve 'got blame' performance
plug memory leaks in got-read-commit, got-read-tree, and got-read-pack
fix reading reference deltas with GOT_PACK_NO_MMAP builds
disable got-read-pack's delta cache in GOT_NO_OBJ_CACHE builds
make it possible to run regress tests with packed repositories
more portable string comparison in Makefile.inc (patch by Edgar Pettijohn)
prevent rebase with an out-of-date work tree
make 'got checkout' and 'got update' work with read-only repositories
prevent status crawl from racing with paths changing in the filesystem
add -k option to 'got remove' to keep files on disk (Tracey Emery)
add -R option to 'got remove' for recursive deletion (Tracey Emery)
add -I option to 'got add' to disregard ignore patterns (Tracey Emery)
show numeric dates in ISO-8601/xkcd-1179 format in 'tog log' and 'got blame'
allow empty diff context context (-C0) in 'got diff' (kn@)
add '-s search-pattern' option to 'got log' (kn@)
forward rebased branch if there are no commits to rebase, instead of error
parse remote repository URLs from gitconfig
actually forbid new reference names with a leading '-', as intended
convert tree entries from SIMPLEQ to an array for better performance
compile static binaries in PROFILE build
add -R option to 'got add' for recursive addition (patch by Tracey Emery)
reduce the amount of memcpy() and strdup() while parsing tree entries
fix tog display issue caused by Tab in commit messages; reported by mpi@
cache delta data buffers in an LRU cache to improve performance
add -c option to 'got branch', replacing the optional second argument
fix reading pack files larger than 2GB
try not to hide errors from helper programs when got exits
use less empty padding space after author name in 'tog log'
rename 'got init' and 'got import' default branch to "main" (patch by kmos@)
add optional colorized display mode to tog
make 'tog log' show abbreviated commit IDs if the window is large enough
fix staging of multiple files with -p
show commit date's century in 'got blame' output (patch by Tracey Emery)
always show the input path when realpath(3) returns an error
preserve log message when an error occurs during commit, tag, or import
ignore empty files in refs directory instead of throwing errors
show file mode differences (executable bit) when diffing in-repository trees
fix handling of executable-bit changes during update, commit, and status
improve tog's responsiveness after loading hundreds of thousands of commits
fix tog performance bug which made searching through commits very slow
add 'got integrate' command for merging a branch back to its parent branch
show content from the merge-base file in 3-way merge conflicts, if available
improved indication of 3-way merge inputs in conflict marker labels
handle read errors in got_packidx_init_hdr (found by jj@ with scan-build)
remove worklist code; it was only used to unlink files already unlinked
show bad reference names in error messages to make such errors more clear
add -w (ignore whitespace) option to 'got diff'
improved coding style and error handling in diff3 code
make 'got branch' without args show work tree's branch (requested by benno)
show temporary branch in 'got branch -l' during rebase and histedit
refresh references when 'tog log' view is refreshed with Ctrl+L
make 'got status' read .gitignore files; support **/ and /**/ in patterns
handle empty trees during 'import' and 'checkout' (issue reported by sthen)
show only whitelisted commit headers in 'got log' (semarie)
properly handle getline(3) return type as ssize_t (hiltjo)
replace fgetln(3) with getline(3) for portability (patch by Steven McDonald)
fix implicit time.h includes (patch by Steven McDonald)
fix tiny memory leaks and other minor bugs found by jj@ with scan-build
fix missing error checks (found by jj@ with scan-build and by Steven McDonald)
avoid a couple of potential NULL derefs (found by jj@ with scan-build)
fix cosmetic display issues involving \n and TABs in tog(1)
use author name/email from ~/.gitconfig if GOT_AUTHOR is not set
obtain repo format version and commit author name/email from .git/config
fix line-wrap for lines spanning the terminal in tog diff view
make 'got status' ignore inaccessible directories (reported by semarie)
unstage may need to write to repository; fix unveil(2) call accordingly
fix modified files not shown by 'got status' after committing staged changes
fix tag_list test failure on single-day-digit dates (patch by Evan Silberman)
prevent theoretical double-free with non-OpenBSD asprintf (found by jasper@)
fix NULL deref in got_error_from_errno via got_error_uuid (found by jasper@)
make tog release its work tree lock before going into main loop
'got stage' writes to repository, fix unveil(2) call accordingly
fix several possible leaks, use after frees, and NULL derefs (hiltjo)
tog: mbs2ws: fix sizeof of element for memory allocation (hiltjo)
fix deletion of branches stored in packed-refs
fix 'got log path' in a work tree with a path prefix (with Evan Silberman)
add support for path arguments to 'got cat'
make 'got log -p path' display patches for the specified path only
allow creating branches based on commit IDs
prevent deletion of the work tree's current branch
detect and ignore Git submodules
indicate non-existent path arguments in 'got status'
make 'got diff' error for non-existent path arguments
make 'got tag -l' list tags by time stamp in descending order
fix reading pack index files with large offsets (patch by Hiltjo Posthuma)
add 'got tag' command
add 'got cat' command
support quick cancellation in 'tog blame' view
fix search prompt location in split-screen tog views
fix and simplify blame algorithm
fix blame bug where lines were annotated with wrong commit
man page spelling fixes (patch by Hiltjo Posthuma)
fix uninitialized 'editor' variable (found by Hiltjo Posthuma)
make 'got revert' ignore unversioned files instead of aborting (semarie@)
fix "last commit cannot be folded" histedit check with reordered commits
write tree entries the way git likes it to prevent git index corruption
make 'got blame' show line numbers, dates, and author names
add GOT_LOG_DEFAULT_LIMIT env var for setting a got log -l default
properly parse timestamps in commit objects as UTC (patch by Hiltjo Posthuma)
strip Git GPG signatures from log messages
fix regression: don't try to parse "lightweight" tags as real tag objects
'got log' and 'tog log' now display tags in addition to branch references
'got ref' can now be used to create symbolic references
use <limits.h> instead of <sys/limits.h> (patch by Thomas Klausner)
fix crash if 'got rebase' has no commits to rebase (with semarie@)
annotate symlinks with @ in 'got tree' and 'tog tree'
fix blame with single-commit history and with files without \n
fix crashes in tog when blame returns no results on a file (found by otto@)
man page improvements (bentley@)
add support for tag objects to 'got diff'
fix tog log -r option (patch by semarie@)
fix use of potentially out-of-date errno values (patch by Hiltjo Posthuma)
fix getline(3) return value check (patch by Hiltjo Posthuma)
use Oo/Oc/Op instead of plain brackets in man pages (patch by bentley@)
fix spurious failures of test_revert_patch_one_change due to race condition
fix bug where 'revert -p' would delete all lines following a reverted change
fix merge bug inherited from OpenRCS, affecting lines with leading .
fix man page installation during manual 'make install' from plain tarball
improve error message if helper binaries fail to unveil(2)
add support for tags to -c options of some got commands
attempt to reject GOT_AUTHOR values without an email address because git is unable to parse resulting commit objects
fix build on OpenBSD/sparc64 (gcc)
initial release; see git repository history for changes up to this point