<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/git-rebase--interactive.sh, branch gitk-resize-error</title>
<subtitle>Fork of git SCM with my patches.</subtitle>
<id>http://git.kilabit.info/git/atom?h=gitk-resize-error</id>
<link rel='self' href='http://git.kilabit.info/git/atom?h=gitk-resize-error'/>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/'/>
<updated>2018-10-09T01:44:10Z</updated>
<entry>
<title>rebase -i: remove git-rebase--interactive.sh</title>
<updated>2018-10-09T01:44:10Z</updated>
<author>
<name>Alban Gruin</name>
<email>alban.gruin@gmail.com</email>
</author>
<published>2018-09-27T21:56:09Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=cf808208ec09727d993d670619c517bdcb00ca2b'/>
<id>urn:sha1:cf808208ec09727d993d670619c517bdcb00ca2b</id>
<content type='text'>
This removes git-rebase--interactive.sh, as its functionnality has been
replaced by git-rebase--interactive2.

git-rebase--interactive2.c is then renamed to git-rebase--interactive.c.

Signed-off-by: Alban Gruin &lt;alban.gruin@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>rebase -i: implement the main part of interactive rebase as a builtin</title>
<updated>2018-10-09T01:44:10Z</updated>
<author>
<name>Alban Gruin</name>
<email>alban.gruin@gmail.com</email>
</author>
<published>2018-09-27T21:56:07Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=53bbcfbde7c29611f16722c3fbcdb2b78718f633'/>
<id>urn:sha1:53bbcfbde7c29611f16722c3fbcdb2b78718f633</id>
<content type='text'>
This rewrites the part of interactive rebase which initializes the
basic state, make the script and complete the action, as a buitin, named
git-rebase--interactive2 for now.  Others modes (`--continue`,
`--edit-todo`, etc.) will be rewritten in the next commit.

git-rebase--interactive.sh is modified to call git-rebase--interactive2
instead of git-rebase--helper.

Signed-off-by: Alban Gruin &lt;alban.gruin@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>rebase -i: rewrite init_basic_state() in C</title>
<updated>2018-08-29T20:38:18Z</updated>
<author>
<name>Alban Gruin</name>
<email>alban.gruin@gmail.com</email>
</author>
<published>2018-08-28T12:10:41Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=d59cd14de8e05111f45ad55a507493225cd849bc'/>
<id>urn:sha1:d59cd14de8e05111f45ad55a507493225cd849bc</id>
<content type='text'>
This rewrites init_basic_state() from shell to C.  The call to
write_basic_state() in cmd_rebase__helper() is replaced by a call to the
new function.

The shell version is then stripped from git-rebase--interactive.sh.

Signed-off-by: Alban Gruin &lt;alban.gruin@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>rebase -i: rewrite write_basic_state() in C</title>
<updated>2018-08-29T20:38:18Z</updated>
<author>
<name>Alban Gruin</name>
<email>alban.gruin@gmail.com</email>
</author>
<published>2018-08-28T12:10:40Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=65850686cf072d6de88880247adb7113db8a52f2'/>
<id>urn:sha1:65850686cf072d6de88880247adb7113db8a52f2</id>
<content type='text'>
This rewrites write_basic_state() from git-rebase.sh in C.  This is the
first step in the conversion of init_basic_state(), hence the mode in
rebase--helper.c is called INIT_BASIC_STATE.  init_basic_state() will be
converted in the next commit.

The part of read_strategy_opts() that parses the stategy options is
moved to a new function to allow its use in rebase--helper.c.

Finally, the call to write_basic_state() is removed from
git-rebase--interactive.sh, replaced by a call to `--init-basic-state`.

Signed-off-by: Alban Gruin &lt;alban.gruin@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>rebase -i: rewrite the rest of init_revisions_and_shortrevisions() in C</title>
<updated>2018-08-29T20:38:18Z</updated>
<author>
<name>Alban Gruin</name>
<email>alban.gruin@gmail.com</email>
</author>
<published>2018-08-28T12:10:39Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=f22e4e1a3c2faaac59099aaca15641c18f478f77'/>
<id>urn:sha1:f22e4e1a3c2faaac59099aaca15641c18f478f77</id>
<content type='text'>
This rewrites the part of init_revisions_and_shortrevisions() needed by
`--complete-action` (which initialize $shortrevisions) from shell to C.

When `upstream` is empty, it means that the user launched a `rebase
--root`, and `onto` contains the ID of an empty commit.  As a range
between an empty commit and `head` is not really meaningful, `onto` is
not used to initialize `shortrevisions` in this case.

The corresponding arguments passed to `--complete-action` are then
dropped, and init_revisions_and_shortrevisions() is stripped from
git-rebase--interactive.sh

