lib/worktree.c


Log

Author Commit Date CI Message
Stefan Sperling 13d9040b 2019-03-27T12:33:41 test and improve behaviour for wt edit vs repo rm conflict
Stefan Sperling 708d8e67 2019-03-27T12:00:59 fix behaviour when update deletes an edited file
Stefan Sperling 7154f6ce 2019-03-27T09:22:15 make 'got status' detect and indicate merge conflict markers
Stefan Sperling 1430b4e0 2019-03-27T08:18:28 treat 'add vs add' on update as a text conflict for now
Stefan Sperling 71a29355 2019-03-27T07:48:54 fix behaviour when 'got rm' is used twice
Stefan Sperling 5c99ca9f 2019-03-27T07:41:37 fix behaviour when 'got add' is used twice
Stefan Sperling 031a5338 2019-03-26T10:46:18 make got_worktree_schedule_add() report 'added' via status_cb
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 6c7ab921 2019-03-18T16:48:18 introduce got_worktree_resolve_path()
Stefan Sperling ddcd8544 2019-03-11T19:57:53 move worktree-specific error handling out of got_path_mkdir()
Stefan Sperling 0647c563 2019-03-11T19:18:30 remove path portion from worktree base commit ref name
Stefan Sperling 517bab73 2019-03-11T19:06:13 deduplicate code for constructing a worktree's base ref name
Stefan Sperling 0c48fee2 2019-03-11T18:15:28 refuse to create got worktree at a git repo path
Stefan Sperling 0cd1c46a 2019-03-11T18:07:33 create references to base commits of got worktrees
Stefan Sperling f02eaa22 2019-03-11T14:27:35 better error if .got directory is missing files
Stefan Sperling bd165944 2019-03-10T15:56:38 plug memleak in got_open_worktree()
Stefan Sperling c442a90d 2019-03-10T15:55:28 read UUID back from work tree meta data
Stefan Sperling ec22038e 2019-03-10T15:45:57 add a UUID to work tree meta data
Stefan Sperling 70a0c8ec 2019-02-20T10:35:33 preserve permissions on merged files
Stefan Sperling 2a57020b 2019-02-20T09:43:09 clean up temp files if rename(2) fails
Stefan Sperling 65ad4e61 2019-02-20T08:37:01 improve wording of a comment in merge_blob()
Stefan Sperling 80c5c120 2019-02-19T13:38:08 missing fread(3) error check in get_file_status()
Stefan Sperling d10c9b58 2019-02-19T13:23:04 missing stat error check in read_meta_file()
Stefan Sperling 68c76935 2019-02-19T13:20:39 update cached timestamps of files left unmodified after a merge
Stefan Sperling 3cbbd752 2019-02-19T12:55:43 fix get_file_status() for files larger than blob read buffer size
Stefan Sperling af54ae4a 2019-02-19T12:03:13 avoid cross-device rename(2) after 3-way file merge
Stefan Sperling 816dc654 2019-02-16T13:45:15 check for errors from fsync(2)
Stefan Sperling 3a6ce05a 2019-02-11T12:32:53 check for errors from close(2)
Stefan Sperling fb43ecf1 2019-02-11T11:59:09 check for errors from fclose()
Stefan Sperling 927df6b7 2019-02-10T18:42:29 allow restricting 'got diff' and 'got status' to a path in work tree
Stefan Sperling 2c201a36 2019-02-10T16:41:44 make 'got status' ignore symlinks, for now
Stefan Sperling b8f41171 2019-02-10T14:03:49 eliminate redundant stat() calls during status crawl
Stefan Sperling a378724f 2019-02-10T13:20:43 make 'got update' restore missing files
Stefan Sperling 02c07007 2019-02-10T12:46:14 don't update cached timestamps of already modified files
Stefan Sperling ba8a0d4d 2019-02-10T12:30:06 clear executable bit when updating files if necessary
Stefan Sperling 68ed9ba5 2019-02-10T12:02:52 preserve executable bit on files during checkout and update
Stefan Sperling 276262e8 2019-02-08T15:27:19 fix typo in status code name: GOT_STATUS_MODIFIY -> GOT_STATUS_MODIFY
Stefan Sperling 6353ad76 2019-02-08T15:12:00 make 'got update' merge file edits
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