<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/sequencer.c, branch v2.18.2</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=v2.18.2</id>
<link rel='self' href='https://git.shady.money/git/atom?h=v2.18.2'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2018-06-18T18:23:22Z</updated>
<entry>
<title>Merge branch 'js/rebase-i-root-fix'</title>
<updated>2018-06-18T18:23:22Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2018-06-18T18:23:22Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=f300f5681e88fdf1058139100cbb8f990f5029c5'/>
<id>urn:sha1:f300f5681e88fdf1058139100cbb8f990f5029c5</id>
<content type='text'>
A regression to "rebase -i --root" introduced during this cycle has
been fixed.

* js/rebase-i-root-fix:
  rebase --root: fix amending root commit messages
  rebase --root: demonstrate a bug while amending root commit messages
</content>
</entry>
<entry>
<title>rebase --root: fix amending root commit messages</title>
<updated>2018-06-18T16:36:58Z</updated>
<author>
<name>Johannes Schindelin</name>
<email>johannes.schindelin@gmx.de</email>
</author>
<published>2018-06-16T19:00:38Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=76fda6ebbc721e39ed70625206ba1dab5a9c1340'/>
<id>urn:sha1:76fda6ebbc721e39ed70625206ba1dab5a9c1340</id>
<content type='text'>
The code path that triggered that "BUG" really does not want to run
without an explicit commit message. In the case where we want to amend a
commit message, we have an *implicit* commit message, though: the one of
the commit to amend. Therefore, this code path should not even be
entered.

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 'js/rebase-recreate-merge'</title>
<updated>2018-06-01T06:06:40Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2018-06-01T06:06:40Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=95dd4b2b14db912b482320c0a69518e77e7af19a'/>
<id>urn:sha1:95dd4b2b14db912b482320c0a69518e77e7af19a</id>
<content type='text'>
Hotfixes.

* js/rebase-recreate-merge:
  sequencer: ensure labels that are object IDs are rewritten
  git-rebase--interactive: fix copy-paste mistake
</content>
</entry>
<entry>
<title>Merge branch 'nd/command-list'</title>
<updated>2018-06-01T06:06:37Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2018-06-01T06:06:37Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=2289880f784326dc955f213072164539dcaf445e'/>
<id>urn:sha1:2289880f784326dc955f213072164539dcaf445e</id>
<content type='text'>
The list of commands with their various attributes were spread
across a few places in the build procedure, but it now is getting a
bit more consolidated to allow more automation.

* nd/command-list:
  completion: allow to customize the completable command list
  completion: add and use --list-cmds=alias
  completion: add and use --list-cmds=nohelpers
  Move declaration for alias.c to alias.h
  completion: reduce completable command list
  completion: let git provide the completable command list
  command-list.txt: documentation and guide line
  help: use command-list.txt for the source of guides
  help: add "-a --verbose" to list all commands with synopsis
  git: support --list-cmds=list-&lt;category&gt;
  completion: implement and use --list-cmds=main,others
  git --list-cmds: collect command list in a string_list
  git.c: convert --list-* to --list-cmds=*
  Remove common-cmds.h
  help: use command-list.h for common command list
  generate-cmds.sh: export all commands to command-list.h
  generate-cmds.sh: factor out synopsis extract code
</content>
</entry>
<entry>
<title>Merge branch 'bc/object-id'</title>
<updated>2018-05-30T05:04:10Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2018-05-30T05:04:10Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=42c8ce1c49f862c98b35e4d89c88aa3d489d6608'/>
<id>urn:sha1:42c8ce1c49f862c98b35e4d89c88aa3d489d6608</id>
<content type='text'>
Conversion from uchar[20] to struct object_id continues.

* bc/object-id: (42 commits)
  merge-one-file: compute empty blob object ID
  add--interactive: compute the empty tree value
  Update shell scripts to compute empty tree object ID
  sha1_file: only expose empty object constants through git_hash_algo
  dir: use the_hash_algo for empty blob object ID
  sequencer: use the_hash_algo for empty tree object ID
  cache-tree: use is_empty_tree_oid
  sha1_file: convert cached object code to struct object_id
  builtin/reset: convert use of EMPTY_TREE_SHA1_BIN
  builtin/receive-pack: convert one use of EMPTY_TREE_SHA1_HEX
  wt-status: convert two uses of EMPTY_TREE_SHA1_HEX
  submodule: convert several uses of EMPTY_TREE_SHA1_HEX
  sequencer: convert one use of EMPTY_TREE_SHA1_HEX
  merge: convert empty tree constant to the_hash_algo
  builtin/merge: switch tree functions to use object_id
  builtin/am: convert uses of EMPTY_TREE_SHA1_BIN to the_hash_algo
  sha1-file: add functions for hex empty tree and blob OIDs
  builtin/receive-pack: avoid hard-coded constants for push certs
  diff: specify abbreviation size in terms of the_hash_algo
  upload-pack: replace use of several hard-coded constants
  ...
