<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/strbuf.c, branch v2.20.2</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=v2.20.2</id>
<link rel='self' href='https://git.shady.money/git/atom?h=v2.20.2'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2018-11-02T02:04:54Z</updated>
<entry>
<title>Merge branch 'pk/rebase-in-c-3-acts'</title>
<updated>2018-11-02T02:04:54Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2018-11-02T02:04:54Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=39f73315454d2553b2d3219a58f5110a60eba5a1'/>
<id>urn:sha1:39f73315454d2553b2d3219a58f5110a60eba5a1</id>
<content type='text'>
Rewrite "git rebase" in C.

* pk/rebase-in-c-3-acts:
  builtin rebase: stop if `git am` is in progress
  builtin rebase: actions require a rebase in progress
  builtin rebase: support --edit-todo and --show-current-patch
  builtin rebase: support --quit
  builtin rebase: support --abort
  builtin rebase: support --skip
  builtin rebase: support --continue
</content>
</entry>
<entry>
<title>builtin rebase: support --continue</title>
<updated>2018-09-06T18:55:58Z</updated>
<author>
<name>Pratik Karki</name>
<email>predatoramigo@gmail.com</email>
</author>
<published>2018-08-08T15:06:16Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=f95736288a3a8d0168af3fc05dc4251edf0d0b47'/>
<id>urn:sha1:f95736288a3a8d0168af3fc05dc4251edf0d0b47</id>
<content type='text'>
This commit adds the option `--continue` which is used to resume
rebase after merge conflicts. The code tries to stay as close to
the equivalent shell scripts found in `git-legacy-rebase.sh` as
possible.

When continuing a rebase, the state variables are read from state_dir.
Some of the state variables are not actually stored there, such as
`upstream`. The shell script version simply does not set them, but for
consistency, we unset them in the builtin version.

Signed-off-by: Pratik Karki &lt;predatoramigo@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'jk/size-t'</title>
<updated>2018-08-15T22:08:25Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2018-08-15T22:08:25Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=7d020f5a78a1ae7ff47d65a2adc79171c0cf9cb7'/>
<id>urn:sha1:7d020f5a78a1ae7ff47d65a2adc79171c0cf9cb7</id>
<content type='text'>
Code clean-up to use size_t/ssize_t when they are the right type.

* jk/size-t:
  strbuf_humanise: use unsigned variables
  pass st.st_size as hint for strbuf_readlink()
  strbuf_readlink: use ssize_t
  strbuf: use size_t for length in intermediate variables
  reencode_string: use size_t for string lengths
  reencode_string: use st_add/st_mult helpers
