<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/git-rebase--interactive.sh, branch v2.7.2</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=v2.7.2</id>
<link rel='self' href='https://git.shady.money/git/atom?h=v2.7.2'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2015-12-11T20:44:44Z</updated>
<entry>
<title>rebase -i: remember merge options beyond continue actions</title>
<updated>2015-12-11T20:44:44Z</updated>
<author>
<name>Fabian Ruch</name>
<email>bafain@gmail.com</email>
</author>
<published>2015-12-11T20:30:36Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=040fd39e672fce2b549b842895ceb4f5063026f3'/>
<id>urn:sha1:040fd39e672fce2b549b842895ceb4f5063026f3</id>
<content type='text'>
If the user explicitly specified a merge strategy or strategy
options, continue to use that strategy/option after
"rebase --continue".  Add a test of the corrected behavior.

If --merge is specified or implied by -s or -X, then "strategy and
"strategy_opts" are set to values from which "strategy_args" can be
derived; otherwise they are set to empty strings.  Either way,
their values are propagated from one step of an interactive rebase
to the next via state files.

"do_merge", on the other hand, is *not* propagated to later steps of
an interactive rebase.  Therefore, making the initialization of
"strategy_args" conditional on "do_merge" being set prevents later
steps of an interactive rebase from setting it correctly.

Luckily, we don't need the "do_merge" guard at all.  If the rebase
was started without --merge, then "strategy" and "strategy_opts"
are both the empty string, which results in "strategy_args" also
being set to the empty string, which is just what we want in that
situation.  So remove the "do_merge" guard and derive
"strategy_args" from "strategy" and "strategy_opts" every time.

Reported-by: Diogo de Campos &lt;campos@esss.com.br&gt;
Signed-off-by: Fabian Ruch &lt;bafain@gmail.com&gt;
Helped-by: Michael Haggerty &lt;mhagger@alum.mit.edu&gt;
Signed-off-by: Ralf Thielow &lt;ralf.thielow@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>rebase-i-exec: Allow space in SHELL_PATH</title>
<updated>2015-11-13T22:51:39Z</updated>
<author>
<name>Fredrik Medley</name>
<email>fredrik.medley@gmail.com</email>
</author>
<published>2015-11-13T06:03:19Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=fe9394ad3e4ec4386b805c63ffc016647054e14d'/>
<id>urn:sha1:fe9394ad3e4ec4386b805c63ffc016647054e14d</id>
<content type='text'>
On Windows, when Git is installed under "C:\Program Files\Git",
SHELL_PATH will include a space. Fix "git rebase --interactive --exec"
so that it works with spaces in SHELL_PATH.

Signed-off-by: Fredrik Medley &lt;fredrik.medley@gmail.com&gt;
Signed-off-by: Jeff King &lt;peff@peff.net&gt;
</content>
</entry>
<entry>
<title>Merge branch 'gr/rebase-i-drop-warn' into maint</title>
<updated>2015-11-03T23:32:30Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2015-11-03T23:32:30Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=c04b3a2dbff67605078139f97d4546716e4a1f40'/>
<id>urn:sha1:c04b3a2dbff67605078139f97d4546716e4a1f40</id>
<content type='text'>
Recent update to "rebase -i" that tries to sanity check the edited
insn sheet before it uses it has become too picky on Windows where
CRLF left by the editor is turned into a trailing CR on the line
read via the "read" built-in command.

* gr/rebase-i-drop-warn:
  rebase-i: work around Windows CRLF line endings
  t3404: "rebase -i" gets broken when insn sheet uses CR/LF line endings
</content>
</entry>
<entry>
<title>rebase-i: work around Windows CRLF line endings</title>
<updated>2015-10-28T17:06:46Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2015-10-28T14:54:48Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=39743cf554caaed462464b55315ab5b37f5ab1b9'/>
<id>urn:sha1:39743cf554caaed462464b55315ab5b37f5ab1b9</id>
<content type='text'>
Editors on Windows can and do save text files with CRLF line
endings, which is the convention on the platform.  We are seeing
reports that the "read" command in a port of bash to the environment
however does not strip the CRLF at the end, not adjusting for the
same convention on the platform.

This breaks the recently added sanity checks for the insn sheet fed
to "rebase -i"; instead of an empty line (hence nothing in $command),
the script was getting a lone CR in there.

Special case a lone CR and treat it the same way as an empty line to
work this around.

This patch (also) passes the test with Git for Windows, where the
issue was seen first.

Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
Signed-off-by: Johannes Schindelin &lt;johannes.schindelin@gmx.de&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'gr/rebase-i-drop-warn' into maint</title>
<updated>2015-10-16T21:32:43Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2015-10-16T21:32:43Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=19d11d43fddd7535c93a616984c3815d5a444f99'/>
<id>urn:sha1:19d11d43fddd7535c93a616984c3815d5a444f99</id>
<content type='text'>
"git rebase -i" had a minor regression recently, which stopped
considering a line that begins with an indented '#' in its insn
sheet not a comment, which is now fixed.

