| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Test a rebase (both a merge rebase and an inmemory rebase) with a new
commit that adds files underneath a new subfolder.
|
| |
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
When rebasing with IDs, we do not return to the `branch`,
we remain in a detached HEAD state.
|
|
|
|
|
| |
Instead of `open`ing a rebase and `abort`ing that, test that we can
`abort` a rebase that has just begun with `init`.
|
|\
| |
| | |
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.
|
|/
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
Allow callers of rebase to specify custom merge options. This may
allow custom conflict resolution, or failing fast when conflicts
are detected.
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
`git_rebase_init` and `git_rebase_open` should take a
`git_rebase_options` and use it for future rebase operations on
that `rebase` object.
|
| |
|
| |
|
|
|
|
|
| |
git_rebase_commit should return `GIT_EUNMERGED` when unmerged items
exist in the index, per the documentation. Test that this is correct.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Don't require the branch to rebase, if given `NULL`, simply look up
`HEAD`.
|
|
|
|
|
| |
Users may want to try to pay attention to the `exec` field on all
rebase operations.
|
| |
|
|
|
|
|
| |
Make it consistent between git_note_create() and git_note_remote() by
putting it after the repository.
|
|
|
|
|
| |
Rename git_merge_head to git_annotated_commit, as it becomes used
in more operations than just merge.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Commit the current patch of a rebase process.
|
| |
|
|
|
|
|
|
| |
`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.
|
|
|
|
|
| |
Abort an in-progress rebase and move the working directory and
repository back to the ORIG_HEAD state.
|
|
Introduce `git_rebase` to set up a rebase session that can
then be continued. Immediately, only merge-type rebase is
supported.
|