lib/repository.c


Log

Author Commit Date CI Message
Stefan Sperling d7b5a0e8 2022-04-20T14:00:12 inline struct got_object_id in struct got_object_qid Saves us from doing a malloc/free call for every item on the list. ok op@
Christian Weisgerber f134ecfd 2022-03-19T21:25:59 const-ify string table
Omar Polo c560c1f5 2022-03-14T13:50:31 don't `goto done' if calloc fails otherwise we call got_repo_close with repo being NULL and segfault there. ok stsp
Stefan Sperling 9b576444 2022-03-14T13:22:20 cache a list of known pack index files when the repository is opened Avoids overhead due to readdir calls while searching a pack index. ok op@
Stefan Sperling 0e6ab4b2 2022-03-10T09:23:19 make got_repo_match_object_id_prefix() reject overlong input strings suggested by + ok naddy
Stefan Sperling 0ed2285b 2022-03-09T08:55:42 handle reference arguments which look like short object IDs Match command line arguments against references before matching object IDs. This makes it possible to use reference names that happen to match a short object ID. For example, a branch called "11ac" could not be diffed in OpenBSD src.git which happens to contain commit IDs that begin with hex digits 0x11ac. A bogus error would be reported in this situation: $ got diff master 11ac got: ambiguous object ID ok naddy
Omar Polo 8934ea8b 2022-02-14T13:14:36 factorize imsg_clear calls after imsg_flush failures imsg_clear frees and closes resources allocated as part of enqueueing imsgs so it's a no-op after reads. discussed with and ok stsp@
Stefan Sperling 67fd6849 2022-02-13T00:10:25 reuse existing deltas when creating pack files tested by thomas, naddy, and myself
Stefan Sperling c0df5966 2021-12-31T09:33:01 wrap overlong lines
Stefan Sperling e7ae0baf 2021-12-31T09:11:22 add O_CLOEXEC (close-on-exec) to openat(2) calls suggested by millert ok thomas_adam
Stefan Sperling 8bd0cdad 2021-12-31T09:11:21 add O_CLOEXEC (close-on-exec) flag to open(2) calls suggested by millert ok thomas_adam
Stefan Sperling d3c116bf 2021-10-15T09:10:14 cache raw objects in order to speed up gotadmin pack
Stefan Sperling f8b19efd 2021-10-13T11:09:15 use RB_TREE instead of STAILQ to manage packindex bloom filters; much faster
Stefan Sperling b343c297 2021-10-11T18:54:11 use a bloom filter to avoid pointless pack index searches
Stefan Sperling 7a0b1068 2021-10-11T18:54:08 fix pack index cache element rotation; keep often used entries near the front
Stefan Sperling 138e4f47 2021-10-09T19:47:15 display the requested object type when an object could not be found ok millert@
Stefan Sperling 237cfda1 2021-10-08T22:34:25 make got_repo_match_object_id() filter tags by the requested object type Potentially this function could return objects of a type that was not requested. Problem found by code inspection. This change does not affect any of our existing tests.
Christian Weisgerber abc59930 2021-09-05T19:41:03 indentation fixes
Stefan Sperling 6480c871 2021-08-30T15:51:23 provide separate send {} and fetch {} configuration blocks in got.conf Feature requested by naddy. ok naddy, who also suggested some tweaks that will arrive shortly
Stefan Sperling 1124fe40 2021-07-07T17:21:52 handle pack index files which lack a corresponding pack file ok millert
Stefan Sperling aea75d87 2021-07-06T07:57:00 make got_packidx_get_packfile_path() usable for callers who only have a path
Stefan Sperling 2252c019 2021-07-03T22:55:27 Update a code comment regarding support of the preciousObjects extension.
Stefan Sperling 9188bd78 2021-07-03T22:51:03 add support for the preciousObjects Git extension to 'gotadmin cleanup'
Christian Weisgerber dbdddfee 2021-06-23T20:48:35 switch from SIMPLEQ to equivalent STAILQ macros The singly-linked tail queue macros were added to OpenBSD 6.9 and are more widely available on other systems. ok stsp
Stefan Sperling 1d0f4054 2021-06-17T08:56:43 check for close(2) error in got_repo_close() and propagate errors up ok tracey
Tracey Emery 991ff1aa 2021-06-15T22:16:22 close all opened repo->gitdir_fd's and set open_repo static. ok naddy (with static change)
Stefan Sperling 0c9eeee2 2021-06-05T09:32:56 avoid uninitialized error being returned from got_repo_get_packfile_info()
Stefan Sperling a3af57b8 2021-05-10T11:26:06 remove unused worktree-related includes from lib/repository.c
Stefan Sperling 20662ea0 2021-04-10T13:31:30 introduce 'gotadmin info'
Stefan Sperling 6c414261 2021-03-30T01:26:42 cap pack file cache size at 1/8 of the current open file desciptor limit
Stefan Sperling 61303e6e 2021-03-30T01:22:29 fix off-by-one in got_repo_cache_pack()
Stefan Sperling 08578a35 2021-01-22T11:05:05 make close(2) failure checks consistent; check 'close() == -1' everywhere ok millert, naddy
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
Yang Zhong 6d5a9006 2020-12-16T11:16:27 add fd field to got_repository, modify got_packidx_open to use fds These changes are intended to make got more compatible with FreeBSD's Capsicum. ok stsp
Stefan Sperling 785d65a4 2020-12-05T22:11:32 make got_repo_object_match_tag() work with absolute reference names Bug triggered by naddy while testing a patch for tog. ok naddy
Stefan Sperling dbb02f4d 2020-12-04T20:23:06 in got_repo_open(), let realpath(3) take care of relative paths
Stefan Sperling 16aeacf7 2020-11-26T12:54:19 use size_t for loop indices to avoid signedness warnings; from emaste@freebsd
Stefan Sperling 8fa913ec 2020-11-14T13:19:18 remove now pointless 'check_disk' parameter of got_repo_map_path() suggested by naddy
Stefan Sperling eef9542c 2020-10-22T20:37:50 preserve what was passed in if got_repo_map_path() can't figure out a path problem found by + ok naddy
Stefan Sperling 20b7abb3 2020-10-22T20:36:23 detect unknown repository format extensions (such as sha256 format) ok millert
Stefan Sperling 0c93d204 2020-10-20T21:09:00 tried_root in got_open_repo is not needed ok naddy
Stefan Sperling aff6eea4 2020-10-20T21:09:00 handle non-const dirname in got_repo_open() and plug a memory leak ok naddy
Stefan Sperling 9aceaadf 2020-10-20T21:09:00 properly skip to the end upon error in got_repo_open() ok naddy
Stefan Sperling b8adfa55 2020-09-25T21:35:10 add "branch" keyword to got.conf which specifies a list of branches to fetch ok tracey
Christian Weisgerber 23c57b28 2020-09-11T19:44:18 Stop including <sys/syslimits.h> directly. POSIX says the limits defined there are available from <limits.h>, which almost all affected source files already included anyway. ok millert stsp
Stefan Sperling 50b0790e 2020-09-11T17:04:57 add per-worktree got.conf(5) file in the .got directory; ok millert
Stefan Sperling 3168e5da 2020-09-10T00:10:55 zap trailing tabs
Stefan Sperling 257add31 2020-09-09T23:57:40 add got.conf(5) configuration file ok tracey
Christian Weisgerber 78fb0967 2020-09-09T21:41:22 use the POSIX standard endian functions and explicitly include <endian.h> ok stsp
Christian Weisgerber 81a12da5 2020-09-09T19:35:32 do not rely on <zlib.h> to pull in <unistd.h> ok stsp
Stefan Sperling b66cd6f3 2020-07-31T10:33:34 display more context info in "no such entry found in tree" error messages
Stefan Sperling e8863bdc 2020-07-23T14:22:33 add symlink support to 'got import'
Stefan Sperling 20ccae39 2020-07-21T14:19:32 cope with directory entries returned from readdir(3) with type DT_UNKNOWN Such directory entries need special handling to make our directory traversal code work on filesystems that do not support the d_type optimization. I found this problem because references stored in the refs/ directory were not shown by 'got log' and 'tog log' when a repository is mounted over NFS. helpful feedback + ok millert@
Stefan Sperling ded8fbb8 2020-04-19T08:57:07 include the relevant object ID in NO_OBJ error messages where possible
Stefan Sperling 86d8a25a 2020-04-19T08:57:07 show bad ID in "object not found" error from got_repo_match_object_id_prefix()
Stefan Sperling 2fb669fb 2020-03-20T20:23:18 initialize optional output parameters in parse_gitconfig_file()
Stefan Sperling b46f3e71 2020-03-18T16:13:47 create a git config file in newly cloned repositories
Stefan Sperling 66cba96f 2020-03-18T16:11:27 use GOT_OBJECTS_PACK_DIR instead of variants of the same which contain typos
Stefan Sperling 63f810e6 2020-02-29T07:54:55 when "bad path" errors occur, always show the path in question
Stefan Sperling 9a1cc63f 2020-02-03T09:18:40 read repository owner name with gitconfig parser instead of a hand-rolled one
Stefan Sperling 65aa7d1c 2020-01-28T20:07:15 simplify repository child path check in got_repo_map_path()
Stefan Sperling e83c0634 2020-01-27T22:25:59 remove pointless cwd checking from got_repo_map_path()
Stefan Sperling d1f16636 2020-01-15T22:05:49 move got_repo_cmp_tags() to got_ref_cmp_tags()
Tracey Emery 2ddd4701 2020-01-15T20:39:12 move cmp_tags() into the library
Stefan Sperling 71a27632 2020-01-15T19:26:49 move match_object_id() into the library; supersedes got_repo_resolve_commit_arg
Stefan Sperling 7a1d6b72 2020-01-15T19:10:46 fix 'tog log -c' with tags
Stefan Sperling 87c1ed2b 2020-01-07T21:50:38 don't bother swapping the first pack index cache pointer, and improve comment
Stefan Sperling e1a68182 2020-01-07T17:49:17 fix pack index cache; don't open/close pack index files needlessly
Stefan Sperling 5aa81393 2020-01-06T19:38:23 add copyright year for files already touched in 2020
Stefan Sperling 1accf02b 2020-01-05T19:32:21 detect duplicate object IDs during ambiguity check; packed regress passes now
Stefan Sperling cd95becd 2019-11-29T02:46:04 parse remotes from gitconfig
Stefan Sperling 56e0773d 2019-11-28T02:32:58 convert tree entries from SIMPLEQ to an array
Stefan Sperling 6dd1ece6 2019-11-10T11:32:03 when an object id string is bad, include the bad string in the error message
Stefan Sperling 5d67f40d 2019-11-08T16:23:17 rename 'got init' and 'got import' default branch to "main"; patch by kmos@
Stefan Sperling db1d3576 2019-10-04T13:13:22 handle empty trees during 'import' and 'checkout'; spotted by sthen@
Steven McDonald 303e14b5 2019-09-22T16:04:05 Add missing includes for time() and ctime() These headers were implicitly used on OpenBSD, but building on Linux revealed that <time.h> wasn't included directly. diffreg.c uses ctime(), which additionally needs <sys/types.h>.
Hiltjo Posthuma d6fca0ba 2019-09-15T13:51:17 check calloc() for NULL return value
Stefan Sperling c9956ddf 2019-09-08T18:13:54 use author name/email from ~/.gitconfig if GOT_AUTHOR is not set
Stefan Sperling aba9c984 2019-09-08T17:14:34 obtain repo format version and commit author name/email from .git/config
Stefan Sperling 6b68ccd6 2019-09-01T13:10:13 prevent theoretical double-free with non-OpenBSD asprintf (found by jasper)
Stefan Sperling f2db9c47 2019-08-24T22:14:29 don't mask "not a git repo" errors in got_repo_open()
Stefan Sperling 1d126e2d 2019-08-24T14:39:58 add support for reading .git/config; parser was based on isakmpd/conf.c
Stefan Sperling b8bad2ba 2019-08-23T20:01:06 make 'got tag -l' list tags by time stamp in descending order
Stefan Sperling 29606af7 2019-08-23T18:42:27 allow got_ref_list() to restrict returned refs to a particular namespace
Stefan Sperling e6209546 2019-08-22T11:12:24 untie cancel callback declaration from the work tree
Stefan Sperling d24820bf 2019-08-11T21:19:14 add support for tag objects to 'got diff'
Stefan Sperling 303e2782 2019-08-09T13:37:56 add support for tags to -c options of some got commands
Stefan Sperling e4167f30 2019-07-27T20:32:39 ignore missing objects/pack dir in match_packed_object()
Stefan Sperling 987345dd 2019-07-27T14:37:55 remove unused variable found in write_tree()
Stefan Sperling b90deaa1 2019-07-27T14:31:45 don't fail hard if 'objects/pack' directory does not exist in repo
Stefan Sperling 62550b13 2019-07-23T14:35:00 fix path in got_repo_open() error message
Stefan Sperling 6876e203 2019-07-22T10:38:36 remove another pointless call to got_path_normalize()
Stefan Sperling 3ce1b845 2019-07-14T18:59:53 initial 'got import' implementation
Stefan Sperling 2840f715 2019-07-11T12:57:15 new realpath(3) doesn't like receiving an empty path as input
Stefan Sperling 52d1d0d9 2019-07-07T18:07:51 fix bug where match_loose_object() skipped some objects
Stefan Sperling 561c3678 2019-07-02T11:48:15 fix detection of ambiguous object ID match with pack files
Stefan Sperling dd88155e 2019-06-29T23:26:36 disambiguate abbreviated object IDs based on object type
Stefan Sperling 83c8b3b8 2019-06-29T22:40:42 plug leaks in got_repo_match_object_id_prefix()
Stefan Sperling b2df341b 2019-06-29T22:37:52 put error checks in right order