<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/sequencer.c, branch v2.13.2</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=v2.13.2</id>
<link rel='self' href='https://git.shady.money/git/atom?h=v2.13.2'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2017-06-05T00:03:10Z</updated>
<entry>
<title>Merge branch 'ab/c-translators-comment-style' into maint</title>
<updated>2017-06-05T00:03:10Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2017-06-05T00:03:10Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=b19174e2f37cc696cbfded9a02c2f2fd6e93bce7'/>
<id>urn:sha1:b19174e2f37cc696cbfded9a02c2f2fd6e93bce7</id>
<content type='text'>
Update the C style recommendation for notes for translators, as
recent versions of gettext tools can work with our style of
multi-line comments.

* ab/c-translators-comment-style:
  C style: use standard style for "TRANSLATORS" comments
</content>
</entry>
<entry>
<title>Merge branch 'jt/use-trailer-api-in-commands' into maint</title>
<updated>2017-06-04T01:21:06Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2017-06-04T01:21:06Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=e2ae5ec1f3fcbf5eae0608ad1f49f73e50257995'/>
<id>urn:sha1:e2ae5ec1f3fcbf5eae0608ad1f49f73e50257995</id>
<content type='text'>
"git cherry-pick" and other uses of the sequencer machinery
mishandled a trailer block whose last line is an incomplete line.
This has been fixed so that an additional sign-off etc. are added
after completing the existing incomplete line.

* jt/use-trailer-api-in-commands:
  sequencer: add newline before adding footers
</content>
</entry>
<entry>
<title>Merge branch 'pw/rebase-i-regression-fix' into maint</title>
<updated>2017-06-04T01:20:55Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2017-06-04T01:20:55Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=19a23d6d8353b734a674260b3f432b920b413587'/>
<id>urn:sha1:19a23d6d8353b734a674260b3f432b920b413587</id>
<content type='text'>
Just the first one of three? new tests that follows up a regression
fix.

* pw/rebase-i-regression-fix:
  rebase -i: add missing newline to end of message
  rebase -i: silence stash apply
  rebase -i: fix reflog message
</content>
</entry>
<entry>
<title>C style: use standard style for "TRANSLATORS" comments</title>
<updated>2017-05-30T23:01:42Z</updated>
<author>
<name>Ævar Arnfjörð Bjarmason</name>
<email>avarab@gmail.com</email>
</author>
<published>2017-05-11T21:20:12Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=66f5f6dca95eda46bf02c8d06de8cb265995fd6e'/>
<id>urn:sha1:66f5f6dca95eda46bf02c8d06de8cb265995fd6e</id>
<content type='text'>
Change all the "TRANSLATORS: [...]" comments in the C code to use the
regular Git coding style, and amend the style guide so that the
example there uses that style.

