Skip to content
Tags give the ability to mark specific points in history as being important
  • 0.101
    334f014f · CHANGES for 0.101 ·
    got 0.101
    
    - 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
  • 0.100
    ddb4fae8 · CHANGES for 0.100 ·
    got 0.100
    
    - 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'
  • 0.99
    903ff357 · CHANGES for 0.99 ·
    got 0.99
    
    - 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
  • 0.98
    6dd1428a · CHANGES for 0.98 ·
    got 0.98
    
    - 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
  • 0.97
    66e67abe · CHANGES for 0.97 ·
    got 0.97
    
    - 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()
  • 0.96
    7cec82d8 · CHANGES for 0.96 ·
    got 0.96
    
    - 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()
  • 0.95
    77e5865e · CHANGES for 0.95 ·
    got 0.95
    
    - 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
  • 0.94
    3d4035d2 · CHANGES for 0.94 ·
    got 0.94
    
    - 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
  • 0.93
    9f84980b · CHANGES for 0.93 ·
    got 0.93
    
    - 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
  • 0.92
    8565077e · CHANGES for 0.92 ·
    got 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
  • 0.91
    ea2cd47d · CHANGES for 0.91 ·
    got 0.91
    
    - 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
  • 0.90
    bbdcc5d5 · CHANGES for 0.90 ·
    got 0.90
    
    - 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
  • 0.89
    9602b780 · CHANGES for 0.89 ·
    got 0.89
    
    - 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
  • 0.88
    7e97a14e · sync dist file list ·
    got 0.88
    
    - 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
  • 0.87
    b249788f · changes for 0.87 ·
    got 0.87
    
    - 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
  • 0.86
    fd27565d · CHANGES for 0.86 ·
    got 0.86
    
    - 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
  • 0.85
    4127fdc3 · CHANGES for 0.85 ·
    got 0.85
    
    - 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
  • 0.84
    1bff8162 · CHANGES for 0.84 ·
    got 0.84
    
      too many changes to list all here; see git repository history for more;
      and see git repository history for per-change authorship information
    - add 'got histedit -d' flag to drop all commits
    - show worktree UUID in backout/cherrypick -l output
    - several changes in preparation for eventual SHA256 object ID support
    - make 'got rebase' work when the to-be-rebased branch has no parent commit
    - fix bad line-wrapping in tog ref and tree views
    - add horizontal scrolling support to tog ref and tree views
    - create .pack and .idx files with filemode 0444, like Git does
    - make 'got fetch' fetch the work tree's current branch as an implicit fallback
    - improve 'got fetch' behaviour when work tree's branch is not on server
    - gotwebd: fix briefs/tags navigation overlap
    - drop double process name from some gotd logs
    - tog: fix high CPU usage issue after starting search (reported by Mikhail)
    - fix gotd exiting with abnormal error during client connection teardown
    - fix gotd segfault in libevent while disconnecting clients
    - tweak 'got commit' log-message validation: now checks timestamp and size > 0
    - gotwebd: abort blame if the client disconnects midway through
    - make 'got fetch -b branch' only fetch the named branch
    - got/tog/gotadmin: call pledge(2) earlier where possible
    - no longer error out if redundant "got commit -A $GOT_AUTHOR" option is used
    - add 'gotadmin pack' -D flag to force generation of ref-deltas in pack files
    - make 'got fetch' update cached HEAD symref if it has changed in remote repo
    - add commit/histedit/merge/rebase -C option to commit unresolved conflicts
    - make 'got status' check for merge conflict markers on newly added lines only
    - fix read/write out of bounds in gitconfig file parser (reported by James Cook)
    - fix "got fetch" hanging if remote repo is out-of-date (reported by James Cook)
    - ignore patterns with trailing "/" now match directories (suggested by Lucas)
    - make 'got merge' honour author setting in gitconfig (reported by James Cook)
    - sync default values shown in gotwebd.conf(5) EXAMPLES section
    - fix parsing of indented comments in gitconfig file (reported by James Cook)
    - fix tog diff between arbitrary commits; regression from 0.80
  • 0.83
    4718a153 · CHANGES for 0.83 ·
    got 0.83
    
    - 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
  • 0.82
    6d451452 · CHANGES for 0.82 ·
    got 0.82
    
    - 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