Skip to content
Tags give the ability to mark specific points in history as being important
  • 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
  • 0.81
    a5ddf5e0 · changes for 0.81 ·
    got 0.81
    
    - 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
  • 0.80
    f08fa56d · changes for 0.80 ·
    got 0.80
    
      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
    - 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 fildes variables in libexec helpers (jamsek)
    - got: minor refactor of got_pathlist_free() API (jamsek)
    - fix indexing of pack files which contain ref-deltas
  • 0.79
    efaf26f6 · CHANGES for 0.79 ·
    got 0.79
    
    - 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
  • 0.78
    9925a128 · CHANGES for 0.78 ·
    got 0.78
    
    - 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