Signed-off-by: Alban Gruin &lt;alban.gruin@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>rebase -i: implement the logic to initialize $revisions in C</title>
<updated>2018-08-29T20:38:18Z</updated>
<author>
<name>Alban Gruin</name>
<email>alban.gruin@gmail.com</email>
</author>
<published>2018-08-28T12:10:38Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=6ab54d17be3f51153444d8efebb0ae363eb9b7c9'/>
<id>urn:sha1:6ab54d17be3f51153444d8efebb0ae363eb9b7c9</id>
<content type='text'>
This rewrites the part of init_revisions_and_shortrevisions() needed by
`--make-script` from shell to C.  The new version is called
get_revision_ranges(), and is a static function inside of
rebase--helper.c.  As this does not initialize $shortrevision, the
original shell version is not yet stripped.

Unlike init_revisions_and_shortrevisions(), get_revision_ranges()
doesn’t write $squash_onto to the state directory, it’s done by the
handler of `--make-script` instead.

Finally, this drops the $revision argument passed to `--make-script` in
git-rebase--interactive.sh, and rebase--helper is changed accordingly.

Signed-off-by: Alban Gruin &lt;alban.gruin@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>rebase -i: remove unused modes and functions</title>
<updated>2018-08-29T20:38:18Z</updated>
<author>
<name>Alban Gruin</name>
<email>alban.gruin@gmail.com</email>
</author>
<published>2018-08-28T12:10:37Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=91f0d95dcb4dd9c388881b64a7d79a3809927126'/>
<id>urn:sha1:91f0d95dcb4dd9c388881b64a7d79a3809927126</id>
<content type='text'>
This removes the modes `--skip-unnecessary-picks`, `--append-todo-help`,
and `--checkout-onto` from rebase--helper.c, the functions of
git-rebase--interactive.sh that were rendered useless by the rewrite of
complete_action(), and append_todo_help_to_file() from
rebase-interactive.c.

skip_unnecessary_picks() and checkout_onto() becomes static, as they are
only used inside of the sequencer.

Signed-off-by: Alban Gruin &lt;alban.gruin@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>rebase -i: rewrite complete_action() in C</title>
<updated>2018-08-29T20:38:18Z</updated>
<author>
<name>Alban Gruin</name>
<email>alban.gruin@gmail.com</email>
</author>
<published>2018-08-28T12:10:36Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=b97e187364990fb8410355ff8b4365d0e37bbbbe'/>
<id>urn:sha1:b97e187364990fb8410355ff8b4365d0e37bbbbe</id>
<content type='text'>
This rewrites complete_action() from shell to C.

A new mode is added to rebase--helper (`--complete-action`), as well as
a new flag (`--autosquash`).

Finally, complete_action() is stripped from git-rebase--interactive.sh.

The original complete_action() would return the code 2 when the todo
list contained no actions.  This was a special case for rebase -i and
-p; git-rebase.sh would then apply the autostash, delete the state
directory, and die with the message "Nothing to do".  This cleanup is
rewritten in C instead of returning 2.  As rebase -i no longer returns
2, the comment describing this behaviour in git-rebase.sh is updated to
reflect this change.

The message "Nothing to do" is now printed with error(), and so becomes
"error: nothing to do".  Some tests in t3404 check this value, so they
are updated to fit this change.

The first check might seem useless as we write "noop" to the todo list
if it is empty.  Actually, the todo list might contain commented
commands (ie. empty commits).  In this case, complete_action() won’t
write "noop", and will abort without starting the editor.

Signed-off-by: Alban Gruin &lt;alban.gruin@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>rebase -i: rewrite checkout_onto() in C</title>
<updated>2018-08-10T18:56:22Z</updated>
<author>
<name>Alban Gruin</name>
<email>alban.gruin@gmail.com</email>
</author>
<published>2018-08-10T16:51:34Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=4df66c40b08931eb224964f12decbb0f660cf932'/>
<id>urn:sha1:4df66c40b08931eb224964f12decbb0f660cf932</id>
<content type='text'>
This rewrites checkout_onto() from shell to C.

A new command (“checkout-onto”) is added to rebase--helper.c. The shell
version is then stripped.

Signed-off-by: Alban Gruin &lt;alban.gruin@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>rebase -i: rewrite setup_reflog_action() in C</title>
<updated>2018-08-10T18:56:22Z</updated>
<author>
<name>Alban Gruin</name>
<email>alban.gruin@gmail.com</email>
</author>
<published>2018-08-10T16:51:33Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=2c58483a5983d1313f674e2ba32b3bac24df6911'/>
<id>urn:sha1:2c58483a5983d1313f674e2ba32b3bac24df6911</id>
<content type='text'>
This rewrites (the misnamed) setup_reflog_action() from shell to C. The
new version is called prepare_branch_to_be_rebased().

A new command is added to rebase--helper.c, “checkout-base”, as well as
a new flag, “verbose”, to avoid silencing the output of the checkout
operation called by checkout_base_commit().

The function `run_git_checkout()` will also be used in the next commit,
therefore its code is not part of `checkout_base_commit()`.

The shell version is then stripped in favour of a call to the helper.

As $GIT_REFLOG_ACTION is no longer set at the first call of
checkout_onto(), a call to comment_for_reflog() is added at the
beginning of this function.

Signed-off-by: Alban Gruin &lt;alban.gruin@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
</feed>
