|
ef03e150
|
2021-08-29T10:14:01
|
|
rebase: deprecate signing_cb
The signing callback should not be used; instead, callers should provide
a commit_create_cb, perform the signing and commit creation themselves.
|
|
d3bdf33b
|
2021-08-29T09:36:01
|
|
rebase: introduce git_commit_create_cb
Introduce a new mechanism for `git_rebase_commit` for callers to
customize the experience. Instead of assuming that we produce the
commit for them, provide a commit creation callback that allows callers
to produce the commit themselves and return the resulting commit id.
|
|
b0692d6b
|
2019-08-09T09:01:56
|
|
Merge pull request #4913 from implausible/feature/signing-rebase-commits
Add sign capability to git_rebase_commit
|
|
a5d4237c
|
2019-07-02T10:14:02
|
|
fixup: code cleanup around rebase commit signing
Use ci_git_fail_with where appropriate.
Use correct initializer for callback.
|
|
e215f475
|
2019-04-21T21:36:36
|
|
rebase: orig_head and onto accessors
The rebase struct stores fields with information about the current
rebase process, which were not accessible via a public interface.
Accessors for getting the `orig_head` and `onto` branch
names and object ids have been added.
|
|
0d06bf48
|
2019-01-24T08:42:25
|
|
fixup: More generic signing_cb for future flexibility
In the case that we want to build merge + commit, cherrypick + commit, or even just build a commit with signing callback, `git_rebase_commit_signature_cb` particular callback should be made more generic. We also renamed `signature_cb` to `signing_cb` to improve clarity on the purpose of the callback (build a difference between a git_signature and the act of signing).
So we've ended up with `git_commit_signing_cb`.
|
|
3a8ef824
|
2019-01-14T17:06:52
|
|
Update formatting of newly added rebase sign test suite
|
|
578cc029
|
2019-01-14T17:03:49
|
|
Single callback for commit signing in rebase w/ git_buf
Reduces the number of callbacks for signing a commit during a rebase operation to just one callback. That callback has 2 out git_buf parameters for signature and signature field. We use git_buf here, because we cannot make any assumptions about the heap allocator a user of the library might be using.
|
|
900f9911
|
2019-01-11T09:17:17
|
|
Add tests for signing rebase commits
|
|
ed8cfbf0
|
2019-01-17T00:32:31
|
|
references: use new names in internal usage
Update internal usage to use the `git_reference` names for constants.
|
|
168fe39b
|
2018-11-28T14:26:57
|
|
object_type: use new enumeration names
Use the new object_type enumeration names within the codebase.
|
|
9994cd3f
|
2018-06-25T11:56:52
|
|
treewide: remove use of C++ style comments
C++ style comment ("//") are not specified by the ISO C90 standard and
thus do not conform to it. While libgit2 aims to conform to C90, we did
not enforce it until now, which is why quite a lot of these
non-conforming comments have snuck into our codebase. Do a tree-wide
conversion of all C++ style comments to the supported C style comments
to allow us enforcing strict C90 compliance in a later commit.
|
|
b242cdbf
|
2017-11-17T00:19:07
|
|
index: commit the changes to the index properly
Now that the index has a "dirty" state, where it has changes that have
not yet been committed or rolled back, our tests need to be adapted to
actually commit or rollback the changes instead of assuming that the
index can be operated on in its indeterminate state.
|
|
ecf4f33a
|
2018-02-08T11:14:48
|
|
Convert usage of `git_buf_free` to new `git_buf_dispose`
|
|
c0558c62
|
2017-07-28T09:01:41
|
|
tests: rebase::submodule: verify initialization method calls
Some return codes for functions which may fail are not being checked in
`test_rebase_submodule__initialize`. This may lead us to not notice
errors when initializing the environment and would possibly result in
either memory corruption or segfaults as soon as any of the
initialization steps fails. Fix this by wrapping these function calls
into `cl_git_pass`.
|
|
35cb7b84
|
2017-07-20T21:00:15
|
|
tests: fix the rebase-submodule test
|
|
2270ca9f
|
2017-03-03T13:27:47
|
|
rebase: ignore untracked files in submodules
An untracked file in a submodule should not prevent a rebase from
starting. Even if the submodule's SHA is changed, and that file would
conflict with a new tracked file, it's still OK to start the rebase
and discover the conflict later.
Signed-off-by: David Turner <dturner@twosigma.com>
|
|
f7dcd58c
|
2016-12-17T00:55:06
|
|
rebase: plug a leak in the tests
|
|
4db1fc7e
|
2016-12-01T23:06:41
|
|
git_rebase_init: correctly handle detached HEAD
git_rebase_finish relies on head_detached being set, but
rebase_init_merge was only setting it when branch->ref_name was unset.
But branch->ref_name would be set to "HEAD" in the case of detached
HEAD being either implicitly (NULL) or explicitly passed to
git_rebase_init.
|
|
5acf18ac
|
2016-06-02T01:58:25
|
|
rebase: test rebasing a new commit with subfolder
Test a rebase (both a merge rebase and an inmemory rebase) with a new
commit that adds files underneath a new subfolder.
|
|
c7b4bbff
|
2016-05-03T15:22:22
|
|
rebase: test rebase (merge) w/ no common ancestor
|
|
b3ffd8f6
|
2016-04-26T11:48:11
|
|
rebase::abort: test we can abort rebase by revspec
Test that we can properly abort a rebase when it is initialized by a
revspec. This ensures that we do not conflate revspecs and refnames.
|
|
1f84caf0
|
2016-04-21T18:16:37
|
|
rebase: correctly finish rebasing detached heads
When rebasing with IDs, we do not return to the `branch`,
we remain in a detached HEAD state.
|
|
320f53cd
|
2016-04-21T17:03:21
|
|
rebase: test abort immediately after init
Instead of `open`ing a rebase and `abort`ing that, test that we can
`abort` a rebase that has just begun with `init`.
|
|
2ba9a0dd
|
2016-03-09T23:45:33
|
|
Merge pull request #3623 from ethomson/rebase_with_commit
rebase: additional setup tests of exotic behavior
|
|
09d99680
|
2016-02-28T20:10:44
|
|
rebase: additional tests for completing a rebase
|
|
2a39818c
|
2016-02-17T15:28:20
|
|
rebase: additional setup tests of exotic behavior
Test some additional exotic rebase setup behavior: that we are
able to set up properly when already in a detached HEAD state,
that the caller specifies all of branch, upstream and onto,
and that the caller specifies branch, upstream and onto by ID.
|
|
f28bae0c
|
2016-02-15T17:16:00
|
|
rebase: persist a single in-memory index
When performing an in-memory rebase, keep a single index for the
duration, so that callers have the expected index lifecycle and
do not hold on to an index that is free'd out from under them.
|
|
a202e0d4
|
2016-02-11T10:11:21
|
|
rebase: allow custom merge_options
Allow callers of rebase to specify custom merge options. This may
allow custom conflict resolution, or failing fast when conflicts
are detected.
|
|
ee667307
|
2016-02-11T10:48:48
|
|
rebase: introduce inmemory rebasing
Introduce the ability to rebase in-memory or in a bare repository.
When `rebase_options.inmemory` is specified, the resultant `git_rebase`
session will not be persisted to disk. Callers may still analyze
the rebase operations, resolve any conflicts against the in-memory
index and create the commits. Neither `HEAD` nor the working
directory will be updated during this process.
|
|
cf2380a6
|
2015-04-30T14:17:05
|
|
Fixed unused warning in tests/rebase/merge.c
|
|
94c988f6
|
2015-04-20T17:19:08
|
|
rebase: include checkout opts within rebase opts
|
|
78382358
|
2015-03-17T17:21:11
|
|
rebase: test checkout options for rebase
|
|
f3a199dd
|
2015-03-17T15:53:04
|
|
rebase: init and open take a rebase_options
`git_rebase_init` and `git_rebase_open` should take a
`git_rebase_options` and use it for future rebase operations on
that `rebase` object.
|
|
5ae38538
|
2015-03-17T11:47:16
|
|
rebase: take `checkout_options` where appropriate
|
|
eaf0d688
|
2015-03-17T17:53:07
|
|
rebase: block rebase_commit with unstaged changes
|
|
49b3ddf2
|
2015-03-17T17:45:31
|
|
rebase: commit should return GIT_EUNMERGED
git_rebase_commit should return `GIT_EUNMERGED` when unmerged items
exist in the index, per the documentation. Test that this is correct.
|
|
30640aa9
|
2015-03-17T10:04:08
|
|
rebase: identify a rebase that has not started
In `git_rebase_operation_current()`, indicate when a rebase has not
started (with `GIT_REBASE_NO_OPERATION`) rather than conflating that
with the first operation being in-progress.
|
|
4e498646
|
2015-01-15T16:50:31
|
|
repository: remove log message override for switching the active branch
We want to use the "checkout: moving from ..." message in order to let
git know when a change of branch has happened. Make the convenience
functions for this goal write this message.
|
|
659cf202
|
2015-01-07T12:23:05
|
|
Remove the signature from ref-modifying functions
The signature for the reflog is not something which changes
dynamically. Almost all uses will be NULL, since we want for the
repository's default identity to be used, making it noise.
In order to allow for changing the identity, we instead provide
git_repository_set_ident() and git_repository_ident() which allow a user
to override the choice of signature.
|
|
49b8293c
|
2015-02-13T11:20:32
|
|
rebase: allow `NULL` branch to indicate `HEAD`
Don't require the branch to rebase, if given `NULL`, simply look up
`HEAD`.
|
|
92e87dd7
|
2015-02-13T10:44:19
|
|
rebase: provide NULL `exec` on non-EXEC operations
Users may want to try to pay attention to the `exec` field on all
rebase operations.
|
|
8e0aa2eb
|
2014-12-07T23:41:30
|
|
Fix broken merge tests due to autocrlf was not false
|
|
21083a71
|
2014-12-06T03:12:04
|
|
notes: move the notes name argument
Make it consistent between git_note_create() and git_note_remote() by
putting it after the repository.
|
|
18b00406
|
2014-10-03T19:02:29
|
|
s/git_merge_head/git_annotated_commit
Rename git_merge_head to git_annotated_commit, as it becomes used
in more operations than just merge.
|
|
796b03bd
|
2014-10-03T20:47:48
|
|
rebase: clean up some warnings and memory leaks
|
|
ed2c06a6
|
2014-09-11T16:47:20
|
|
git_rebase: iterators for operations
|
|
f152f8ac
|
2014-08-26T16:18:46
|
|
rebase: preload all operations
|
|
b6b636a7
|
2014-08-25T13:29:50
|
|
rebase: init/open a git_rebase object
|
|
18b439b9
|
2014-08-23T18:19:34
|
|
git_rebase_next: provide info about the operation
|
|
5ae9d296
|
2014-07-21T12:25:03
|
|
git_rebase_finish: rewrite notes when finishing rebase
|
|
a612a25f
|
2014-07-18T18:22:54
|
|
git_rebase_commit: write HEAD's reflog appropriately
|
|
517644cc
|
2014-07-18T17:19:10
|
|
Introduce git_rebase_finish to complete a rebase
|
|
14864fbf
|
2014-07-18T15:37:42
|
|
git_rebase_next: test that we return GIT_ITEROVER
|
|
93a7004c
|
2014-07-18T14:50:06
|
|
git_rebase_commit: drop already-picked commits
Already cherry-picked commits should not be re-included. If all changes
included in a commit exist in the upstream, then we should error with
GIT_EAPPLIED.
|
|
a35a9890
|
2014-07-17T18:25:03
|
|
Introduce git_rebase_commit
Commit the current patch of a rebase process.
|
|
443d5674
|
2014-07-17T11:59:01
|
|
git_rebase_next: write conflicts nicely during rebase
|
|
950a7091
|
2014-07-15T10:23:10
|
|
Introduce git_rebase_next
`git_rebase_next` will apply the next patch (or cherry-pick)
operation, leaving the results checked out in the index / working
directory so that consumers can resolve any conflicts, as appropriate.
|
|
4fe84d62
|
2014-07-14T15:19:19
|
|
Introduce git_rebase_abort
Abort an in-progress rebase and move the working directory and
repository back to the ORIG_HEAD state.
|
|
867a36f3
|
2014-07-14T14:35:01
|
|
Introduce git_rebase to set up a rebase session
Introduce `git_rebase` to set up a rebase session that can
then be continued. Immediately, only merge-type rebase is
supported.
|