lib/fileindex.c


Log

Author Commit Date CI Message
Stefan Sperling 6ced7ba8 2019-09-22T13:28:06 avoid a NULL deref in diff_fileindex_tree(); found by jj@ with scan-build
Stefan Sperling 40b289d7 2019-09-07T12:05:27 make 'got status' ignore inaccessible directories (reported by semarie)
Stefan Sperling 63c5ca5d 2019-08-24T20:56:15 detect and ignore Git submodules
Stefan Sperling b15816dd 2019-08-11T20:01:21 in got_fileindex_entry_update() don't hide errors other than ENOENT
Stefan Sperling ef5e02fd 2019-08-11T18:45:18 don't clobber errno value of opendir(3); found by Hiltjo Posthuma
Stefan Sperling 8957ae76 2019-08-08T16:38:43 ensure that file index entry perms map to regular files
Stefan Sperling 3cd04235 2019-08-03T14:30:02 fix definition of GOT_FILEIDX_F_STAGE_SHIFT
Stefan Sperling 0cb83759 2019-08-03T13:31:03 implement got_worktree_stage_paths()
Stefan Sperling df335242 2019-08-03T12:56:22 add staged blob SHA1 to on-disk file index; bump file index version
Stefan Sperling 83718700 2019-08-03T12:28:51 define file index stage flags
Stefan Sperling 3f762da0 2019-08-03T12:06:47 rename file index entry variables called 'entry' to 'ie'
Stefan Sperling 4d555405 2019-08-03T11:59:34 remove ie->path_len; use path length stored in file index entry flags
Stefan Sperling 9714e35f 2019-08-03T11:36:03 remove unused fileindex flags
Stefan Sperling d6c87207 2019-08-02T16:24:13 require callers to pass path length to got_fileindex_entry_get()
Stefan Sperling 6f8967eb 2019-08-02T16:18:13 always initialize file index entry's path_len field
Stefan Sperling d572f586 2019-08-02T15:42:42 eliminate strlen() calls during fileindex rb tree searches
Stefan Sperling 6bf2c316 2019-08-02T15:12:36 avoid unnecessary memcpy() in read_fileindex_path()
Stefan Sperling fe1d3e7a 2019-08-02T15:01:57 don't potentially leak entry->path in read_fileindex_entry()
Stefan Sperling 26a7fe28 2019-07-27T16:42:04 add conversion functions for fileindex/stat permission bits
Stefan Sperling 30a076bc 2019-07-27T14:57:06 keep fileindex->tree diff code similar to fileindex->DIR diff code
Stefan Sperling 39beb6da 2019-07-27T14:49:09 don't pass DIR pointers around needlessly in fileindex.c
Stefan Sperling c577a9ce 2019-07-25T21:06:41 fix 'got status' recursion problems
Stefan Sperling 638f9024 2019-05-13T12:40:57 rename got_error_prefix_errno() to got_error_from_errno()
Stefan Sperling 03df25b3 2019-05-11T19:13:10 disallow directories with 'got add'; add a TODO item for them
joshua stein 656b1f76 2019-05-11T14:26:12 while (1) -> for (;;)
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 573463cc 2019-04-06T05:31:33 init output parameter in walk_dir()
Stefan Sperling 14ae1db5 2019-04-06T05:21:11 plug memory leaks in diff_fileindex_dir()
Stefan Sperling c4cdcb68 2019-04-03T16:17:53 add support for partial updates, which affect specific paths only
Stefan Sperling 13d9040b 2019-03-27T12:33:41 test and improve behaviour for wt edit vs repo rm conflict
Stefan Sperling 2ec1f75b 2019-03-26T10:35:33 add a basic implementation of 'got rm'
Stefan Sperling d00136be 2019-03-26T09:03:53 implement a basic 'got add' command
Stefan Sperling ddce0520 2019-03-26T07:02:59 allow file index entries without blobs and/or commits
Stefan Sperling eb983b4b 2019-03-26T06:49:00 make file index flags private to fileindex.c
Stefan Sperling e288864f 2019-03-26T06:44:27 renmae GOT_FILEIDX_F_NOT_ON_DISK to GOT_FILEIDX_F_NOT_FLUSHED
Stefan Sperling c2ac9456 2019-03-15T16:39:34 add missing 'static' for local functions
Stefan Sperling a0bf6e76 2019-03-15T16:35:47 rename 'intent-to-add' file index flag to 'not-on-disk'
Stefan Sperling c442a90d 2019-03-10T15:55:28 read UUID back from work tree meta data
Stefan Sperling 927df6b7 2019-02-10T18:42:29 allow restricting 'got diff' and 'got status' to a path in work tree
Stefan Sperling 13ff9e90 2019-02-10T16:53:56 use break instead of goto to exit loop; no functional change
Stefan Sperling 18831e78 2019-02-10T16:32:21 fix another path ordering bug during status/update crawl
Stefan Sperling 02c07007 2019-02-10T12:46:14 don't update cached timestamps of already modified files
Stefan Sperling fdb730fe 2019-02-06T00:53:28 remove an '#if 0' which was not intended for commit
Stefan Sperling c7f4312f 2019-02-05T17:46:58 make 'got status' work in subdirectories of a work tree
Stefan Sperling 95e06996 2019-02-05T15:53:09 fix memleak in previous commit
Stefan Sperling ed83bff7 2019-02-05T15:50:03 we must use dynamic allocation for dirents in diff_fileindex_dir()
Stefan Sperling e7a2f030 2019-02-05T15:30:23 fix code before declaration
Stefan Sperling 763e1377 2019-02-05T15:25:17 fix an uninitialized variable in diff_fileindex_dir()
Stefan Sperling f5d3d7af 2019-02-05T15:19:24 use path lists to sort dirent, tree object, and file index entries
Stefan Sperling fc727cc5 2019-02-05T11:16:33 insert at tail of list in insert_dirent()
Stefan Sperling 554b91b1 2019-02-04T16:55:18 oops, fix endless loop in diff_fileindex_dir(); code was missing somehow
Stefan Sperling 500cd40f 2019-02-04T14:19:29 make fileindex dir diff traverse dirents in git-tree order
Stefan Sperling b25ae4fa 2019-02-04T12:18:23 ignore top-level .got dir during fileindex dir diff
Stefan Sperling b1ec3986 2019-02-04T11:51:19 skip "." and ".." in diff_fileindex_dir()
Stefan Sperling d1f6d47b 2019-02-04T11:17:36 add support for diffing fileindex against an on-disk directory tree
Stefan Sperling f44ffd20 2019-02-04T10:59:59 rename tree-specific fileindex diff callbacks
Stefan Sperling 62d20534 2019-01-29T00:09:32 remove redundant condition check in cmp_entries()
Stefan Sperling bad322f2 2019-01-29T00:02:42 make cmp_entries() operate on paths instead of structs
Stefan Sperling 9d2a8e53 2019-01-28T23:55:41 move forward declaration of diff_fileindex_tree() further down
Stefan Sperling 70e2377c 2019-01-28T23:54:46 move definition of cmp_entries() closer to point of use
Stefan Sperling 63de4136 2019-01-28T23:51:52 turns out in_same_subdir() check is mostly redundant
Stefan Sperling c18d206e 2019-01-28T23:17:39 simplify in_same_subdir()
Stefan Sperling 85987309 2019-01-28T23:15:22 eliminate code duplication in cmp_entries() and in_same_subdir()
Stefan Sperling 99fda3ad 2019-01-28T23:10:32 eliminate redundant strlen() call inside in_same_subdir()
Stefan Sperling 5d79cba5 2019-01-28T23:09:27 eliminate redundant strlen() call in cmp_entries()
Stefan Sperling 6e8d14a3 2019-01-28T23:05:12 eliminate code duplication in cmp_entries()
Stefan Sperling fd92308e 2019-01-28T22:59:46 invert same subdir check in cmp_entries(); no functional change
Stefan Sperling f06111e5 2019-01-28T22:57:56 remove unused parameter of in_same_subdir()
Stefan Sperling 5d56da81 2019-01-13T17:15:53 happy new copyright year
Stefan Sperling 21908da4 2019-01-13T13:59:20 fix bug where update got confused by sub-sub directories
Stefan Sperling bd4792ec 2019-01-13T12:56:35 fix more bugs in the update walk and add more tests
Stefan Sperling a7f9d64d 2019-01-13T01:52:51 change GOT_INDEX_ENTRY prefix to GOT_FILEIDX
Stefan Sperling b6d05318 2019-01-13T01:05:23 don't bother with memcpy for hdr in got_fileindex_read()
Stefan Sperling 27d0e5bd 2019-01-12T23:05:44 flush the file index after writing it
Stefan Sperling a5744d71 2019-01-12T23:00:44 don't bother with memcpy of header when writing the file index
Stefan Sperling 50952927 2019-01-12T21:00:42 fix various issues in new update implementation
Stefan Sperling 27793341 2019-01-12T18:58:04 introduce special error code for a corrupt file index
Stefan Sperling 8da9e5f4 2019-01-12T18:39:19 implement checkout+update as single-pass diff between file index and tree
Stefan Sperling 7a9df742 2019-01-08T23:52:50 replace use of got_pathset in worktree code with RB tree
Stefan Sperling 133d2798 2019-01-08T23:00:56 use RB tree directly instead of a pathset in file index code
Stefan Sperling 6b798c3c 2019-01-08T22:22:53 don't forgot to free file index entries in got_fileindex_free()
Stefan Sperling b504a804 2019-01-08T22:18:23 switch file index entries from TAILQ to got_pathset
Stefan Sperling e1ed7f77 2019-01-06T13:47:14 must use safe iteration over file index entries
Stefan Sperling 512f0d0e 2019-01-03T00:57:49 make 'got update' remove files which were deleted
Stefan Sperling 3c5b70f2 2018-12-27T20:23:37 always NUL-terminate paths in write_fileindex_path()
Stefan Sperling 60619907 2018-12-27T19:37:53 fix check for NUL byte in read_fileindex_path()
Stefan Sperling 51514078 2018-12-25T16:18:05 preparation for idempotent checkout: read exisiting file index
Stefan Sperling fc76cabb 2018-12-25T15:24:16 store base commit of each blob in file index
Stefan Sperling 3fe2daf1 2018-12-24T17:03:21 remove pointless memcopies from fileindex code
Stefan Sperling 7426bbfd 2018-12-24T16:53:03 rename fileindex functions from open/close to alloc/free
Stefan Sperling 9eb6a6b2 2018-12-24T16:48:45 fix byte-swaps in fileindex read code
Stefan Sperling 52a74475 2018-12-24T16:46:13 implement got_fileindex_read() - not yet tested
Stefan Sperling 0a585a0d 2018-03-17T18:13:19 remove GOT_ERR_NO_MEM, we can just use errno in those cases
Stefan Sperling 718b3ab0 2018-03-17T17:50:48 rename the library-internal headers again to a common prefix
Stefan Sperling 23b19d00 2018-03-12T14:08:37 fix worktree test build: remove more unused variables
Stefan Sperling c34b20a2 2018-03-12T13:06:03 write file index after checking out files
Stefan Sperling 9d31a1d8 2018-03-11T20:39:31 initial implementation of worktree checkout
Stefan Sperling 32cb896c 2018-03-11T14:10:56 rename library-private headers from *_priv.h to *_lib.h
Stefan Sperling c48c4a9c 2018-03-11T13:59:29 implement fileindex entry open/close