Files
git/Documentation
Ramkumar Ramachandra 587947750b rebase: implement --[no-]autostash and rebase.autostash
This new feature allows a rebase to be executed on a dirty worktree or
index.  It works by creating a temporary "dangling merge commit" out
of the worktree and index changes (via 'git stash create'), and
automatically applying it after a successful rebase or abort.

rebase stores the SHA-1 hex of the temporary merge commit, along with
the rest of the rebase state, in either
.git/{rebase-merge,rebase-apply}/autostash depending on the kind of
rebase.  Since $state_dir is automatically removed at the end of a
successful rebase or abort, so is the autostash.

The advantage of this approach is that we do not affect the normal
stash's reflogs, making the autostash invisible to the end-user.  This
means that you can use 'git stash' during a rebase as usual.

When the autostash application results in a conflict, we push
$state_dir/autostash onto the normal stash and remove $state_dir
ending the rebase.  The user can inspect the stash, and pop or drop at
any time.

Most significantly, this feature means that a caller like pull (with
pull.rebase set to true) can easily be patched to remove the
require_clean_work_tree restriction.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-05-29 10:34:54 -07:00
..
2012-04-20 15:49:16 -07:00
2013-02-14 10:29:01 -08:00
2012-06-19 11:35:19 -07:00
2013-04-12 12:00:52 -07:00
2013-02-05 16:13:32 -08:00
2011-09-06 11:42:12 -07:00
2013-04-12 12:00:52 -07:00
2013-04-21 18:40:15 -07:00
2013-03-25 14:00:29 -07:00
2011-03-11 10:59:16 -05:00
2013-04-12 12:00:52 -07:00
2013-04-12 12:00:52 -07:00
2013-04-26 12:59:36 -07:00
2013-02-07 14:42:16 -08:00
2013-04-05 14:15:16 -07:00
2013-04-26 15:28:39 -07:00
2013-02-07 14:41:45 -08:00