lib/repository.c


Log

Author Commit Date CI Message
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
Stefan Sperling 5903ff6e 2019-06-29T22:36:44 stop matching loose objects once we've searched past the ID prefix
Stefan Sperling 4277420a 2019-06-29T12:58:30 speed up matching of abbreviated commit IDs in pack files
Stefan Sperling e09a504c 2019-06-28T20:59:14 introduce support for abbreviated object IDs
Stefan Sperling d69bcdf7 2019-06-28T19:44:24 compare pointer against NULL, not 0
Stefan Sperling 2c7829a4 2019-06-17T14:15:05 implement 'got init'
Stefan Sperling 79c99a64 2019-05-23T22:24:13 don't leak objects which can't be cached
Stefan Sperling ff563a3d 2019-05-23T21:04:23 replace got_pack_get_packfile_size() with simple fstat()
Stefan Sperling 638f9024 2019-05-13T12:40:57 rename got_error_prefix_errno() to got_error_from_errno()
Stefan Sperling 2f17228e 2019-05-11T21:18:39 lock branch reference file during 'got commit' to prevent a race
Stefan Sperling 1dd54920 2019-05-11T18:50:57 open the file index just once when adding multiple files
joshua stein 230a42bd 2019-05-11T13:04:38 got_error_from_errno -> got_error_prefix_errno also add got_error_prefix_errno2 and got_error_prefix_errno3 which should hopefully all be merged into a single function with variadic args (but can't alloc mem)
Stefan Sperling 324d37e7 2019-05-11T09:14:30 make got path APIs available to library consumers
Stefan Sperling a5b57ccf 2019-04-11T13:37:50 omit unused mode argument to open(2)
Stefan Sperling b70703ad 2019-03-18T17:16:10 fix bugs in got_repo_map_path() and add more related tests
Stefan Sperling c442a90d 2019-03-10T15:55:28 read UUID back from work tree meta data
Stefan Sperling 3a11398b 2019-02-21T14:15:33 more specific mmap(2) failure checks
Stefan Sperling 3a6ce05a 2019-02-11T12:32:53 check for errors from close(2)
Stefan Sperling ee645855 2019-02-05T16:33:30 stop checking for a worktree in open_repo()
Stefan Sperling fb79db15 2019-02-01T21:01:58 add read support for packed refs
Stefan Sperling 5d56da81 2019-01-13T17:15:53 happy new copyright year
Stefan Sperling 6e9da951 2019-01-06T10:46:46 make got_repo_get_path_git_dir() return const char *
Stefan Sperling 7839bc15 2019-01-06T10:42:56 make got_repo_get_path() return const char *
Stefan Sperling f4a881ce 2018-11-17T16:04:05 more support for tag objects; new code is not yet reachable
Stefan Sperling 91a3d81f 2018-11-11T13:41:46 introduce got errors with custom messages; add one for ERR_NO_OBJ
Stefan Sperling 15fe583f 2018-11-05T17:57:30 search most recently opened pack index first, not last
Stefan Sperling 41fa1437 2018-11-05T15:30:15 back out mini-commits; no significant performance difference
Stefan Sperling 05e1230b 2018-11-05T12:42:03 rename got_commit_object_mini to got_mini_commit_object
Stefan Sperling e32baab7 2018-11-05T12:39:49 add an object cache for mini commits
Stefan Sperling 23721109 2018-10-22T23:47:25 fix logging /sys in tog while /sys symlink exists on disk
Stefan Sperling 5c2f5761 2018-09-19T15:53:10 fix git repository detection segv bug
Stefan Sperling 90636195 2018-09-11T18:28:37 initialize privsep child pointer in got_repo_cache_pack()
Stefan Sperling c59b3346 2018-09-11T12:29:46 stop sending deltas in imsg; cache deltas in got-read-pack
Stefan Sperling 6bef87be 2018-09-11T11:23:44 move object cache out of repository.c to its own file
Stefan Sperling 876c234b 2018-09-10T12:30:47 start reading pack files with privsep; still WIP
Stefan Sperling 1510f469 2018-09-09T16:33:32 move pack caching code from pack.c to repository.c
Stefan Sperling 3516b818 2018-09-08T17:42:23 init ibuf only once for the lifetime of a privsep child
Stefan Sperling ad242220 2018-09-08T16:40:28 implement fork+exec (and by the way, fix the build...)
Stefan Sperling 04ca23f4 2018-07-16T13:05:23 allow filtering history by paths in 'got log'
Stefan Sperling 85f51bba 2018-07-16T07:49:08 scan upwards for git repositories
Stefan Sperling ccfe88e6 2018-07-13T00:39:26 provide a compile-time toggle for object caching
Stefan Sperling 63581804 2018-07-09T22:23:00 rename zbuf to inflate
Stefan Sperling eb77ee11 2018-07-08T18:06:36 add an object id cache which backs the object cache
Stefan Sperling 60f2eee1 2018-07-08T17:18:45 undo previous; too much mixup in one data structure
Stefan Sperling d54f52f4 2018-07-07T16:50:10 store recently accessed objects at front of cache lists
Stefan Sperling cd717821 2018-06-22T11:35:41 add some disabled refcount debug code
Stefan Sperling 4307e577 2018-06-22T11:04:15 size object caches independently of each other
Stefan Sperling 1943de01 2018-06-22T10:46:10 add a commit cache as well
Stefan Sperling a9bf0c2c 2018-06-22T10:35:09 no need to manually count elements of a set
Stefan Sperling f6be5c30 2018-06-22T10:33:04 add a tree object cache to struct got_repository
Stefan Sperling 54f20211 2018-06-22T10:00:23 introduce struct got_object_cache
Stefan Sperling 50bc349d 2018-06-22T09:54:10 implement repository object cache via object_idset
Stefan Sperling 2d5e8ac7 2018-06-22T01:53:54 remove debug output
Stefan Sperling 7bb0daa1 2018-06-22T01:53:06 add a very simple object cache