lib/worktree.c


Log

Author Commit Date CI Message
Stefan Sperling c932eeeb 2019-05-22T10:25:50 make 'got update' bump the base commit ID of unchanged files This change makes it actually possible to get around commit-time out-of-dateness by running 'got update'. The test added with this commit shows that our out-of-dateness check is currently too simplistic; an update is required between any two commit operations! It would be better to allow commits to proceed until a situation arises where file content must be merged.
Stefan Sperling 8656d6c4 2019-05-20T16:31:38 make struct got_commitable opaque to library users
Stefan Sperling a3df2849 2019-05-20T16:02:16 fix bug reproduced by xfail test 'test_commit_added_subdirs'
Stefan Sperling 024e9686 2019-05-14T13:22:16 add branch support to 'got update'
Stefan Sperling 08573d5b 2019-05-14T12:16:51 add branch support to 'got checkout'
Stefan Sperling b416585c 2019-05-13T18:19:59 store file's base commit ID in got_commitable and use it for OOD check
Stefan Sperling 016a88dd 2019-05-13T18:02:39 report base commit of fileindex entries to status callback
Stefan Sperling c4e12a88 2019-05-13T17:52:58 rename got_commitable's 'base_id' to 'base_blob_id'; more obvious
Stefan Sperling 638f9024 2019-05-13T12:40:57 rename got_error_prefix_errno() to got_error_from_errno()
Stefan Sperling 19332e6d 2019-05-13T11:04:22 avoid undefined behaviour (comparison with string literal)
joshua stein 33ad4cbe 2019-05-12T19:53:17 implement spawning an editor to collect a commit message bails on empty messages, trims leading and trailing newlines this currently disables the unveil in the commit process because it's not compatible with spawning the editor also prevent commits when there are no changes
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 2af4a041 2019-05-11T16:21:20 got_error_set_errno: take a char arg to pass to got_error_prefix_errno $> got rm a got: : No such file or directory becomes $> got rm a got: /path/to/a: No such file or directory
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)
joshua stein 48b8b0eb 2019-05-11T10:40:57 error: introduce got_error_prefix_errno for better errno messages
Stefan Sperling 324d37e7 2019-05-11T09:14:30 make got path APIs available to library consumers
Stefan Sperling 4229330b 2019-05-10T18:44:42 fix allocation size in alloc_added_blob_tree_entry()
Stefan Sperling 0f63689d 2019-05-10T18:20:01 remove unnecessary allocation in match_ct_parent_path()
Stefan Sperling ce0de6b6 2019-05-10T18:16:20 fix memleak in write_tree()
Stefan Sperling 797eca75 2019-05-10T18:16:03 remove dead code
Stefan Sperling 9ba0479c 2019-05-10T15:09:13 fix memleaks in write_tree()
Stefan Sperling 36a38700 2019-05-10T14:53:03 stop caching head ref's value in struct got_worktree; may become stale
Stefan Sperling 1251a9e5 2019-05-10T13:06:00 note potential problem in the existing out-of-dateness check
Stefan Sperling d56d26ce 2019-05-10T11:24:37 move out-of-dateness check to a helper function
Stefan Sperling 7200e87c 2019-05-10T11:19:49 handle blobs deleted in HEAD correctly in commit out-of-date check
Stefan Sperling 819f385b 2019-05-10T11:16:09 ensure that commits use intended base blobs for changes
Stefan Sperling e75eb4da 2019-05-10T10:55:08 rename field in 'struct commitable'
Stefan Sperling 588edf97 2019-05-10T10:52:00 commit against the HEAD commit, not the work tree's base commit
Stefan Sperling 44d03001 2019-05-09T17:07:33 don't traverse into unmodified subtrees during commit
Stefan Sperling 8eecaf36 2019-05-09T16:18:14 don't close a tree in the wrong place; fixes a bus error crash
Stefan Sperling bc70eb79 2019-05-09T15:45:21 fix bug in concurrent commit check and add another commit test
Stefan Sperling 09f5bd90 2019-05-09T15:33:57 try to detect concurrent commits; not perfect yet (see comments)
Stefan Sperling 768aea60 2019-05-09T14:41:50 fix perms in committed tree entries
Stefan Sperling f2c16586 2019-05-09T13:50:52 update HEAD reference after commit
Stefan Sperling ebf99748 2019-05-09T13:22:33 update fileindex after commit
Stefan Sperling baa7dcfa 2019-05-08T20:00:37 don't visit added subtrees reundantly
Stefan Sperling afa376bf 2019-05-08T19:18:45 report commit item status
Stefan Sperling 9d40349a 2019-05-08T18:49:54 add TODO comments
Stefan Sperling de18fc63 2019-05-08T18:37:37 write commit objects
Stefan Sperling 2f51b5b3 2019-05-08T17:02:01 handle added subtrees during commit
Stefan Sperling 036813ee 2019-05-08T12:17:01 more progress on commits: write trees recursively
Stefan Sperling ca2503ea 2019-05-07T22:04:43 writing the lowest level of trees works now
Stefan Sperling cf745477 2019-05-07T21:00:24 whitespace
Stefan Sperling 69960a46 2019-05-07T20:38:42 don't try to get dirname of a basename
Stefan Sperling ef2a1e11 2019-05-07T20:30:05 fix another segfault
Stefan Sperling c42269f6 2019-05-07T20:29:19 fix a segfault
Stefan Sperling 0b5cc0d6 2019-05-07T20:24:47 more work on getting parent trees of commitables written
Stefan Sperling ed175427 2019-05-07T19:53:44 more progress on generating new tree entries
Stefan Sperling 24519714 2019-05-07T12:01:17 collect tree ids for committables
Stefan Sperling a7055788 2019-05-07T11:45:10 pass the right path to got_object_blob_create()
Stefan Sperling cf066bf8 2019-05-07T11:42:54 create blobs
Stefan Sperling 7a10a625 2019-05-07T11:29:45 open base commit tree correctly
Stefan Sperling 675c7539 2019-05-07T11:28:15 do status walk before opening base commit/tree
Stefan Sperling a855e33f 2019-05-07T11:25:52 add a comment marking where to collect the log message
Stefan Sperling c4296144 2019-05-07T10:17:36 WIP commit implementation
Stefan Sperling 0584f854 2019-04-06T08:03:09 implement cancellation support for diff and status operations
Stefan Sperling c4cdcb68 2019-04-03T16:17:53 add support for partial updates, which affect specific paths only
Stefan Sperling a129376b 2019-03-29T00:04:52 add initial implementation of 'got revert'
Stefan Sperling fc6346c4 2019-03-27T12:51:30 don't leave file as unversioned in case of wt edit vs repo rm
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