<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/sequencer.c, branch v2.29.2</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=v2.29.2</id>
<link rel='self' href='https://git.shady.money/git/atom?h=v2.29.2'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2020-10-29T21:18:47Z</updated>
<entry>
<title>Merge branch 'jk/committer-date-is-author-date-fix' into maint</title>
<updated>2020-10-29T21:18:47Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2020-10-29T21:18:47Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=4f9f7c14426bde47416067e2d202b05ed2c3fc6a'/>
<id>urn:sha1:4f9f7c14426bde47416067e2d202b05ed2c3fc6a</id>
<content type='text'>
In 2.29, "--committer-date-is-author-date" option of "rebase" and
"am" subcommands lost the e-mail address by mistake, which has been
corrected.

* jk/committer-date-is-author-date-fix:
  rebase: fix broken email with --committer-date-is-author-date
  am: fix broken email with --committer-date-is-author-date
  t3436: check --committer-date-is-author-date result more carefully
</content>
</entry>
<entry>
<title>rebase: fix broken email with --committer-date-is-author-date</title>
<updated>2020-10-23T15:25:22Z</updated>
<author>
<name>Jeff King</name>
<email>peff@peff.net</email>
</author>
<published>2020-10-23T07:10:15Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=5f35edd9d7ebca17f205b338d340cc6ce214644a'/>
<id>urn:sha1:5f35edd9d7ebca17f205b338d340cc6ce214644a</id>
<content type='text'>
Commit 7573cec52c (rebase -i: support --committer-date-is-author-date,
2020-08-17) copied the committer ident-parsing code from builtin/am.c.
And in doing so, it copied a bug in which we always set the email to an
empty string. We fixed the version in git-am in the previous commit;
this commit fixes the copied code.

Reported-by: VenomVendor &lt;info@venomvendor.com&gt;
Signed-off-by: Jeff King &lt;peff@peff.net&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'jk/unused'</title>
<updated>2020-10-05T21:01:52Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2020-10-05T21:01:52Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=19dd352d03adc75d0b6530975a44b7bb23c69063'/>
<id>urn:sha1:19dd352d03adc75d0b6530975a44b7bb23c69063</id>
<content type='text'>
Code cleanup.

* jk/unused:
  dir.c: drop unused "untracked" from treat_path_fast()
  sequencer: handle ignore_footer when parsing trailers
  test-advise: check argument count with argc instead of argv
  sparse-checkout: fill in some options boilerplate
  sequencer: drop repository argument from run_git_commit()
  push: drop unused repo argument to do_push()
  assert PARSE_OPT_NONEG in parse-options callbacks
  env--helper: write to opt-&gt;value in parseopt helper
  drop unused argc parameters
  convert: drop unused crlf_action from check_global_conv_flags_eol()
</content>
</entry>
<entry>
<title>Merge branch 'jc/sequencer-stopped-sha-simplify'</title>
<updated>2020-10-04T19:49:11Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2020-10-04T19:49:10Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=84cdeed1cb70660b24bc574902483dc815c5918b'/>
<id>urn:sha1:84cdeed1cb70660b24bc574902483dc815c5918b</id>
<content type='text'>
Code simplification.

* jc/sequencer-stopped-sha-simplify:
  sequencer: stop abbreviating stopped-sha file
</content>
</entry>
<entry>
<title>sequencer: handle ignore_footer when parsing trailers</title>
<updated>2020-09-30T19:53:48Z</updated>
<author>
<name>Jeff King</name>
<email>peff@peff.net</email>
</author>
<published>2020-09-30T12:34:11Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=9dad073d4b9b6679c3e86f28aacf79f85ed786d2'/>
<id>urn:sha1:9dad073d4b9b6679c3e86f28aacf79f85ed786d2</id>
<content type='text'>
The append_signoff() function takes an "ignore_footer"
argument, which specifies a number of bytes at the end of
the message buffer which should not be considered (they
cannot contain trailers, and the trailer is spliced in
before them).

