got


Log

Author Commit Date CI Message
Stefan Sperling 3217be6d 2021-06-22T20:03:59 in got.1, add -I to the synopsis line of the status command
Stefan Sperling f6343036 2021-06-22T20:00:44 new -I option for 'got status' to show files which match an ignore pattern
Stefan Sperling 1d0f4054 2021-06-17T08:56:43 check for close(2) error in got_repo_close() and propagate errors up ok tracey
Stefan Sperling 91c82228 2021-04-18T11:50:01 got.1: make double-quotes appear in the rendered man page as intended Patch by Nam Nguyen
Stefan Sperling 6c19a3dc 2021-04-10T13:37:59 add missing comma in SEE ALSO section of git-repository(5)
Stefan Sperling 0a79feb1 2021-04-10T13:35:23 Xr gotadmin(1)
Klemens Nanni 1795b260 2021-04-02T23:31:08 Fix "mandoc -T lint" WARNINGS and ERRORS, add missing word
Klemens Nanni 1a1242a9 2021-04-01T19:28:57 diff: reduce duplicate code Condense error checking to reduce a future diff moving those lines around; this pattern is already used in other parts of the tree. fine stsp ok tracey
Stefan Sperling 9e822917 2021-03-23T11:39:17 rebase/histedit -l: error out if no backups for the requested branch exist
Stefan Sperling e3199de8 2021-03-21T19:09:35 fix strftime return value check; found by jrick
Stefan Sperling e600f124 2021-03-21T19:09:35 ensure that old commits remain referenced after rebase and histedit Create automatic "backup" references which ensure that objects from the pre-rebase or pre-histedit state remain in the repository. A new -l option for 'got rebase' and 'got histedit' lists old commits. This makes it easier to recover from botched rebase or histedit operations. Removal of such objects currently requires got ref -d and git-gc. This will be made more convenient in the future. testing and ok jrick
Stefan Sperling 601aba22 2021-03-21T19:08:46 improve got ref -d documentation: mention that objects won't be deleted ok jrick
Josh Rickmar ec6d1a36 2021-03-21T18:49:57 Fix strftime(3) short buffer checks strftime(3) returns 0 if the buffer was too short to write the complete string (including NUL) and will never return more than maxsize-1. ok stsp
Josh Rickmar 4e20a648 2021-03-21T16:39:29 Clarify log -x is inclusive ok stsp
Stefan Sperling 34d4e04c 2021-02-08T13:52:37 include remote branches in the output of 'got branch -l' This makes it easier to discover the existence of copies of remote branches in the local repository, and fixes a missing asterisk in 'got branch -l' while the work tree is switched to a remote branch. Prompted by feedback from helg, thanks!
Christian Weisgerber 8ea5c997 2021-02-07T20:55:39 got info: fix a pasto in an error message
Stefan Sperling df3ed485 2021-01-31T11:57:10 simplify the error message shown when 'got rebase' has nothing to do
Stefan Sperling 28cf319f 2021-01-28T17:06:22 add 'got commit -F' option to commit with a log message stored in a file To avoid accidents commit -F opens the prepared log message in an editor so it can be reviewed before the commit is created. For non-interactive use the -N option is required in addition to -F. ok millert@
Stefan Sperling a5a46be2 2021-01-27T22:20:52 in 'got clone', allow -l together with -q, for consistency with 'got fetch'
Stefan Sperling 7b4f1fcb 2021-01-27T22:12:42 in got.1 fix a 'got branch' example which used obsolete syntax
Stefan Sperling 56b63ca4 2021-01-22T11:04:47 make fclose(3) failure checks consistent; check 'fclose() == EOF' everywhere ok millert, naddy
Stefan Sperling 56d0a753 2021-01-20T21:07:46 let 'got clone' write gitconfig directives that match the generated got.conf
Stefan Sperling 99495ddb 2021-01-10T23:48:51 add a 'reference' directive to remote repositories in got.conf(5) Make use of this in 'got clone' to persist -R option arguments given on the command line in the cloned repository's got.conf(5) file.
Stefan Sperling 5aa20203 2021-01-05T17:51:49 document that 'got clone -a' sets 'fetch-all-branches' in got.conf(5)
Stefan Sperling 0c8b29c5 2021-01-05T17:22:14 add a 'fetch-all-branches' configuration setting to got.conf(5) Set fetch-all-branches in the got.conf(5) file created by 'got clone -a' in order to make a future 'got fetch' act like 'got fetch -a' by default.
Stefan Sperling 132af4a5 2021-01-05T15:30:44 store all branches passed via 'got clone -b' in got.conf(5) and git-config(1)
Stefan Sperling 612392ee 2021-01-05T14:01:16 allow the 'got fetch' -l option together with the -q option Make use of this in tests to hide useless output from ssh(1).
Stefan Sperling 15d3c221 2021-01-05T13:47:37 make 'got clone' pin the fetched branch in got.conf(5) Avoids relying on the server-side HEAD ref by default during future fetches.
Stefan Sperling 888b7d99 2020-12-26T23:18:45 make use of a reflist object id map in 'got log' Impoves performance of 'got log' on the FreeBSD Git repo which can easily contain more than 4000 references.
Stefan Sperling d9dff0e5 2020-12-26T21:32:01 switch reflist to TAILQ; insert elements more efficiently for sorted input ok naddy
Stefan Sperling 84de9106 2020-12-26T20:48:43 Add a refs argument to got_repo_match_object_id(), replacing 'resolve_tags' Make use of this where possible to avoid re-reading references from disk. ok naddy
Stefan Sperling cc63216e 2020-12-26T12:23:23 update got.1 CAVEATS section; prompted by feedback from otto@
Stefan Sperling 6059809a 2020-12-17T15:54:47 use size_t for loop indices to avoid signedness warnings; by emaste@freebsd Same change as 16aeacf7088d, for subdirectories other than lib/
Stefan Sperling 0d5bb276 2020-12-15T23:50:35 allow editing of log message comments with 'got histedit' This makes it possible to remove just comment lines from log messages during a histedit operation, leaving the rest of the log message as-is. The behaviour of treating changes to comment lines as no-ops was coded to prevent mistakes during 'got commit/import/tag', where the command will error out if the log message template is not modified. This is not appropriate for histedit because histedit is used to fix such mistakes. ok millert@
Stefan Sperling 71392a05 2020-12-13T11:43:41 prevent log message loss of folded commits during histedit If the histedit log message editor exits without saving its buffer, Got threw away log messages of all commits which were folded. Only the last commit message is preserved, which could be something meaningless like "fixup". Instead, preserve the initial editor buffer content as-is. That is not going to be an ideal log message, but doesn't throw away information and stands out visually because the newly created log message will start with a comment like '# log message of folded commit a0ff...' Problem reported by jrick
Stefan Sperling b3805337 2020-12-13T11:40:10 histedit -f conflicts with -F option Also fixed as part of a different patch from jrick ok jrick
Stefan Sperling ff69268e 2020-12-13T11:38:48 use a helper function to generate error messages for mutually exclusive options Inspired by a different patch from jrick ok jrick
Stefan Sperling 9f6bb280 2020-12-11T11:41:43 remove redundant explanation of histedit -f and -m options from got.1
Stefan Sperling b54435ba 2020-12-11T01:19:21 fix typo in got.1: "only if" -> "if only"; pointed out by tracey
Stefan Sperling 2a78779e 2020-12-11T01:18:32 document that histedit -f can only be used if starting a histedit operation
Josh Rickmar 466785b9 2020-12-10T23:24:31 add histedit -f flag for folding shortcut "please push it" stsp
Stefan Sperling 64453f7e 2020-11-21T13:35:00 handle binary files in got/tog diff commands; add -a options to force text
Stefan Sperling be659d10 2020-11-18T17:18:23 fix type of filesize output parameter of got_object_blob_dump_to_file()
Stefan Sperling 8fa913ec 2020-11-14T13:19:18 remove now pointless 'check_disk' parameter of got_repo_map_path() suggested by naddy
Stefan Sperling fe621944 2020-11-10T22:54:37 merge new diff implementation from the git.gameoftrees.org diff.git repository This new diff implementation was started by Neels Hofmeyr during the u2k20 hackathon and now replaces diffreg.c code lifted from the OpenBSD base system. The integration of this code into Got was done by me. Got now uses the patience diff algorithm by default. The diff.git repository will remain the primary repository for the diff code, which already compiles and runs on other operating systems such as Linux. Any fixes and improvements for files inherited from the diff.git repository should be written against that repository and synced to got.git afterwards.
Stefan Sperling 4fedbf4c 2020-11-07T17:59:31 avoid got_repo_map_path() in 'got tree' if a work tree is available Note that got_worktree_resolve_path() will return a path based on the current working directory if the argument is the empty string. This quirk keeps the behaviour of 'got tree' intact which depends on the current working directory if run in a work tree. ok naddy@
Stefan Sperling 01740607 2020-11-04T20:18:53 avoid got_repo_map_path() in 'got blame' 'got blame' does not need access to the work tree. So far the work tree was completely hidden with unveil(). We must now expose the work tree while resolving the path, so unveil() calls are shuffled around slightly. Failing realpath() calls would mess with path resolution otherwise. There's a bug in got_worktree_resolve_path() where it failed to canonicalize a path constructed from a user-specified path that does not exist on disk. Note that this path falls into strncmp() a few lines down. I am fixing this by adding canonicalization. Generally, joining paths with asprintf() and comparing paths with strncmp() is fragile. A more general solution might be needed but I am leaving that for another day. ok naddy
Stefan Sperling 7f9bfb31 2020-11-01T22:49:19 replace resolve_commit_arg() helper in got.c with got_repo_match_object_id()
Stefan Sperling 579bd556 2020-10-24T13:18:03 prevent a NULL dereference if 'got log -p' runs against a root commit
Stefan Sperling 603cdeb0 2020-10-22T20:37:50 make 'got log' avoid got_repo_map_path() if run in a work tree ok naddy
Christian Weisgerber 62d463ca 2020-10-20T22:43:59 indentation fixes
Stefan Sperling 54eb00d5 2020-10-20T22:25:57 properly handle nonexistent remote repository names given to 'got fetch' found by jrick ok naddy
Stefan Sperling f0207f6a 2020-10-19T23:14:59 switch to got_path_basename() in cmd_checkout() ok millert
Christian Weisgerber 016859fc 2020-10-02T19:30:50 suggest aggregated pathnames in find(1) example ok stsp
Stefan Sperling 42a285e2 2020-10-01T20:52:12 unveil repositories read-write when adding tags with 'got tag'
Christian Weisgerber 6879ba42 2020-10-01T15:15:22 do not treat the -h and -V flags as errors When run with the -h or -V option, output the help or version text to stdout and exit with success (0). Only write usage and help information to stderr and exit with error (1) if there is a mistake in the command syntax. tweak and ok stsp
Stefan Sperling f535bcd4 2020-09-30T16:38:17 fix 'bad path' error from 'got clone' by unveiling the repository path again Problem found by jrick
Christian Weisgerber 9814e6a3 2020-09-27T14:55:18 prefer the BSD extension to reset getopt over the GNU one Sadly there is no portable way to reset getopt(3). BSD: optind = 1; optreset = 1; GNU: optind = 0; ok stsp
Christian Weisgerber 1367695b 2020-09-26T20:53:13 fix potential type mismatches between format specifiers and arguments Cast printf arguments of type time_t and off_t to long long to match the %lld format specifier on platforms where this might not be the case. In parse.y, switch the number variable to long long because all its interactions are with that type anyway. ok millert stsp
Stefan Sperling bfa12d5e 2020-09-26T18:59:46 rework got's commit-time log message modification check Use a new approach for detecting unchanged log messages: Strip comments and leading/trailing empty lines from both the initial content and the modified log message, then compare the result. Do not assume a fixed upper limit for the length of a line. Change suggested and patch tested by jrick typo fix + ok naddy
Stefan Sperling 820059fa 2020-09-25T22:49:42 whitespace fixes (patch by jrick)
Stefan Sperling b8adfa55 2020-09-25T21:35:10 add "branch" keyword to got.conf which specifies a list of branches to fetch ok tracey
Stefan Sperling b08a0ccd 2020-09-24T14:39:18 do not pledge 'got integrate' in a PROFILE=1 build found by jrick on freenode
Stefan Sperling 04d9a9ec 2020-09-24T13:45:44 allow an interrupted 'got clone' to be resumed by 'got fetch' Set up config files as soon as possible such that 'got fetch' has enough information in order to resume an interrupted clone operation. We need to receive at least a default HEAD branch name from the server before we can set up our configuration files. The previous code also verified whether the default branch name supplied by the server resolved to a commit received in the pack file. This check cannot be done early but a wrong branch name in a config file can be fixed easily.
Stefan Sperling 7c0b7f42 2020-09-24T11:00:06 refactor code which creates config files for 'got clone' using helper functions
Stefan Sperling a9c2d4c2 2020-09-24T10:53:18 fix default branch name written to Git config file by 'got clone' The generated Git config file instructed Git to fetch all branches rather than the default branch as was intended. Check generated configuration files in all clone tests in order to catch such problems in the future.
Stefan Sperling 2751fe64 2020-09-24T09:16:18 let 'got clone' try to connect to server before creating repository contents
Stefan Sperling 521dbd35 2020-09-22T16:48:28 trim leading slashes from repository path written to got.conf (found by naddy)
Stefan Sperling 48cae60d 2020-09-22T00:03:02 make dangling symbolic references show up in 'got ref -l' Storing a resolved ID for each reference list item was a bad idea. This ID cannot be resolved if a symbolic references points to a reference which does not exist. Such symrefs were skipped by got ref -l as a result. Just let users of reference lists resolve the IDs as needed.
Stefan Sperling c47340da 2020-09-20T00:17:51 in cmd_checkout() handle basename(3) modifying its argument ok naddy@
Stefan Sperling 72862ecf 2020-09-16T12:04:07 add missing space in got-worktree(5) synopsis
Christian Weisgerber 0429cd76 2020-09-15T19:09:36 fix typo in error message
Stefan Sperling 934b035c 2020-09-15T09:56:52 expand "Got" to "Game of Trees" in got-worktree(5) synopsis line for consistency
Stefan Sperling 5b735925 2020-09-15T09:52:03 document our default choice of text editor; suggested by Ricky Cintron
Stefan Sperling 0f43fed9 2020-09-14T14:05:11 add got.conf(5) to MAN list in Makefile
Stefan Sperling 53643ae1 2020-09-14T13:51:51 document why got.conf(5) will not configure the editor to use
Stefan Sperling 46215d2a 2020-09-11T18:32:20 add 'got histedit' to got.1's list of commands which use EDITOR/VISUAL
Stefan Sperling 42536c09 2020-09-11T18:31:21 fix misplaced comma in got.conf(5) SEE ALSO section
Stefan Sperling 59f86c76 2020-09-11T17:26:40 plug memory leaks in error paths while collecting log messages
Stefan Sperling 97972933 2020-09-11T17:26:08 check for errors from write(2) and close(2) while collecting log messages
Stefan Sperling 50b0790e 2020-09-11T17:04:57 add per-worktree got.conf(5) file in the .got directory; ok millert
Christian Weisgerber 1601cb9f 2020-09-11T15:09:35 use plain write() in place of dprintf() with a pre-formatted string step-by-step guidance from millert; ok millert stsp
Stefan Sperling 3168e5da 2020-09-10T00:10:55 zap trailing tabs
Stefan Sperling cc8dff2e 2020-09-10T00:07:08 remove unused files; their contents were merged into got-read-gotconfig
Stefan Sperling 257add31 2020-09-09T23:57:40 add got.conf(5) configuration file ok tracey
Stefan Sperling 4dbec0a8 2020-08-27T10:46:17 actually make use of an intermediate variable in cmd_clone() found by tracey's scan-build
Stefan Sperling 766841c2 2020-08-13T19:12:57 add -s option to 'got remove' which deletes files in a particular status This makes it easy to deal with files that were deleted from disk by external tooling which modified the work tree. Such files are left in missing (!) status and can now be marked for deletion in bulk via 'got rm -s\! -R .' For consistency, modified (M) files can now be removed with 'got rm -s M' which implies 'got rm -f'. Prompted by feedback from krw@
Stefan Sperling 081470ac 2020-08-13T19:12:57 add -s option to 'got status' which acts as a status code filter Advantages over using grep are that the list of codes is validated against a list of known status codes, and that it is easier to match staged files which can display status codes in one or both of two columns. Prompted by feedback from krw@
Stefan Sperling d93542d4 2020-08-08T12:09:35 In got-worktree(5), explain how to re-create a corrupt or missing file index.
Stefan Sperling 6d7260fd 2020-08-03T07:56:23 remove remnants of recursive include support from parse.y
Tracey Emery 51b930a3 2020-08-02T16:50:17 clean up those one-liner assignments ok stsp
Stefan Sperling 9e6e8e60 2020-08-02T16:38:51 got parse.y tweaks Rename things to better match their intended purpose. Tweak namespacing. Add a function for freeing config items that are dynamically allocated. Add 'struct gotconfig' to make room for potential global settings we might want to add later, instead of implementing just a list of remote repositories. ok tracey
Stefan Sperling 502b9684 2020-07-31T15:36:42 make 'got log' -R and -P options work in combination With -R, the -P option did not show any paths. Regression test added here demonstrates the problem.
Stefan Sperling b2118c49 2020-07-28T20:17:19 Add a 'got info' command which displays work tree meta-data. Remove the alias 'got in' for 'got init'. The 'in' alias was too close to either 'init' or 'info'. ok tracey, millert
Stefan Sperling cf07f22b 2020-07-25T16:28:50 improve "got log ." command mark-up in got.1 EXAMPLES
Stefan Sperling af358f55 2020-07-23T16:49:58 tweak description of new -S option for 'got commit' and 'got stage' with input from + ok tracy and millert
Stefan Sperling 35213c7c 2020-07-23T14:22:39 forbid bad symlinks; add -S option to 'got commit' and 'got stage' to allow them
Stefan Sperling 3b9f0f87 2020-07-23T14:22:35 handle additional symlink conflicts and report skipping of unversioned files
Stefan Sperling c90c8ce3 2020-07-23T14:22:35 preserve unversioned files when merging added symlinks
Stefan Sperling 39449a05 2020-07-23T14:21:29 make 'got diff' show changes to symlinks in a work tree