</content>
</entry>
<entry>
<title>Merge branch 'js/sequencer-and-root-commits'</title>
<updated>2018-05-30T05:04:04Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2018-05-30T05:04:04Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=c5aa4bccb5ffcc01e45915c00d2fce30ce959dab'/>
<id>urn:sha1:c5aa4bccb5ffcc01e45915c00d2fce30ce959dab</id>
<content type='text'>
The implementation of "git rebase -i --root" has been updated to use
the sequencer machinery more.

* js/sequencer-and-root-commits:
  rebase --rebase-merges: root commits can be cousins, too
  rebase --rebase-merges: a "merge" into a new root is a fast-forward
  sequencer: allow introducing new root commits
  rebase -i --root: let the sequencer handle even the initial part
  sequencer: learn about the special "fake root commit" handling
  sequencer: extract helper to update active_cache_tree
</content>
</entry>
<entry>
<title>sequencer: ensure labels that are object IDs are rewritten</title>
<updated>2018-05-30T04:32:16Z</updated>
<author>
<name>brian m. carlson</name>
<email>sandals@crustytoothpaste.net</email>
</author>
<published>2018-05-29T16:32:36Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=5971b0836eece0ffcafe15fd5d67934787ea1777'/>
<id>urn:sha1:5971b0836eece0ffcafe15fd5d67934787ea1777</id>
<content type='text'>
When writing the todo script for --rebase-merges, we try to find a label
for certain commits.  If the label ends up being a valid object ID, such
as when we merge a detached commit, we want to rewrite it so it is no
longer a valid object ID.

However, the code path that does this checks for its length to be
equivalent to GIT_SHA1_RAWSZ, which isn't correct, since what we are
reading is a hex object ID.  Instead, check for the length being
equivalent to that of a hex object ID.  Use the_hash_algo so this code
works regardless of the hash size.

Signed-off-by: brian m. carlson &lt;sandals@crustytoothpaste.net&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'js/rebase-recreate-merge'</title>
<updated>2018-05-23T05:38:20Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2018-05-23T05:38:20Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=2c18e6ae2434a6caa5b3a7256608470948e73f66'/>
<id>urn:sha1:2c18e6ae2434a6caa5b3a7256608470948e73f66</id>
<content type='text'>
"git rebase" learned "--rebase-merges" to transplant the whole
topology of commit graph elsewhere.

* js/rebase-recreate-merge:
  rebase -i --rebase-merges: add a section to the man page
  rebase -i: introduce --rebase-merges=[no-]rebase-cousins
  pull: accept --rebase=merges to recreate the branch topology
  rebase --rebase-merges: avoid "empty merges"
  sequencer: handle post-rewrite for merge commands
  sequencer: make refs generated by the `label` command worktree-local
  rebase --rebase-merges: add test for --keep-empty
  rebase: introduce the --rebase-merges option
  rebase-helper --make-script: introduce a flag to rebase merges
  sequencer: fast-forward `merge` commands, if possible
  sequencer: introduce the `merge` command
  sequencer: introduce new commands to reset the revision
  git-rebase--interactive: clarify arguments
  sequencer: offer helpful advice when a command was rescheduled
  sequencer: refactor how original todo list lines are accessed
  sequencer: make rearrange_squash() a bit more obvious
  sequencer: avoid using errno clobbered by rollback_lock_file()
</content>
</entry>
<entry>
<title>Merge branch 'js/rebase-i-clean-msg-after-fixup-continue'</title>
<updated>2018-05-23T05:38:18Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2018-05-23T05:38:18Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=4a3bf32b6c7e5d832e02f30a78ad23dc6ba15dcc'/>
<id>urn:sha1:4a3bf32b6c7e5d832e02f30a78ad23dc6ba15dcc</id>
<content type='text'>
"git rebase -i" sometimes left intermediate "# This is a
combination of N commits" message meant for the human consumption
inside an editor in the final result in certain corner cases, which
has been fixed.

* js/rebase-i-clean-msg-after-fixup-continue:
  rebase --skip: clean up commit message after a failed fixup/squash
  sequencer: always commit without editing when asked for
  rebase -i: Handle "combination of &lt;n&gt; commits" with GETTEXT_POISON
  rebase -i: demonstrate bugs with fixup!/squash! commit messages
</content>
</entry>
<entry>
<title>Merge branch 'sb/oid-object-info'</title>
<updated>2018-05-23T05:38:16Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2018-05-23T05:38:16Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=fcb6df325468a7ae12949ab80dcd37772b9b1fbf'/>
<id>urn:sha1:fcb6df325468a7ae12949ab80dcd37772b9b1fbf</id>
<content type='text'>
The codepath around object-info API has been taught to take the
repository object (which in turn tells the API which object store
the objects are to be located).

* sb/oid-object-info:
  cache.h: allow oid_object_info to handle arbitrary repositories
  packfile: add repository argument to cache_or_unpack_entry
  packfile: add repository argument to unpack_entry
  packfile: add repository argument to read_object
  packfile: add repository argument to packed_object_info
  packfile: add repository argument to packed_to_object_type
  packfile: add repository argument to retry_bad_packed_offset
  cache.h: add repository argument to oid_object_info
  cache.h: add repository argument to oid_object_info_extended
</content>
</entry>
</feed>