This custom style was necessary back in 2010 when the gettext support
was initially added, and was subsequently documented in commit
cbcfd4e3ea ("i18n: mention "TRANSLATORS:" marker in
Documentation/CodingGuidelines", 2014-04-18).

GNU xgettext hasn't had the parsing limitation that necessitated this
exception for almost 3 years. Since its 0.19 release on 2014-06-02
it's been able to recognize TRANSLATOR comments in the standard Git
comment syntax[1].

Usually we'd like to keep compatibility with software that's that
young, but in this case literally the only person who needs to be
using a gettext newer than 3 years old is Jiang Xin (the only person
who runs &amp; commits "make pot" results), so I think in this case we can
make an exception.

This xgettext parsing feature was added after a thread on the Git
mailing list[2] which continued on the bug-gettext[3] list, but we
never subsequently changed our style &amp; styleguide, do so.

There are already longstanding changes in git that use the standard
comment style &amp; have their TRANSLATORS comments extracted properly
without getting the literal "*"'s mixed up in the text, as would
happen before xgettext 0.19.

Commit 7ff2683253 ("builtin-am: implement -i/--interactive",
2015-08-04) added one such comment, which in commit df0617bfa7 ("l10n:
git.pot: v2.6.0 round 1 (123 new, 41 removed)", 2015-09-05) got picked
up in the po/git.pot file with the right format, showing that Jiang
already runs a modern xgettext.

The xgettext parser does not handle the sort of non-standard comment
style that I'm amending here in sequencer.c, but that isn't standard
Git comment syntax anyway. With this change to sequencer.c &amp; "make
pot" the comment in the pot file is now correct:

     #. TRANSLATORS: %s will be "revert", "cherry-pick" or
    -#. * "rebase -i".
    +#. "rebase -i".

1. http://git.savannah.gnu.org/cgit/gettext.git/commit/?id=10af7fe6bd
2. &lt;2ce9ec406501d112e032c8208417f8100bed04c6.1397712142.git.worldhello.net@gmail.com&gt;
   (https://public-inbox.org/git/2ce9ec406501d112e032c8208417f8100bed04c6.1397712142.git.worldhello.net@gmail.com/)
3. https://lists.gnu.org/archive/html/bug-gettext/2014-04/msg00016.html

Signed-off-by: Ævar Arnfjörð Bjarmason &lt;avarab@gmail.com&gt;
Acked-by: Jiang Xin &lt;worldhello.net@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>rebase -i: add missing newline to end of message</title>
<updated>2017-05-20T09:25:20Z</updated>
<author>
<name>Phillip Wood</name>
<email>phillip.wood@dunelm.org.uk</email>
</author>
<published>2017-05-19T14:32:48Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=d096d7f1ef81f5c52d0c9d3070ad82b66de9c981'/>
<id>urn:sha1:d096d7f1ef81f5c52d0c9d3070ad82b66de9c981</id>
<content type='text'>
The message that's printed when auto-stashed changes are successfully
restored was missing '\n' at the end.

Signed-off-by: Phillip Wood &lt;phillip.wood@dunelm.org.uk&gt;
Acked-by: Johannes Schindelin &lt;Johannes.Schindelin@gmx.de&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>rebase -i: silence stash apply</title>
<updated>2017-05-20T09:24:28Z</updated>
<author>
<name>Phillip Wood</name>
<email>phillip.wood@dunelm.org.uk</email>
</author>
<published>2017-05-18T10:02:33Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=79a62269815264165da265eeb8a65feb47dcf671'/>
<id>urn:sha1:79a62269815264165da265eeb8a65feb47dcf671</id>
<content type='text'>
The shell version of rebase -i silences the status output from 'git
stash apply' when restoring the autostashed changes. The C version
does not.

Having the output from git stash apply on the screen is
distracting as it makes it difficult to find the message from git
rebase saying that the rebase succeeded. Also the status information
that git stash prints talks about looking in .git/rebase-merge/done to
see which commits have been applied. As .git/rebase-merge is removed
shortly after the message is printed before rebase -i exits this is
confusing.

Signed-off-by: Phillip Wood &lt;phillip.wood@dunelm.org.uk&gt;
Acked-by: Johannes Schindelin &lt;johannes.schindelin@gmx.de&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>rebase -i: fix reflog message</title>
<updated>2017-05-20T09:24:25Z</updated>
<author>
<name>Phillip Wood</name>
<email>phillip.wood@dunelm.org.uk</email>
</author>
<published>2017-05-18T10:02:32Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=4ab867b8fc8c19ae99c5414ffcbf57fb1609c94f'/>
<id>urn:sha1:4ab867b8fc8c19ae99c5414ffcbf57fb1609c94f</id>
<content type='text'>
When rebase -i was converted to C a bug was introduced into the code
that creates the reflog message. Instead of saying
rebase -i (finish): &lt;head-name&gt; onto &lt;onto&gt;
it says
rebase -i (finish): &lt;head-name&gt; onto &lt;orig-head&gt;&lt;onto&gt;
as the strbuf is not reset between reading the value of &lt;orig-head&gt;
and &lt;onto&gt;.

Signed-off-by: Phillip Wood &lt;phillip.wood@dunelm.org.uk&gt;
Acked-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 'sh/rebase-i-reread-todo-after-exec'</title>
<updated>2017-05-01T05:14:44Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2017-05-01T05:14:44Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=0998b648d6addfb7eaf17e1aa4e7fb1dbefac548'/>
<id>urn:sha1:0998b648d6addfb7eaf17e1aa4e7fb1dbefac548</id>
<content type='text'>
"git rebase -i" failed to re-read the todo list file when the
command specified with the `exec` instruction updated it.

* sh/rebase-i-reread-todo-after-exec:
  rebase -i: reread the todo list if `exec` touched it
</content>
</entry>
<entry>
<title>rebase -i: reread the todo list if `exec` touched it</title>
<updated>2017-04-27T01:56:26Z</updated>
<author>
<name>Stephen Hicks</name>
<email>sdh@google.com</email>
</author>
<published>2017-04-26T19:17:40Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=54fd3243daec7d59394f25846450d83c0012e57c'/>
<id>urn:sha1:54fd3243daec7d59394f25846450d83c0012e57c</id>
<content type='text'>
In the scripted version of the interactive rebase, there was no internal
representation of the todo list; it was re-read before every command.
That allowed the hack that an `exec` command could append (or even
completely rewrite) the todo list.

This hack was broken by the partial conversion of the interactive rebase
to C, and this patch reinstates it.

We also add a small test to verify that this fix does not regress in the
future.

Signed-off-by: Stephen Hicks &lt;sdh@google.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>sequencer: add newline before adding footers</title>
<updated>2017-04-27T00:48:50Z</updated>
<author>
<name>Jonathan Tan</name>
<email>jonathantanmy@google.com</email>
</author>
<published>2017-04-26T20:50:03Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=44dc738a39f2c4dba41c0ddacae280d0f88dc71f'/>
<id>urn:sha1:44dc738a39f2c4dba41c0ddacae280d0f88dc71f</id>
<content type='text'>
When encountering a commit message that does not end in a newline,
sequencer does not complete the line before determining if a blank line
should be added.  This causes the "(cherry picked..." and sign-off lines
to sometimes appear on the same line as the last line of the commit
message.

This behavior was introduced by commit 967dfd4 ("sequencer: use
trailer's trailer layout", 2016-11-29). However, a revert of that commit
would not resolve this issue completely: prior to that commit, a
conforming footer was deemed to be non-conforming by
has_conforming_footer() if there was no terminating newline, resulting
in both conforming and non-conforming footers being treated the same
when they should not be.

Resolve this issue, both for conforming and non-conforming footers, and
in both do_pick_commit() and append_signoff(), by always adding a
newline to the commit message if it does not end in one before checking
the footer for conformity.

Reported-by: Brian Norris &lt;computersforpeace@gmail.com&gt;
Signed-off-by: Jonathan Tan &lt;jonathantanmy@google.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
</feed>
