<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/strbuf.h, branch v2.22.2</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=v2.22.2</id>
<link rel='self' href='https://git.shady.money/git/atom?h=v2.22.2'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2019-04-22T02:14:43Z</updated>
<entry>
<title>Merge branch 'ps/stash-in-c'</title>
<updated>2019-04-22T02:14:43Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2019-04-22T02:14:43Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=e36adf712251a19bd2ada0016764d340dfcf2ba0'/>
<id>urn:sha1:e36adf712251a19bd2ada0016764d340dfcf2ba0</id>
<content type='text'>
"git stash" rewritten in C.

* ps/stash-in-c: (28 commits)
  tests: add a special setup where stash.useBuiltin is off
  stash: optionally use the scripted version again
  stash: add back the original, scripted `git stash`
  stash: convert `stash--helper.c` into `stash.c`
  stash: replace all `write-tree` child processes with API calls
  stash: optimize `get_untracked_files()` and `check_changes()`
  stash: convert save to builtin
  stash: make push -q quiet
  stash: convert push to builtin
  stash: convert create to builtin
  stash: convert store to builtin
  stash: convert show to builtin
  stash: convert list to builtin
  stash: convert pop to builtin
  stash: convert branch to builtin
  stash: convert drop and clear to builtin
  stash: convert apply to builtin
  stash: mention options in `show` synopsis
  stash: add tests for `git stash show` config
  stash: rename test cases to be more descriptive
  ...
</content>
</entry>
<entry>
<title>strbuf.c: add `strbuf_insertf()` and `strbuf_vinsertf()`</title>
<updated>2019-02-28T23:03:46Z</updated>
<author>
<name>Paul-Sebastian Ungureanu</name>
<email>ungureanupaulsebastian@gmail.com</email>
</author>
<published>2019-02-25T23:16:07Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=5ef264dbdbc48b44ad5fc37e7542f3dc70e3e8c5'/>
<id>urn:sha1:5ef264dbdbc48b44ad5fc37e7542f3dc70e3e8c5</id>
<content type='text'>
Implement `strbuf_insertf()` and `strbuf_vinsertf()` to
insert data using a printf format string.

Original-idea-by: Johannes Schindelin &lt;johannes.schindelin@gmx.de&gt;
Signed-off-by: Paul-Sebastian Ungureanu &lt;ungureanupaulsebastian@gmail.com&gt;
Helped-by: Johannes Sixt &lt;j6t@kdbg.org&gt;
Signed-off-by: Thomas Gummerer &lt;t.gummerer@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>strbuf.c: add `strbuf_join_argv()`</title>
<updated>2019-02-28T23:03:46Z</updated>
<author>
<name>Paul-Sebastian Ungureanu</name>
<email>ungureanupaulsebastian@gmail.com</email>
</author>
<published>2019-02-25T23:16:06Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=e71c4a88f65ca1d325f52b19bf79c3660eab50f7'/>
<id>urn:sha1:e71c4a88f65ca1d325f52b19bf79c3660eab50f7</id>
<content type='text'>
Implement `strbuf_join_argv()` to join arguments
into a strbuf.

Signed-off-by: Paul-Sebastian Ungureanu &lt;ungureanupaulsebastian@gmail.com&gt;
Signed-off-by: Thomas Gummerer &lt;t.gummerer@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>strbuf: separate callback for strbuf_expand:ing literals</title>
<updated>2019-01-29T18:03:32Z</updated>
<author>
<name>Anders Waldenborg</name>
<email>anders@0x63.nu</email>
</author>
<published>2019-01-28T21:33:36Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=fd2015b323d283c73346d70d2285a927650bb60a'/>
<id>urn:sha1:fd2015b323d283c73346d70d2285a927650bb60a</id>
<content type='text'>
Expanding '%n' and '%xNN' is generic functionality, so extract that from
the pretty.c formatter into a callback that can be reused.

No functional change intended

Signed-off-by: Anders Waldenborg &lt;anders@0x63.nu&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<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>Merge branch 'ag/rebase-i-in-c'</title>
<updated>2018-11-02T02:04:53Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2018-11-02T02:04:53Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=b49ef560ed66449d24a3fdfe25972c390bb44951'/>
<id>urn:sha1:b49ef560ed66449d24a3fdfe25972c390bb44951</id>
<content type='text'>
Rewrite of the remaining "rebase -i" machinery in C.

* ag/rebase-i-in-c:
  rebase -i: move rebase--helper modes to rebase--interactive
  rebase -i: remove git-rebase--interactive.sh
  rebase--interactive2: rewrite the submodes of interactive rebase in C
  rebase -i: implement the main part of interactive rebase as a builtin
  rebase -i: rewrite init_basic_state() in C
  rebase -i: rewrite write_basic_state() in C
  rebase -i: rewrite the rest of init_revisions_and_shortrevisions() in C
  rebase -i: implement the logic to initialize $revisions in C
  rebase -i: remove unused modes and functions
  rebase -i: rewrite complete_action() in C
  t3404: todo list with commented-out commands only aborts
  sequencer: change the way skip_unnecessary_picks() returns its result
  sequencer: refactor append_todo_help() to write its message to a buffer
  rebase -i: rewrite checkout_onto() in C
  rebase -i: rewrite setup_reflog_action() in C
  sequencer: add a new function to silence a command, except if it fails
  rebase -i: rewrite the edit-todo functionality in C
  editor: add a function to launch the sequence editor
  rebase -i: rewrite append_todo_help() in C
  sequencer: make three functions and an enum from sequencer.c public
</content>
</entry>
<entry>
<title>strbuf.h: format according to coding guidelines</title>
<updated>2018-09-29T18:21:05Z</updated>
<author>
<name>Stefan Beller</name>
<email>sbeller@google.com</email>
</author>
<published>2018-09-28T17:30:33Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=c7e5fe79b985dbe9a9bfaca5a097a4d53ab77437'/>
<id>urn:sha1:c7e5fe79b985dbe9a9bfaca5a097a4d53ab77437</id>
<content type='text'>
The previous patch suggested the strbuf header to be the leading example
of how we would want our APIs to be documented. This may lead to some
scrutiny of that code and the coding style (which is different from the
API documentation style) and hence might be taken as an example on how
to format code as well.

So let's format strbuf.h in a way that we'd like to see:
* omit the extern keyword from function declarations
* name all parameters (usually the parameters are obvious from its type,
  but consider exceptions like
  `int strbuf_getwholeline_fd(struct strbuf *, int, int);`
* break overly long lines

Signed-off-by: Stefan Beller &lt;sbeller@google.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</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>editor: add a function to launch the sequence editor</title>
<updated>2018-08-10T18:56:22Z</updated>
<author>
<name>Alban Gruin</name>
<email>alban.gruin@gmail.com</email>
</author>
<published>2018-08-10T16:51:30Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=2aed01811daee2f412b795ea539a4eb5abb69510'/>
<id>urn:sha1:2aed01811daee2f412b795ea539a4eb5abb69510</id>
<content type='text'>
As part of the rewrite of interactive rebase, the sequencer will need to
open the sequence editor to allow the user to edit the todo list.
Instead of duplicating the existing launch_editor() function, this
refactors it to a new function, launch_specified_editor(), which takes
the editor as a parameter, in addition to the path, the buffer and the
environment variables.  launch_sequence_editor() is then added to launch
the sequence editor.

Signed-off-by: Alban Gruin &lt;alban.gruin@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</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>
