Game of Trees tagshttps://framagit.org/stsp/got/-/tagshttps://framagit.org/stsp/got/-/tags/0.970.97got 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()Stefan Sperlingstsp@stsp.namehttps://framagit.org/stsp/got/-/tags/0.960.96got 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()Stefan Sperlingstsp@stsp.namehttps://framagit.org/stsp/got/-/tags/0.950.95got 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 listingStefan Sperlingstsp@stsp.namehttps://framagit.org/stsp/got/-/tags/0.940.94got 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 IDsStefan Sperlingstsp@stsp.namehttps://framagit.org/stsp/got/-/tags/0.930.93got 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.92Stefan Sperlingstsp@stsp.namehttps://framagit.org/stsp/got/-/tags/0.920.92got 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 portabilityStefan Sperlingstsp@stsp.namehttps://framagit.org/stsp/got/-/tags/0.910.91got 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 togStefan Sperlingstsp@stsp.namehttps://framagit.org/stsp/got/-/tags/0.900.90got 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 runningStefan Sperlingstsp@stsp.namehttps://framagit.org/stsp/got/-/tags/0.890.89got 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 pathsStefan Sperlingstsp@stsp.namehttps://framagit.org/stsp/got/-/tags/0.880.88got 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_indexStefan Sperlingstsp@stsp.namehttps://framagit.org/stsp/got/-/tags/0.870.87got 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 sectionStefan Sperlingstsp@stsp.namehttps://framagit.org/stsp/got/-/tags/0.860.86got 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 errorStefan Sperlingstsp@stsp.namehttps://framagit.org/stsp/got/-/tags/0.850.85got 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 fileStefan Sperlingstsp@stsp.namehttps://framagit.org/stsp/got/-/tags/0.840.84got 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.80Stefan Sperlingstsp@stsp.namehttps://framagit.org/stsp/got/-/tags/0.830.83got 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 accessStefan Sperlingstsp@stsp.namehttps://framagit.org/stsp/got/-/tags/0.820.82got 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 logsStefan Sperlingstsp@stsp.namehttps://framagit.org/stsp/got/-/tags/0.810.81got 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 optionStefan Sperlingstsp@stsp.namehttps://framagit.org/stsp/got/-/tags/0.800.80got 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-deltasStefan Sperlingstsp@stsp.namehttps://framagit.org/stsp/got/-/tags/0.790.79got 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 repositoryStefan Sperlingstsp@stsp.namehttps://framagit.org/stsp/got/-/tags/0.780.78got 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.yStefan Sperlingstsp@stsp.name