</content>
</entry>
<entry>
<title>strbuf_humanise: use unsigned variables</title>
<updated>2018-07-24T17:19:29Z</updated>
<author>
<name>Jeff King</name>
<email>peff@peff.net</email>
</author>
<published>2018-07-24T10:52:29Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=7726d360b5ba859ae2b6ceefc5d88cc518c78063'/>
<id>urn:sha1:7726d360b5ba859ae2b6ceefc5d88cc518c78063</id>
<content type='text'>
All of the numeric formatting done by this function uses
"%u", but we pass in a signed "int". The actual range
doesn't matter here, since the conditional makes sure we're
always showing reasonably small numbers. And even gcc's
format-checker does not seem to mind. But it's potentially
confusing to a reader of the code to see the mismatch.

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>strbuf_readlink: use ssize_t</title>
<updated>2018-07-24T17:19:29Z</updated>
<author>
<name>Jeff King</name>
<email>peff@peff.net</email>
</author>
<published>2018-07-24T10:51:25Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=f3e76ed228d60688b49dbc2735e4633e55969e30'/>
<id>urn:sha1:f3e76ed228d60688b49dbc2735e4633e55969e30</id>
<content type='text'>
The return type of readlink() is ssize_t, not int. This
probably doesn't matter in practice, as it would require a
2GB symlink destination, but it doesn't hurt to be careful.

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>strbuf: use size_t for length in intermediate variables</title>
<updated>2018-07-24T17:19:29Z</updated>
<author>
<name>Jeff King</name>
<email>peff@peff.net</email>
</author>
<published>2018-07-24T10:51:08Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=26114c00be2cd49b97b18df69a909d3330886e9d'/>
<id>urn:sha1:26114c00be2cd49b97b18df69a909d3330886e9d</id>
<content type='text'>
A few strbuf functions store the length of a strbuf in a
temporary variable. We should always use size_t for this, as
it's possible for a strbuf to exceed an "int" (e.g., a 2GB
string on a 64-bit system). This is unlikely in practice,
but we should try to behave sensibly on silly or malicious
input.

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>reencode_string: use size_t for string lengths</title>
<updated>2018-07-24T17:19:29Z</updated>
<author>
<name>Jeff King</name>
<email>peff@peff.net</email>
</author>
<published>2018-07-24T10:50:33Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=c7d017d7e1cca37ca20f73c11fa9f1b319a2c3a5'/>
<id>urn:sha1:c7d017d7e1cca37ca20f73c11fa9f1b319a2c3a5</id>
<content type='text'>
The iconv interface takes a size_t, which is the appropriate
type for an in-memory buffer. But our reencode_string_*
functions use integers, meaning we may get confusing results
when the sizes exceed INT_MAX. Let's use size_t
consistently.

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>strbuf: allocate space with GIT_MAX_HEXSZ</title>
<updated>2018-07-16T21:27:39Z</updated>
<author>
<name>brian m. carlson</name>
<email>sandals@crustytoothpaste.net</email>
</author>
<published>2018-07-16T01:27:57Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=4b048c917f9e2cc33771b61b8f12eeac10ea8a51'/>
<id>urn:sha1:4b048c917f9e2cc33771b61b8f12eeac10ea8a51</id>
<content type='text'>
In order to be sure we have enough space to use with any hash algorithm,
use GIT_MAX_HEXSZ to allocate space.

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/use-bug-macro'</title>
<updated>2018-05-30T05:04:07Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2018-05-30T05:04:07Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=50f08db5941755b69012378bfc86f6b8ee98edf4'/>
<id>urn:sha1:50f08db5941755b69012378bfc86f6b8ee98edf4</id>
<content type='text'>
Developer support update, by using BUG() macro instead of die() to
mark codepaths that should not happen more clearly.

* js/use-bug-macro:
  BUG_exit_code: fix sparse "symbol not declared" warning
  Convert remaining die*(BUG) messages
  Replace all die("BUG: ...") calls by BUG() ones
  run-command: use BUG() to report bugs, not die()
  test-tool: help verifying BUG() code paths
</content>
</entry>
<entry>
<title>Merge branch 'en/rename-directory-detection-reboot'</title>
<updated>2018-05-23T05:38:19Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2018-05-23T05:38:19Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=c67de747f44c149747f1f4ce5f6d5d6659ba0fbc'/>
<id>urn:sha1:c67de747f44c149747f1f4ce5f6d5d6659ba0fbc</id>
<content type='text'>
Rename detection logic in "diff" family that is used in "merge" has
learned to guess when all of x/a, x/b and x/c have moved to z/a,
z/b and z/c, it is likely that x/d added in the meantime would also
want to move to z/d by taking the hint that the entire directory
'x' moved to 'z'.  A bug causing dirty files involved in a rename
to be overwritten during merge has also been fixed as part of this
work.  Incidentally, this also avoids updating a file in the
working tree after a (non-trivial) merge whose result matches what
our side originally had.

* en/rename-directory-detection-reboot: (36 commits)
  merge-recursive: fix check for skipability of working tree updates
  merge-recursive: make "Auto-merging" comment show for other merges
  merge-recursive: fix remainder of was_dirty() to use original index
  merge-recursive: fix was_tracked() to quit lying with some renamed paths
  t6046: testcases checking whether updates can be skipped in a merge
  merge-recursive: avoid triggering add_cacheinfo error with dirty mod
  merge-recursive: move more is_dirty handling to merge_content
  merge-recursive: improve add_cacheinfo error handling
  merge-recursive: avoid spurious rename/rename conflict from dir renames
  directory rename detection: new testcases showcasing a pair of bugs
  merge-recursive: fix remaining directory rename + dirty overwrite cases
  merge-recursive: fix overwriting dirty files involved in renames
  merge-recursive: avoid clobbering untracked files with directory renames
  merge-recursive: apply necessary modifications for directory renames
  merge-recursive: when comparing files, don't include trees
  merge-recursive: check for file level conflicts then get new name
  merge-recursive: add computation of collisions due to dir rename &amp; merging
  merge-recursive: check for directory level conflicts
  merge-recursive: add get_directory_renames()
  merge-recursive: make a helper function for cleanup for handle_renames
  ...
</content>
</entry>
</feed>
