lib/worktree.c


Log

Author Commit Date CI Message
Stefan Sperling 88d0e355 2019-08-03T14:30:32 report staged status via status callback
Stefan Sperling 0cb83759 2019-08-03T13:31:03 implement got_worktree_stage_paths()
Stefan Sperling 42005733 2019-08-03T14:08:24 make got_worktree_stage() expect absolute on-disk paths
Stefan Sperling 1e71573e 2019-08-03T13:48:47 make stage worktree API look more like the one for 'add'
Stefan Sperling fdfa9bf2 2019-08-03T13:41:43 provide a way for API users to override staged file content
Stefan Sperling 7fa0d182 2019-08-03T16:36:22 don't forget to initialize st_mode in revert_file()
Stefan Sperling de426ea6 2019-08-03T15:54:19 schedule_for_deletion(): return success if file is already deleted
Stefan Sperling d6c87207 2019-08-02T16:24:13 require callers to pass path length to got_fileindex_entry_get()
Stefan Sperling f2b16ada 2019-08-02T15:50:16 cache path length in struct got_pathlist_entry
Stefan Sperling d572f586 2019-08-02T15:42:42 eliminate strlen() calls during fileindex rb tree searches
Stefan Sperling 5c1e53bc 2019-07-28T11:34:22 add support for multiple path arguments to 'got commit'
Stefan Sperling 9bead371 2019-07-28T10:28:25 relax commit out-of-dateness check: consider file content only
Stefan Sperling e4b9a50c 2019-07-27T23:47:46 read_meta_file() can fstat() instead of lstat() since file is already open
Stefan Sperling a2e6d162 2019-07-27T23:11:03 make GOT_ERR_WORKTREE_META errors show more information
Stefan Sperling c3022ba5 2019-07-27T22:15:05 rename "histedit list" to "histedit script" (on-disk filename changed)
Stefan Sperling a9fa2909 2019-07-27T21:51:52 fix 'got revert' on files in newly added subdirectories
Stefan Sperling 8dc303cc 2019-07-27T17:40:39 eliminate needless 'goto' in worktree_status()
Stefan Sperling 31b4484f 2019-07-27T19:01:01 speed up rebase and histedit path prefix check: skip blob content diffs
Stefan Sperling c02b99b6 2019-07-27T17:31:54 report_file_status() wants an on-disk path
Stefan Sperling abb4604f 2019-07-27T17:28:49 stop supporting ie == NULL case in get_file_status()
Stefan Sperling 26a7fe28 2019-07-27T16:42:04 add conversion functions for fileindex/stat permission bits
Stefan Sperling 339c298e 2019-07-27T16:25:48 undo previous 3 commits; stat is faster than open
Stefan Sperling 3f148bc6 2019-07-27T15:59:48 ensure that st_mode keeps being initialized by get_file_status()
Stefan Sperling c18886c6 2019-07-27T15:51:31 avoid fstat() call if no file index entry exists
Stefan Sperling efdd40df 2019-07-27T15:30:49 do a single open(2) call in get_file_status()
Stefan Sperling 6a263307 2019-07-27T15:10:06 remove an unused field from struct check_rebase_ok_arg
Stefan Sperling f2ea84fa 2019-07-27T14:26:10 make 'got update' accept mulitple path arguments
Stefan Sperling 54817d72 2019-07-27T12:40:05 fix a status bug exposed by test_update_conflict_wt_rm_vs_repo_rm
Stefan Sperling 72ea6654 2019-07-27T11:21:56 add support for multiple path arguments to 'got status'
Stefan Sperling 3f17dee4 2019-07-27T11:08:47 prevent array access with negative index in got_worktree_resolve_path()
Stefan Sperling c577a9ce 2019-07-25T21:06:41 fix 'got status' recursion problems
Stefan Sperling 90e8619e 2019-07-25T19:42:29 make 'got commit' work with a directory path
Stefan Sperling 3e3a69f1 2019-07-25T14:25:02 open fileindex just once to make rebase and histedit faster
Stefan Sperling e0233cea 2019-07-25T13:04:23 fix 'got commit' from work tree with a path prefix
Stefan Sperling 8f8646e5 2019-07-25T12:27:34 list of merged paths for rebase and histedit must not be empty
Stefan Sperling 0ebf8283 2019-07-23T17:39:43 initial 'got histedit' implementation
Stefan Sperling d0710d08 2019-07-22T10:52:48 make got_worktree_resolve_path() handle non-existent paths
Stefan Sperling e2b1e152 2019-07-13T11:00:34 make 'got update' sync cached timestamps of unmodified files
Stefan Sperling fd7a136d 2019-07-13T10:31:11 remove duplicate check in if-statement
Stefan Sperling 01757395 2019-07-12T19:40:57 speed up commits during rebase by caching a list of merged paths
Stefan Sperling 1ee397ad 2019-07-12T19:06:56 allow error return from got_worktree_checkout_cb()
Stefan Sperling eb3df2c4 2019-07-12T16:42:30 prevent free(3) of uninitialized variable in rebase error path
Stefan Sperling b50cabdf 2019-07-12T16:36:21 skip out-of-dateness check during rebase for faster commits
Stefan Sperling 877a927c 2019-07-12T16:26:05 fix typo in comments
Stefan Sperling 93ec1b5f 2019-07-12T16:10:16 remove unused argument from update_fileindex_after_commit()
Stefan Sperling 69185643 2019-07-12T16:09:08 remove unused variable in commit_worktree()
Stefan Sperling a0e95631 2019-07-12T16:07:35 use the new commit_worktree() helper function during rebase
Stefan Sperling 1675efa3 2019-07-12T16:07:03 fix double-free introduced during refactoring
Stefan Sperling 39cd0ff6 2019-07-12T15:31:21 move core commit code from got_worktree_commit() to a helper function
Stefan Sperling 347d1d3e 2019-07-12T15:04:27 eliminate redundant fileindex open for status during commit and rebase -a
Stefan Sperling 55bd499d 2019-07-12T14:53:13 don't open file index earlier than needed when aborting rebase
Stefan Sperling ca355955 2019-07-12T14:51:33 oops, sync fileindex again after aborting rebase
Stefan Sperling 267fb255 2019-07-12T14:45:56 revert local changes before checking out files when aborting a rebase
Stefan Sperling a3a2faf2 2019-07-12T14:44:11 use checkout_files() helper in got_worktree_rebase_abort()
Stefan Sperling 711d9cd9 2019-07-12T14:39:07 eliminate a pointless goto in worktree.c
Stefan Sperling 07ed472d 2019-07-12T14:37:39 move core functionality of got_worktree_checkout_files() to a helper
Stefan Sperling 6ced4176 2019-07-12T14:20:33 move a chunk of file checkout code into a separate helper function
Stefan Sperling e642f803 2019-07-12T13:01:51 don't leak redundantly allocated relpath in got_worktree_checkout_files()
Stefan Sperling fb399478 2019-07-12T12:46:29 plug fileindex_path memory leaks
Stefan Sperling 5ade8233 2019-07-12T12:33:38 eliminate potential got_fileindex_free(NULL) calls
Stefan Sperling 3605a814 2019-07-12T12:31:34 eliminate inline implementations of open_fileindex() in worktree.c
Stefan Sperling 8ec7bf54 2019-07-12T12:09:39 refactor file index syncing out of update_fileindex_after_commit()
Stefan Sperling 69844fba 2019-07-11T15:18:52 ensure all rebase-related refs get deleted when rebase is done
Stefan Sperling edd02c5e 2019-07-11T14:22:42 bump fileindex base commit IDs after rebasing a commit
Stefan Sperling ff0d2220 2019-07-11T13:59:20 handle no-op changes during 'got rebase -c'
Stefan Sperling 818c7501 2019-07-10T18:23:39 initial 'got rebase' implementation
Stefan Sperling 2b496619 2019-07-10T22:41:08 fix bug exposed by test_commit_added_and_modified_in_same_dir
Stefan Sperling 950a4a90 2019-07-10T15:22:52 use got_fileindex_free() to free a fileindex structure
Stefan Sperling 6c4c42e0 2019-06-24T22:28:11 implement search for 'tog blame'
Stefan Sperling 2c7829a4 2019-06-17T14:15:05 implement 'got init'
Stefan Sperling 102ff934 2019-06-11T11:59:18 don't report 'base bumped' status if base is up-to-date
Stefan Sperling a484d721 2019-06-10T12:10:37 don't report base-bump-only updates as 'already up to date'
Stefan Sperling 1a36436d 2019-06-10T11:58:32 relax out-of-dateness check for 'got commit'
Stefan Sperling 46b6ee73 2019-06-04T20:59:48 rename some variables
Stefan Sperling af12c6b9 2019-06-04T16:49:20 ensure that file index is synced to disk in case of errors
Stefan Sperling e20a8b6f 2019-06-04T16:35:01 allow multiple file path arguments for 'got revert'
Stefan Sperling 07f5b47a 2019-06-02T21:30:22 don't leak 'relpath' memory in got_worktree_schedule_add()
Stefan Sperling 17ed4618 2019-06-02T21:24:17 allow removing multiple paths at once for 'got rm'
Stefan Sperling 03415a1a 2019-06-02T20:31:34 allow 'got cherrypick' with a root commit (adds all files in commit)
Stefan Sperling a8db5ed8 2019-06-02T18:39:00 remove unused fields from struct merge_file_cb_arg
Stefan Sperling 2b92fad7 2019-06-02T17:52:19 test and fix expected file status after 'got cherrypick'
Stefan Sperling 9c6338c4 2019-06-02T17:10:29 introduce sync_fileindex() helper in worktree.c
Stefan Sperling 234035bc 2019-06-01T13:35:47 add 'got cherrypick' command
Stefan Sperling f6d88e1a 2019-05-29T14:45:50 fix lack of NUL termination of a path; bug exposed by new realpath(3)
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)