lib/worktree.c


Log

Author Commit Date CI Message
Stefan Sperling b72f483a 2019-02-06T00:04:59 make 'got diff' show local changes in work tree
Stefan Sperling 14e5d4dc 2019-02-05T22:25:42 fix bug with wrong size comparison in get_file_status()
Stefan Sperling d1542a27 2019-02-05T18:24:28 fix endless loop in got_worktree_open()
Stefan Sperling c7f4312f 2019-02-05T17:46:58 make 'got status' work in subdirectories of a work tree
Stefan Sperling 247140b2 2019-02-05T17:15:54 make got_worktree_open() crawl upwards
Stefan Sperling c513d110 2019-02-05T17:15:06 add missing error check in got_worktree_status()
Stefan Sperling d43a8a88 2019-02-05T16:22:04 rename a local variable in got_worktree_status()
Stefan Sperling 0dbc2271 2019-02-05T16:16:13 make 'got status' detect obstructed files
Stefan Sperling bf96b38c 2019-02-05T16:09:58 move all file modification detection code to a single function
Stefan Sperling f8d1f275 2019-02-04T14:46:17 add a worktree status API
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 5d56da81 2019-01-13T17:15:53 happy new copyright year
Stefan Sperling 14bbd1f0 2019-01-13T16:59:16 remove redundant goto statement
Stefan Sperling c65fcef2 2019-01-13T14:07:17 fix leaks in add_dir_on_disk(), and ensure all parents get created
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 c97665ae 2019-01-13T01:43:17 tolerate missing files in remove_ondisk_file()
Stefan Sperling 5f9fef37 2019-01-13T01:42:50 avoid redundant file index additions in install_blob()
Stefan Sperling cf61d818 2019-01-12T22:38:58 allow recovery of a bad file index by removing it and updating
Stefan Sperling 4a1ddfc2 2019-01-12T22:15:58 fix bug where update forgot to create a parent directory
Stefan Sperling 7e7c1e4c 2019-01-12T21:11:48 avoid pointless call to got_error_from_errno()
Stefan Sperling 8da9e5f4 2019-01-12T18:39:19 implement checkout+update as single-pass diff between file index and tree
Stefan Sperling 81a30460 2019-01-09T00:41:58 fix a path matching bug in collect_missing_file()
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 b504a804 2019-01-08T22:18:23 switch file index entries from TAILQ to got_pathset
Stefan Sperling 8f6d9a6a 2019-01-08T21:48:28 mark got_pathset iteration functions as safe
Stefan Sperling 4ba899b3 2019-01-08T21:24:02 remove entry from file index after removing on-disk file, not before
Stefan Sperling 63f4f47b 2019-01-08T21:05:06 whitespace
Stefan Sperling 26c4ac4d 2019-01-08T20:40:28 stop trying to remove parents if a non-empty parent is traversed
Stefan Sperling 90285c3b 2019-01-08T20:13:18 properly remove empty directories left behind during updates
Stefan Sperling e1ed7f77 2019-01-06T13:47:14 must use safe iteration over file index entries
Stefan Sperling 5cc266ba 2019-01-06T13:14:54 make 'got update' remove directories in a checkout with path prefix
Stefan Sperling 1f46d0af 2019-01-06T13:06:21 rename misleadinly named field in struct collect_missing_entry_args
Stefan Sperling 82d71325 2019-01-06T12:31:33 improve wording of a comment in tree_checkout()
Stefan Sperling f5c49f82 2019-01-06T12:12:16 make 'got update' remove empty directories
Stefan Sperling 7839bc15 2019-01-06T10:42:56 make got_repo_get_path() return const char *
Stefan Sperling 512f0d0e 2019-01-03T00:57:49 make 'got update' remove files which were deleted
Stefan Sperling be7061eb 2018-12-30T17:30:42 ensure that 'got update' stays on the current branch
Stefan Sperling 507dc3bb 2018-12-29T17:18:51 add a basic 'got update' command; does not merge files yet
Stefan Sperling e5dc7198 2018-12-29T16:07:41 fix 'same path prefix' check during checkout
Stefan Sperling f609be2e 2018-12-29T15:55:44 fix got_worktree_get_repo_path()
Stefan Sperling 2fbdb5ae 2018-12-29T15:54:00 remove useless strdup from got_worktree_get_repo_path()
Stefan Sperling 49520a32 2018-12-29T15:51:56 verify path prefix when checking out into existing work tree
Stefan Sperling 381be7cc 2018-12-29T15:41:16 don't bother opening trees outside of path prefix
Stefan Sperling eac9755f 2018-12-29T15:39:32 don't bother opening a blob if checkout will skip it
Stefan Sperling a207cf0a 2018-12-29T15:27:13 rename add_file_on_disk() to blob_checkout()
Stefan Sperling 144ad43a 2018-12-29T15:26:21 make checkout skip blobs already recorded in file index
Stefan Sperling eecfbcd1 2018-12-29T15:14:24 introduce macros for status codes
Stefan Sperling d7b62c98 2018-12-27T20:40:39 signal existing files in checkout progress output
Stefan Sperling d70b8e30 2018-12-27T20:35:14 allow checkout on top of an existing tree
Stefan Sperling 2e22a7cd 2018-12-27T19:19:03 remove redundant existence check
Stefan Sperling 51514078 2018-12-25T16:18:05 preparation for idempotent checkout: read exisiting file index
Stefan Sperling a143fb78 2018-12-25T15:59:11 try to sync file index to disk if checkout hits an error
Stefan Sperling 271d2a38 2018-12-25T15:38:24 store parsed head reference in struct got_worktree
Stefan Sperling fc76cabb 2018-12-25T15:24:16 store base commit of each blob in file index
Stefan Sperling eaccb85f 2018-12-25T15:19:52 store a parsed base commit ID in struct got_worktree
Stefan Sperling 0f92850e 2018-12-25T15:02:25 fix naming of some work tree meta data files and macros
Stefan Sperling 93a30277 2018-12-24T20:11:47 make got_worktree_checkout_files() infer base commit from meta data
Stefan Sperling 65596e15 2018-12-24T19:59:50 store base commit in a dedicated meta file
Stefan Sperling 08d425ea 2018-12-24T19:49:50 undo previous
Stefan Sperling a1a7858a 2018-12-24T18:15:42 store commit hash along with the HEAD ref in .got/head
Stefan Sperling 61d6eaa3 2018-12-24T17:30:26 fix broken fwrite() check in add_file_on_disk()
Stefan Sperling b87c6f83 2018-12-24T17:09:24 catch fatal i/o errors in add_file_on_disk()
Stefan Sperling 7426bbfd 2018-12-24T16:53:03 rename fileindex functions from open/close to alloc/free
Stefan Sperling b8bdcc21 2018-12-24T15:49:43 rename local variable in got_worktree_checkout_files()
Stefan Sperling 15a94983 2018-12-23T14:48:47 remove struct got_object from public library API
Stefan Sperling 99437157 2018-11-11T12:52:59 abort checkout operations cleanly when Ctrl-C is hit
Stefan Sperling edfa7d7f 2018-09-11T11:31:34 plug a tree object leak in worktree.c
Stefan Sperling 63581804 2018-07-09T22:23:00 rename zbuf to inflate
Stefan Sperling 883f0469 2018-06-23T17:57:39 make struct got_tree_object opaque
Stefan Sperling 511a516b 2018-05-19T16:57:12 move got_opentmp* functions to public API; used from tog
Stefan Sperling 5261c201 2018-04-01T23:37:09 rename 'refs' to 'reference'
Stefan Sperling f7b38925 2018-04-01T20:40:35 make paths shown during checkout match what is created on disk
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 0bb8a95e 2018-03-12T22:00:08 add support for checking out a subtree
Stefan Sperling 92a684f4 2018-03-12T21:34:38 show progress during checkout
Stefan Sperling 23b19d00 2018-03-12T14:08:37 fix worktree test build: remove more unused variables
Stefan Sperling 51664889 2018-03-12T13:41:13 in got_worktree_checkout_files, init file index path before using
Stefan Sperling e77c4c9f 2018-03-12T13:37:17 remove base-commit meta file; this will move into the fileindex
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 dc2404d9 2018-03-11T14:28:36 remove got_worktree_change_head() for now
Stefan Sperling 35be1456 2018-03-11T14:27:53 implement got_worktree_get_head_ref_name()
Stefan Sperling 32cb896c 2018-03-11T14:10:56 rename library-private headers from *_priv.h to *_lib.h
Stefan Sperling c88eb298 2018-03-11T13:15:49 rename worktree_root to root_path in struct worktree
Stefan Sperling cde76477 2018-03-11T13:14:08 rename some fields in struct worktree
Stefan Sperling e8f36958 2018-03-11T13:11:43 read / free the head ref when work tree is opened / closed
Stefan Sperling d6c38e0d 2018-03-11T13:08:03 free base commit when worktree is closed
Stefan Sperling f5baf295 2018-03-11T13:06:45 read base commit hash when worktree is opened
Stefan Sperling 65e3b818 2018-03-11T12:52:02 set base commit to invalid commit id when work tree is created
Stefan Sperling 0605801d 2018-03-11T12:44:13 check read() return value properly in read_meta_file()
Stefan Sperling 7ac97322 2018-03-11T12:41:21 rename variable gotpath to path_got
Stefan Sperling fdf001a7 2018-03-11T12:28:15 add a proper definition for the worktree head
Stefan Sperling e350ead3 2018-03-11T12:23:28 create an emtpy base-commit file
Stefan Sperling 056e7441 2018-03-11T11:39:48 use a dedicated file for the work tree lock
Stefan Sperling ef99fdb1 2018-03-11T02:31:27 use flock(2) because open(2) O_NONBLOCK also enables non-blocking I/O
Stefan Sperling 73a5ef67 2018-03-11T02:15:34 lock meta data files in worktree correctly