But to find the existing trailers, it calls into
has_conforming_trailer(). That function takes an
ignore_footer parameter, but since 967dfd4d56 (sequencer:
use trailer's trailer layout, 2016-11-02) the parameter is
completely ignored.

The trailer interface we're using takes a single string,
with no option to tell it to use part of the string.
However, since we have a mutable strbuf, we can work around
this by simply overwriting (and later restoring) the
boundary with a NUL.

I'm not sure if this can actually trigger a bug in practice.
It's easy to get a non-zero ignore_footer by doing something
like this:

  git commit -F - --cleanup=verbatim &lt;&lt;-EOF
  subject

  body

  Signed-off-by: me

  # this looks like a comment, but is actually in the
  # message! That makes the earlier s-o-b fake.
  EOF

  git commit --amend -s

There git-commit calls ignore_non_trailer() to count up the
"#" cruft, which becomes the ignore_footer header. But it
works even without this patch! That's because the trailer
code _also_ calls ignore_non_trailer() and skips the cruft,
too. So it happens to work because the only callers with a
non-zero ignore_footer are using the exact same function
that the trailer parser uses internally.

And that seems true for all of the current callers, but
there's nothing guaranteeing it. We're better off only
feeding the correct buffer to the trailer code in the first
place.

Signed-off-by: Jeff King &lt;peff@peff.net&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>sequencer: drop repository argument from run_git_commit()</title>
<updated>2020-09-30T19:53:47Z</updated>
<author>
<name>Jeff King</name>
<email>peff@peff.net</email>
</author>
<published>2020-09-30T12:29:31Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=20f4b044a681fffd469cc9ddcf055580a20fd612'/>
<id>urn:sha1:20f4b044a681fffd469cc9ddcf055580a20fd612</id>
<content type='text'>
When we switched to using an external git-commit call in b0a3186140
(sequencer: simplify root commit creation, 2019-08-19), this function
didn't need to care about the repository object any more.

Arguably we could be passing along the repository path to the external
git-commit by using "--git-dir=r-&gt;path" here. But for the most part the
sequencer code relies on sub-process finding the same repository we're
already in (using the same environment variables or discovery process we
did). But we don't have a convenient interface for doing so, and there's
no indication that we need to. Let's just drop the unused parameter for
now.

Signed-off-by: Jeff King &lt;peff@peff.net&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>sequencer: stop abbreviating stopped-sha file</title>
<updated>2020-09-25T21:11:12Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2020-09-25T05:49:12Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=0512eabd915a6a7e79b368bf6408b36bbdc56386'/>
<id>urn:sha1:0512eabd915a6a7e79b368bf6408b36bbdc56386</id>
<content type='text'>
The object name written to this file is not exposed to end-users and
the only reader of this file immediately expands it back to a full
object name.  Stop abbreviating while writing, and expect a full
object name while reading, which simplifies the code a bit.

Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'pw/rebase-i-more-options'</title>
<updated>2020-09-03T19:37:01Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2020-09-03T19:37:01Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=9c31b19dd00981fcea435de1cd05eab179039a8d'/>
<id>urn:sha1:9c31b19dd00981fcea435de1cd05eab179039a8d</id>
<content type='text'>
"git rebase -i" learns a bit more options.

* pw/rebase-i-more-options:
  t3436: do not run git-merge-recursive in dashed form
  rebase: add --reset-author-date
  rebase -i: support --ignore-date
  rebase -i: support --committer-date-is-author-date
  am: stop exporting GIT_COMMITTER_DATE
  rebase -i: add --ignore-whitespace flag
</content>
</entry>
<entry>
<title>Merge branch 'hn/refs-pseudorefs'</title>
<updated>2020-08-31T22:49:48Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2020-08-31T22:49:48Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=e699684cf6bdfd4d6fd9086a6935168f86a0177e'/>
<id>urn:sha1:e699684cf6bdfd4d6fd9086a6935168f86a0177e</id>
<content type='text'>
Accesses to two pseudorefs have been updated to properly use ref
API.

* hn/refs-pseudorefs:
  sequencer: treat REVERT_HEAD as a pseudo ref
  builtin/commit: suggest update-ref for pseudoref removal
  sequencer: treat CHERRY_PICK_HEAD as a pseudo ref
  refs: make refs_ref_exists public
</content>
</entry>
<entry>
<title>sequencer: treat REVERT_HEAD as a pseudo ref</title>
<updated>2020-08-21T18:20:11Z</updated>
<author>
<name>Han-Wen Nienhuys</name>
<email>hanwen@google.com</email>
</author>
<published>2020-08-21T16:59:37Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=b8825ef233840136bd01a9619b36af515f498eb2'/>
<id>urn:sha1:b8825ef233840136bd01a9619b36af515f498eb2</id>
<content type='text'>
Signed-off-by: Han-Wen Nienhuys &lt;hanwen@google.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
</feed>