* gr/rebase-i-drop-warn:
  rebase-i: loosen over-eager check_bad_cmd check
  rebase-i: explicitly accept tab as separator in commands
</content>
</entry>
<entry>
<title>rebase-i: loosen over-eager check_bad_cmd check</title>
<updated>2015-10-06T05:39:56Z</updated>
<author>
<name>Matthieu Moy</name>
<email>Matthieu.Moy@imag.fr</email>
</author>
<published>2015-10-01T08:18:42Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=1db168ee971a6a61ce72480e1db9ddfd3629bfcf'/>
<id>urn:sha1:1db168ee971a6a61ce72480e1db9ddfd3629bfcf</id>
<content type='text'>
804098bb (git rebase -i: add static check for commands and SHA-1,
2015-06-29) tried to check all insns before running any in the todo
list, but it did so by implementing its own parser that is a lot
stricter than necessary.  We used to allow lines that are indented
(including comment lines), and we used to allow a whitespace between
the insn and the commit object name to be HT, among other things,
that are flagged as an invalid line by mistake.

Fix this by using the same tokenizer that is used to parse the todo
list file in the new check.

Whether it's a good thing to accept indented comments is
debatable (other commands like "git commit" do not accept them), but we
already accepted them in the past, and some people and scripts rely on
this behavior. Also, a line starting with space followed by a '#' cannot
have any meaning other than being a comment, hence it doesn't harm to
accept them as comments.

Largely based on patch by: Junio C Hamano &lt;gitster@pobox.com&gt;

[jc: updated test with quickfix from Torsten Bögershausen]

Signed-off-by: Matthieu Moy &lt;Matthieu.Moy@imag.fr&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>rebase-i: explicitly accept tab as separator in commands</title>
<updated>2015-10-02T18:36:44Z</updated>
<author>
<name>Matthieu Moy</name>
<email>Matthieu.Moy@imag.fr</email>
</author>
<published>2015-10-01T08:18:41Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=31bff64100d0864741b57cc44e01a19359573e99'/>
<id>urn:sha1:31bff64100d0864741b57cc44e01a19359573e99</id>
<content type='text'>
The git-rebase-todo is parsed several times with different parsers. In
principle, the user input is normalized by transform_todo_ids and
further parsing can be stricter.

In case the user wrote

pick deadbeef&lt;TAB&gt;commit message

the parser of transform_todo_ids was considering the sha1 to be
"deadbeef&lt;TAB&gt;commit", and was leaving the tab in the transformed sheet.
In practice, this went unnoticed since the actual command interpretation
was done later in do_next which did accept the tab as a separator.

Make it explicit in the code of transform_todo_ids that tabs are
accepted. This way, code that mimicks it will also accept tabs as
separator.

A similar construct appears in skip_unnecessary_picks, but this one
comes after transform_todo_ids, hence reads the normalized format, so it
needs not be changed.

Signed-off-by: Matthieu Moy &lt;Matthieu.Moy@imag.fr&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'gr/rebase-i-drop-warn'</title>
<updated>2015-08-03T18:01:22Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2015-08-03T18:01:22Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=3a760cad7952ce5d17ff77a8f376aaa35299dfa7'/>
<id>urn:sha1:3a760cad7952ce5d17ff77a8f376aaa35299dfa7</id>
<content type='text'>
Add "drop commit-object-name subject" command as another way to
skip replaying of a commit in "rebase -i", and then punish those
who do not use it (and instead just remove the lines) by throwing
a warning.

* gr/rebase-i-drop-warn:
  git rebase -i: add static check for commands and SHA-1
  git rebase -i: warn about removed commits
  git-rebase -i: add command "drop" to remove a commit
</content>
</entry>
<entry>
<title>Merge branch 'mr/rebase-i-customize-insn-sheet'</title>
<updated>2015-08-03T18:01:16Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2015-08-03T18:01:16Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=9f56db7cafc6a4634b8f2fa70f1c8949f4242df1'/>
<id>urn:sha1:9f56db7cafc6a4634b8f2fa70f1c8949f4242df1</id>
<content type='text'>
"git rebase -i"'s list of todo is made configurable.

* mr/rebase-i-customize-insn-sheet:
  git-rebase--interactive.sh: add config option for custom instruction format
</content>
</entry>
<entry>
<title>Merge branch 'js/rebase-i-clean-up-upon-continue-to-skip'</title>
<updated>2015-07-13T21:00:25Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2015-07-13T21:00:25Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=e01787f1a1de589b7adc6f6946b53996a5e74c34'/>
<id>urn:sha1:e01787f1a1de589b7adc6f6946b53996a5e74c34</id>
<content type='text'>
Abandoning an already applied change in "git rebase -i" with
"--continue" left CHERRY_PICK_HEAD and confused later steps.

* js/rebase-i-clean-up-upon-continue-to-skip:
  rebase -i: do not leave a CHERRY_PICK_HEAD file behind
  t3404: demonstrate CHERRY_PICK_HEAD bug
</content>
</entry>
</feed>
