Giter Site home page Giter Site logo

gitgitgadget / git Goto Github PK

View Code? Open in Web Editor NEW

This project forked from git/git

204.0 204.0 132.0 433.25 MB

GitGitGadget's Git fork. Open Pull Requests here to submit them to the Git mailing list

Home Page: https://gitgitgadget.github.io/

License: Other

Shell 38.33% Roff 0.12% Makefile 0.75% C 50.00% C++ 0.12% Perl 5.25% M4 0.17% Emacs Lisp 0.01% Python 0.79% Go 0.07% Tcl 3.84% JavaScript 0.22% CSS 0.05% Batchfile 0.04% SmPL 0.07% CMake 0.18%
hacktoberfest

git's Introduction

Contributing git.git patches via GitHub PRs

This project's goal is to make contributions to the Git project (almost) as easy as opening a GitHub PR. The idea is for users to open a Pull Request at

https://github.com/gitgitgadget/git

with a good description of their patch series. Then, the command /submit, issued via a comment on said PR will tell GitGitGadget to send the patches as mail thread to the Git mailing list, with the Pull Request's description as cover letter.

As is common, reviewers on the Git mailing list will probably ask for modifications. These should be folded into the respective commits (or inserted as stand-alone commits at an appropriate place in the patch series) via git rebase -i, followed by a force-push. Once everything is in a good shape, update the description to include information about changes performed relative to the latest patch series iteration, and then another /submit will ask GitGitGadget to send a new iteration of the patch series.

All relevant information, such as the current iteration of the patch series, the Message-ID of the sent mails, etc is stored in the Git notes in refs/notes/gitgitgadget.

Note: GitGitGadget will Cc: the original authors when sending patches on their behalf, and people mentioned in the Cc: footer of the Pull Request description.

Furthermore, for all iterations of a patch series but the first one, GitGitGadget will insert a machine-generated representation of what changed between revisions, and reply to the cover letter of the previous iteration. This patch revision diff can be supressed if the change may be too large or irrelevant by adding a Range-Diff: false footer in the Pull Request description.

For convenience of reviewers, GitGitGadget will generate tags for each iteration it sent, and push those to https://github.com/gitgitgadget/git. Links to those tags will be included in the cover letter.

git's People

Contributors

avar avatar bk2204 avatar bmwill avatar chriscool avatar denton-l avatar derrickstolee avatar dscho avatar felipec avatar gitster avatar j6t avatar jiangxin avatar jnareb avatar jonathantanmy avatar jrn avatar mhagger avatar mjg avatar newren avatar npitre avatar paulusmack avatar pclouds avatar peff avatar pks-t avatar rscharfe avatar spearce avatar stefanbeller avatar sunshineco avatar szeder avatar torvalds avatar trast avatar ttaylorr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

git's Issues

Offer an easy way to fetch/pull the branch matching the name of the current branch

When fetching from a remote, one can specify which ref(s) to fetch.

When pulling, there is even a very convenient convention to fetch and merge the "upstream branch", i.e. the one connected via git branch --set-upstream-to=<remote>/<branch>.

However, there is no convenient way to specify the name of the current branch, other than typing it out. This is a problem e.g. when working on a multi-platform contribution for the Git project itself, where the upstream branch might be origin/master, but the contributor needs work on the same branch on multiple machines. In this instance, the branch might need to be updated with git pull --rebase my-fork <current-branch>.

Let's introduce the --current-branch option for this, automagically appending the name of the current branch to the commands git fetch and git pull, allowing e.g. git pull --rebase --current-branch my-fork.

Weekly Digest (30 June, 2019 - 7 July, 2019)

Here's the Weekly Digest for gitgitgadget/git:


ISSUES

Last week 4 issues were created.
Of these, 0 issues have been closed and 4 issues are still open.

OPEN ISSUES

๐Ÿ’š #283 Follow-up on top of js/mingw-use-utf8, by dscho
๐Ÿ’š #282 contrib/completion: use __git() in bash completor to avoid aliased tools, by zaquestion
๐Ÿ’š #281 git-prompt: improve cherry-pick/revert detection, by phillipwood
๐Ÿ’š #280 Fix test bug with spaces in file owner, by derrickstolee

NOISY ISSUE

๐Ÿ”ˆ #280 Fix test bug with spaces in file owner, by derrickstolee
It received 8 comments.


PULL REQUESTS

Last week, 26 pull requests were created, updated or merged.

UPDATED PULL REQUEST

Last week, 26 pull requests were updated.
๐Ÿ’› #283 Follow-up on top of js/mingw-use-utf8, by dscho
๐Ÿ’› #282 contrib/completion: use __git() in bash completor to avoid aliased tools, by zaquestion
๐Ÿ’› #281 git-prompt: improve cherry-pick/revert detection, by phillipwood
๐Ÿ’› #280 Fix test bug with spaces in file owner, by derrickstolee
๐Ÿ’› #277 Update git-clone doc: refer to long form of the options and list short form of the options first, by kenden
๐Ÿ’› #276 t3420 remove progress from output, by phillipwood
๐Ÿ’› #275 Quieter sequencer status parsing, by phillipwood
๐Ÿ’› #267 t3404: fix a typo, by dscho
๐Ÿ’› #265 Support building with GCC v8.x/v9.x, by dscho
๐Ÿ’› #263 submodule foreach: fix recursion of options, by momoson
๐Ÿ’› #262 add -p: fix checkout -p with pathological context, by phillipwood
๐Ÿ’› #261 Create 'expire' and 'repack' verbs for git-multi-pack-index, by derrickstolee
๐Ÿ’› #254 [RFC] Create 'core.featureAdoptionRate' setting to update config defaults, by derrickstolee
๐Ÿ’› #253 Make rebase.reschedulefailedexec less overzealous, by dscho
๐Ÿ’› #220 mingw: support spawning programs with paths containing spacesnames, by dscho
๐Ÿ’› #219 Show an error if too-long paths are seen by git clean -dfx, by dscho
๐Ÿ’› #218 Give Git a HOME on Windows, by dscho
๐Ÿ’› #217 gettext(windows): always use UTF-8, by dscho
๐Ÿ’› #216 windows: avoid illegal filenames during a build, by dscho
๐Ÿ’› #215 mingw: enable GCC's stack smashing protector, by dscho
๐Ÿ’› #214 windows: embed a manifest, by dscho
๐Ÿ’› #213 diff: release all handles before running external diff, by dscho
๐Ÿ’› #184 Commit-graph: Write incremental files, by derrickstolee
๐Ÿ’› #151 Fix a test on NTFS (and probably HFS+), by dscho
๐Ÿ’› #149 Fix MSVC support, at long last, by dscho
๐Ÿ’› #147 Let's use the Win32 API more precisely, by dscho


COMMITS

Last week there were no commits.


CONTRIBUTORS

Last week there were no contributors.


STARGAZERS

Last week there were no stargazers.


RELEASES

Last week there were no releases.


That's all for last week, please ๐Ÿ‘€ Watch and โญ Star the repository gitgitgadget/git to receive next weekly updates. ๐Ÿ˜ƒ

You can also view all Weekly Digests by clicking here.

Your Weekly Digest bot. ๐Ÿ“†

Weekly Digest (9 June, 2019 - 16 June, 2019)

Here's the Weekly Digest for gitgitgadget/git:


ISSUES

Last week 7 issues were created.
Of these, 0 issues have been closed and 7 issues are still open.

OPEN ISSUES

๐Ÿ’š #267 t3404: fix a typo, by dscho
๐Ÿ’š #266 ci: split linux-gcc into linux-gcc and linux-gcc-extra, by dscho
๐Ÿ’š #265 Support building with GCC v8.x/v9.x, by dscho
๐Ÿ’š #264 Adding git-ignore command, tests, and documentation., by tstone2077
๐Ÿ’š #263 submodule foreach: fix recursion of options, by momoson
๐Ÿ’š #262 add -p: fix checkout -p with pathological context, by phillipwood
๐Ÿ’š #261 Create 'expire' and 'repack' verbs for git-multi-pack-index, by derrickstolee

NOISY ISSUE

๐Ÿ”ˆ #262 add -p: fix checkout -p with pathological context, by phillipwood
It received 11 comments.


PULL REQUESTS

Last week, 18 pull requests were created, updated or merged.

UPDATED PULL REQUEST

Last week, 18 pull requests were updated.
๐Ÿ’› #267 t3404: fix a typo, by dscho
๐Ÿ’› #266 ci: split linux-gcc into linux-gcc and linux-gcc-extra, by dscho
๐Ÿ’› #265 Support building with GCC v8.x/v9.x, by dscho
๐Ÿ’› #264 Adding git-ignore command, tests, and documentation., by tstone2077
๐Ÿ’› #263 submodule foreach: fix recursion of options, by momoson
๐Ÿ’› #262 add -p: fix checkout -p with pathological context, by phillipwood
๐Ÿ’› #261 Create 'expire' and 'repack' verbs for git-multi-pack-index, by derrickstolee
๐Ÿ’› #228 sha1-file: split OBJECT_INFO_FOR_PREFETCH, by derrickstolee
๐Ÿ’› #223 Fix racy fsmonitor, by dscho
๐Ÿ’› #221 Fix two issues pointed out by Coverity, by dscho
๐Ÿ’› #196 status: remove the empty line after hints, by johnlinp
๐Ÿ’› #189 trace2: Add variable description to git.txt, by derrickstolee
๐Ÿ’› #184 Commit-graph: Write incremental files, by derrickstolee
๐Ÿ’› #183 p4: fix "Not a valid object name HEAD0" when unshelving, by mdymike
๐Ÿ’› #151 Fix a test on NTFS (and probably HFS+), by dscho
๐Ÿ’› #145 Avoid spawning gzip in git archive, by dscho
๐Ÿ’› #142 Optimize run_diff_files()' rename detection, by dscho
๐Ÿ’› #112 Commit-graph write refactor (was: Create commit-graph file format v2), by derrickstolee


COMMITS

Last week there were 17 commits.
๐Ÿ› ๏ธ The first batch after 2.22 Signed-off-by: Junio C Hamano [email protected] by gitster
๐Ÿ› ๏ธ Merge branch 'pw/rebase-edit-message-for-replayed-merge' A "merge -c" instruction during "git rebase --rebase-merges" should give the user a chance to edit the log message, even when there is otherwise no need to create a new merge and replace the existing one (i.e. fast-forward instead), but did not. Which has been corrected. * pw/rebase-edit-message-for-replayed-merge: rebase -r: always reword merge -c by gitster
๐Ÿ› ๏ธ Merge branch 'ab/deprecate-R-for-dynpath' The way of specifying the path to find dynamic libraries at runtime has been simplified. The old default to pass -R/path/to/dir has been replaced with the new default to pass -Wl,-rpath,/path/to/dir, which is the more recent GCC uses. Those who need to build with an old GCC can still use "CC_LD_DYNPATH=-R" * ab/deprecate-R-for-dynpath: Makefile: remove the NO_R_TO_GCC_LINKER flag by gitster
๐Ÿ› ๏ธ Merge branch 'mh/import-transport-fd-fix' The ownership rule for the file descriptor to fast-import remote backend was mixed up, leading to unrelated file descriptor getting closed, which has been fixed. * mh/import-transport-fd-fix: Use xmmap_gently instead of xmmap in use_pack dup() the input fd for fast-import used for remote helpers by gitster
๐Ÿ› ๏ธ Merge branch 'ew/update-server-info' "git update-server-info" learned not to rewrite the file with the same contents. * ew/update-server-info: update-server-info: avoid needless overwrites by gitster
๐Ÿ› ๏ธ Merge branch 'jk/help-unknown-ref-fix' Improve the code to show args with potential typo that cannot be interpreted as a commit-ish. * jk/help-unknown-ref-fix: help_unknown_ref(): check for refname ambiguity help_unknown_ref(): duplicate collected refnames by gitster
๐Ÿ› ๏ธ Merge branch 'dl/format-patch-notes-config' "git format-patch" learns a configuration to set the default for its --notes= option. * dl/format-patch-notes-config: format-patch: teach format.notes config option git-format-patch.txt: document --no-notes option by gitster
๐Ÿ› ๏ธ Merge branch 'nd/merge-quit' "git merge" learned "--quit" option that cleans up the in-progress merge while leaving the working tree and the index still in a mess. * nd/merge-quit: merge: add --quit merge: remove drop_save() in favor of remove_merge_branch_state() by gitster
๐Ÿ› ๏ธ Merge branch 'ab/fail-prereqs-in-test' Developer support to emulate unsatisfied prerequisites in tests to ensure that the remainer of the tests still succeeds when tests with prerequisites are skipped. * ab/fail-prereqs-in-test: tests: add a special setup where prerequisites fail by gitster
๐Ÿ› ๏ธ Merge branch 'nd/corrupt-worktrees' "git worktree add" used to fail when another worktree connected to the same repository was corrupt, which has been corrected. * nd/corrupt-worktrees: worktree add: be tolerant of corrupt worktrees by gitster
๐Ÿ› ๏ธ Merge branch 'js/rebase-cleanup' Update supporting parts of "git rebase" to remove code that should no longer be used. * js/rebase-cleanup: rebase: fold git-rebase--common into the -p backend sequencer: the am and rebase--interactive scripts are gone .gitignore: there is no longer a built-in git-rebase--interactive t3400: stop referring to the scripted rebase Drop unused git-rebase--am.sh by gitster
๐Ÿ› ๏ธ Merge branch 'nd/worktree-name-sanitization' In recent versions of Git, per-worktree refs are exposed in refs/worktrees// hierarchy, which means that worktree names must be a valid refname component. The code now sanitizes the names given to worktrees, to make sure these refs are well-formed. * nd/worktree-name-sanitization: worktree add: sanitize worktree names by gitster
๐Ÿ› ๏ธ Merge branch 'en/fast-export-encoding' The "git fast-export/import" pair has been taught to handle commits with log messages in encoding other than UTF-8 better. * en/fast-export-encoding: fast-export: do automatic reencoding of commit messages only if requested fast-export: differentiate between explicitly UTF-8 and implicitly UTF-8 fast-export: avoid stripping encoding header if we cannot reencode fast-import: support 'encoding' commit header t9350: fix encoding test to actually test reencoding by gitster
๐Ÿ› ๏ธ Merge branch 'jk/unused-params-final-batch' * jk/unused-params-final-batch: verify-commit: simplify parameters to run_gpg_verify() show-branch: drop unused parameter from show_independent() rev-list: drop unused void pointer from finish_commit() remove_all_fetch_refspecs(): drop unused "remote" parameter receive-pack: drop unused "commands" from prepare_shallow_update() pack-objects: drop unused rev_info parameters name-rev: drop unused parameters from is_better_name() mktree: drop unused length parameter wt-status: drop unused status parameter read-cache: drop unused parameter from threaded load clone: drop dest parameter from copy_alternates() submodule: drop unused prefix parameter from some functions builtin: consistently pass cmd_* prefix to parse_options cmd_{read,write}_tree: rename "unused" variable that is used by gitster
๐Ÿ› ๏ธ Merge branch 'sb/format-patch-base-patch-id-fix' The "--base" option of "format-patch" computed the patch-ids for prerequisite patches in an unstable way, which has been updated to compute in a way that is compatible with "git patch-id --stable". * sb/format-patch-base-patch-id-fix: format-patch: make --base patch-id output stable format-patch: inform user that patch-id generation is unstable by gitster
๐Ÿ› ๏ธ Merge branch 'nd/init-relative-template-fix' A relative pathname given to "git init --template= " ought to be relative to the directory "git init" gets invoked in, but it instead was made relative to the repository, which has been corrected. * nd/init-relative-template-fix: init: make --template path relative to $CWD by gitster
๐Ÿ› ๏ธ Merge branch 'ab/send-email-transferencoding-fix' Since "git send-email" learned to take 'auto' as the value for the transfer-encoding, it by mistake stopped honoring the values given to the configuration variables sendemail.transferencoding and/or sendemail..transferencoding. This has been corrected to (finally) redoing the order of setting the default, reading the configuration and command line options. * ab/send-email-transferencoding-fix: send-email: fix regression in sendemail.identity parsing send-email: document --no-[to|cc|bcc] send-email: fix broken transferEncoding tests send-email: remove cargo-culted multi-patch pattern in tests send-email: do defaults -> config -> getopt in that order send-email: rename the @bcclist variable for consistency send-email: move the read_config() function above getopts by gitster


CONTRIBUTORS

Last week there was 1 contributor.
๐Ÿ‘ค gitster


STARGAZERS

Last week there were no stargazers.


RELEASES

Last week there were no releases.


That's all for last week, please ๐Ÿ‘€ Watch and โญ Star the repository gitgitgadget/git to receive next weekly updates. ๐Ÿ˜ƒ

You can also view all Weekly Digests by clicking here.

Your Weekly Digest bot. ๐Ÿ“†

Don't run Cocci on compat/ files that are pulled externally

Since some files in compat/ are pulled externally, ideally we should not update them unless absolutely necessary. As a result, we should find what these files are and blacklist Cocci from being run on them.

One thing to consider, some files are Windows-only and are never Coccinelled whenever we compile on Windows. Do we want to make Cocci run on all files, regardless of whether or not they're compilable on the current platform? Upside is that Szeder found some files that could be patched that we weren't catching. Downside is that there is no way to test the code to ensure that it works properly.

Another stretch goal is to do the extern removal on files that we do own in compat/, since those were explicitly excluded during the big extern cleanup since those were intentionally excluded in b199d71 (.[ch]: remove extern from function declarations using sed, 2019-04-29) and 5545442 (.[ch]: remove extern from function declarations using spatch, 2019-04-29).

Implement command-line options to change `branch.<name>.remote/pushRemote` configs

Perhaps something like --set-remote-to, --set-push-remote-to, --set-remote-save-to-push?

For the last, this would behave similarly to f39a9c6 (remote: add --save-to-push option to git remote set-url, 2018-12-10).

That option is useful for a situation such as mirroring. Consider if I wanted to mirror an upstream branch on my own remote. I would have something such as

[branch "master"]
    remote = "upstream"
    pushRemote = "origin"

in my config.

We could make this efficient to setup by doing:

git checkout master # is currently tracking origin's master
git branch --set-remote-save-to-push upstream

This is already implemented here but I think this idea might be a little too stupid to contribute. Maybe I'll send it in one day...

Make Git subcommand documentation more consistent

In remote's documentation, in the Synopsis, the subcommands (add, remove, etc...) are underlined and Commands section, they are also underlined.

In submodule, the subcommands are not underlined in both they Synopsis and the Commands sections.

In worktree, the subcommands are underlined in the Synopsis but not in the Commands section.

I'm sure there are other Git commands that have subcommands and their documentation is probably all over the place as well. Anyway, we should look over this, find one style to stick with and standardise it for all the documentation.

Invent a way to retain reflogs for a while after the ref was deleted

It is a bit of a sad story that reflogs are deleted the moment the ref is deleted. So there is no easy "undo" there, even when the user has an "Ooops, I needed that branch and its reflog!" moment.

This will require a sane design around ref-less reflogs that can be garbage-collected after a configurable time.

Weekly Digest (26 May, 2019 - 2 June, 2019)

Here's the Weekly Digest for gitgitgadget/git:


ISSUES

Last week 26 issues were created.
Of these, 2 issues have been closed and 24 issues are still open.

OPEN ISSUES

๐Ÿ’š #251 Turn the fetch_if_missing global into a field of struct repository, by dscho
๐Ÿ’š #250 Implement command-line options to change branch.<name>.remote/pushRemote configs, by Denton-L
๐Ÿ’š #249 Make git diff .. less confusing for newbies, by Denton-L
๐Ÿ’š #248 Don't run Cocci on compat/ files that are pulled externally, by Denton-L
๐Ÿ’š #247 format.outputDirectory should be based on the top of the repository, by Denton-L
๐Ÿ’š #246 Make Git subcommand documentation more consistent, by Denton-L
๐Ÿ’š #245 Investigate -Wformat-signedness, by Denton-L
๐Ÿ’š #244 Fix formatting of config values in documentation, by Denton-L
๐Ÿ’š #243 Document --stdin (and other options in setup_revisions), by Denton-L
๐Ÿ’š #242 Split the linux-gcc in our CI builds into two separate jobs, by dscho
๐Ÿ’š #241 Fix flaky "t0021.15 required process filter should filter data", by dscho
๐Ÿ’š #240 Fix flaky "t5516.81 deny fetch unreachable SHA1, allowtipsha1inwant=false", by dscho
๐Ÿ’š #239 some PRs need effective rebasing between gfs and upstream git., by PhilipOakley
๐Ÿ’š #238 Document that Unspecified options should initialize to -1, by PhilipOakley
๐Ÿ’š #237 CodingGuidelines: recommend to use -1 for unspecified values of command-line options of config settings, by PhilipOakley
๐Ÿ’š #236 Invent a way to retain reflogs for a while after the ref was deleted, by dscho
๐Ÿ’š #235 Fix inconsistent regexp usage, by dscho
๐Ÿ’š #234 Add another set of GIT_{AUTHOR,COMMITTER}_{NAME,EMAIL} with lower priorities, by dscho
๐Ÿ’š #233 Add more config IncludeIf conditions, by dscho
๐Ÿ’š #231 Teach git stash and git commit the -A option, by dscho
๐Ÿ’š #230 Reconcile dir_exists() and is_directory(), by dscho
๐Ÿ’š #229 git-completion: sanitize the command names, by MrMebelMan
๐Ÿ’š #228 sha1-file: split OBJECT_INFO_FOR_PREFETCH, by derrickstolee
๐Ÿ’š #226 bundle verify: improve the user experience when called without a .git/ directory, by dscho

CLOSED ISSUES

โค๏ธ #232 Having grep support the -o option like GNU grep et al, by dscho
โค๏ธ #227 Deprecate git rebase -p even more, by dscho

NOISY ISSUE

๐Ÿ”ˆ #227 Deprecate git rebase -p even more, by dscho
It received 12 comments.


PULL REQUESTS

Last week, 16 pull requests were created, updated or merged.

UPDATED PULL REQUEST

Last week, 16 pull requests were updated.
๐Ÿ’› #238 Document that Unspecified options should initialize to -1, by PhilipOakley
๐Ÿ’› #229 git-completion: sanitize the command names, by MrMebelMan
๐Ÿ’› #228 sha1-file: split OBJECT_INFO_FOR_PREFETCH, by derrickstolee
๐Ÿ’› #226 bundle verify: improve the user experience when called without a .git/ directory, by dscho
๐Ÿ’› #223 Fix racy fsmonitor, by dscho
๐Ÿ’› #221 Fix two issues pointed out by Coverity, by dscho
๐Ÿ’› #219 Show an error if too-long paths are seen by git clean -dfx, by dscho
๐Ÿ’› #208 Close commit-graph before calling 'gc', by derrickstolee
๐Ÿ’› #196 status: remove the empty line after hints, by johnlinp
๐Ÿ’› #195 Drop support for git rebase --preserve-merges, by dscho
๐Ÿ’› #194 Clean up after the removal of the scripted rebase, by dscho
๐Ÿ’› #189 trace2: Add variable description to git.txt, by derrickstolee
๐Ÿ’› #184 [RFC] Commit-graph: Write incremental files, by derrickstolee
๐Ÿ’› #183 p4: fix "Not a valid object name HEAD0" when unshelving, by mdymike
๐Ÿ’› #177 documentation: add lab for first contribution, by nasamuffin
๐Ÿ’› #112 Commit-graph write refactor (was: Create commit-graph file format v2), by derrickstolee


COMMITS

Last week there were 23 commits.
๐Ÿ› ๏ธ Git 2.22-rc2 Signed-off-by: Junio C Hamano [email protected] by gitster
๐Ÿ› ๏ธ Merge branch 'js/rebase-config-bitfix' * js/rebase-config-bitfix: rebase: replace incorrect logical negation by correct bitwise one by gitster
๐Ÿ› ๏ธ Merge branch 'es/doc-gitsubmodules-markup' Doc markup fix. * es/doc-gitsubmodules-markup: gitsubmodules: align html and nroff lists by gitster
๐Ÿ› ๏ธ Merge branch 'ja/diff-opt-typofix' Typofix. * ja/diff-opt-typofix: diff: fix mistake in translatable strings by gitster
๐Ÿ› ๏ธ Merge branch 'jt/clone-server-option' A brown-paper-bag bugfix to a change already in 'master'. * jt/clone-server-option: fetch-pack: send server options after command by gitster
๐Ÿ› ๏ธ Merge branch 'sg/progress-off-by-one-fix' A brown-paper-bag bugfix to a change already in 'master'. * sg/progress-off-by-one-fix: progress: avoid empty line when breaking the progress line by gitster
๐Ÿ› ๏ธ Merge branch 'js/rebase-deprecate-preserve-merges' A bit more leftover clean-up to deprepcate "rebase -p". * js/rebase-deprecate-preserve-merges: rebase docs: recommend -r over -p docs: say that --rebase=preserve is deprecated tests: mark a couple more test cases as requiring rebase -p by gitster
๐Ÿ› ๏ธ Merge branch 'sg/trace2-rename' Rename environment variables that are used to control the "trace2" mechanism to a more readable name. * sg/trace2-rename: trace2: document the supported values of GIT_TRACE2* env variables trace2: rename environment variables to GIT_TRACE2* by gitster
๐Ÿ› ๏ธ Merge branch 'jh/trace2' * jh/trace2: trace2: fix tracing when NO_PTHREADS is defined by gitster
๐Ÿ› ๏ธ Merge branch 'nd/diff-parseopt' A brown-paper-bag bugfix to a change already in 'master'. * nd/diff-parseopt: parse-options: check empty value in OPT_INTEGER and OPT_ABBREV diff-parseopt: restore -U (no argument) behavior diff-parseopt: correct variable types that are used by parseopt by gitster
๐Ÿ› ๏ธ parse-options: check empty value in OPT_INTEGER and OPT_ABBREV When parsing the argument for OPT_INTEGER and OPT_ABBREV, we check if we can parse the entire argument to a number with "if (*s)". There is one missing check: if "arg" is empty to begin with, we fail to notice. This could happen with long option by writing like git diff --inter-hunk-context= blah blah Before 16ed6c97cc (diff-parseopt: convert --inter-hunk-context, 2019-03-24), --inter-hunk-context is handled by a custom parser opt_arg() and does detect this correctly. This restores the bahvior for --inter-hunk-context and make sure all other integer options are handled the same (sane) way. For OPT_ABBREV this is new behavior. But it makes it consistent with the rest. PS. OPT_MAGNITUDE has similar code but git_parse_ulong() does detect empty "arg". So it's good to go. Signed-off-by: Nguyแป…n Thรกi Ngแปc Duy [email protected] Signed-off-by: Junio C Hamano [email protected] by pclouds
๐Ÿ› ๏ธ diff-parseopt: restore -U (no argument) behavior Before d473e2e0e8 (diff.c: convert -U|--unified, 2019-01-27), -U and --unified are implemented with a custom parser opt_arg() in diff.c. I didn't check this code carefully and not realize that it's the equivalent of PARSE_OPT_NONEG | PARSE_OPT_OPTARG. In other words, if -U is specified without any argument, the option should be accepted, and the default value should be used. Without PARSE_OPT_OPTARG, parse_options() will reject this case and cause a regression. Reported-by: Bryan Turner [email protected] Signed-off-by: Nguyแป…n Thรกi Ngแปc Duy [email protected] Signed-off-by: Junio C Hamano [email protected] by pclouds
๐Ÿ› ๏ธ diff-parseopt: correct variable types that are used by parseopt Most number-related OPT_ macros store the value in an 'int' variable. Many of the variables in 'struct diff_options' have a different type, but during the conversion to using parse_options() I failed to notice and correct. The problem was reported on s360x which is a big-endian architechture. The variable to store '-w' option in this case is xdl_opts, 'long' type, 8 bytes. But since parse_options() assumes 'int' (4 bytes), it will store bits in the wrong part of xdl_opts. The problem was found on little-endian platforms because parse_options() will accidentally store at the right part of xdl_opts. There aren't much to say about the type change (except that 'int' for xdl_opts should still be big enough, since Windows' long is the same size as 'int' and nobody has complained so far). Some safety checks may be implemented in the future to prevent class of bugs. Reported-by: Todd Zullinger [email protected] Signed-off-by: Nguyแป…n Thรกi Ngแปc Duy [email protected] Signed-off-by: Junio C Hamano [email protected] by pclouds
๐Ÿ› ๏ธ rebase docs: recommend -r over -p The --preserve-merges option is now deprecated in favor of --rebase-merges; Let's stop recommending the former. Signed-off-by: Johannes Schindelin [email protected] Signed-off-by: Junio C Hamano [email protected] by dscho
๐Ÿ› ๏ธ docs: say that --rebase=preserve is deprecated As of Git v2.22.0, the --preserve-merges backend of git rebase will be officially deprecated in favor of the --rebase-merges backend. Consequently, git pull --rebase=preserve will also be deprected. State this explicitly. Signed-off-by: Johannes Schindelin [email protected] Signed-off-by: Junio C Hamano [email protected] by dscho
๐Ÿ› ๏ธ tests: mark a couple more test cases as requiring rebase -p The --preserve-merges option has been deprecated, and as a consequence we started to mark test cases that require that option to be supported, in preparation for removing that support eventually. Since we marked those test cases, a couple more crept into the test suite, and with this patch, we mark them, too. Signed-off-by: Johannes Schindelin [email protected] Signed-off-by: Junio C Hamano [email protected] by dscho
๐Ÿ› ๏ธ fetch-pack: send server options after command Currently, if any server options are specified during a protocol v2 fetch, server options will be sent before "command=fetch". Write server options to the request buffer in send_fetch_request() so that the components of the request are sent in the correct order. The protocol documentation states that the command must come first. The Git server implementation in serve.c (see process_request() in that file) tolerates any order of command and capability, which is perhaps why we haven't noticed this. This was noticed when testing against a JGit server implementation, which follows the documentation in this regard. Signed-off-by: Jonathan Tan [email protected] Acked-by: Jonathan Nieder [email protected] Signed-off-by: Junio C Hamano [email protected] by jonathantanmy
๐Ÿ› ๏ธ trace2: fix tracing when NO_PTHREADS is defined Teach trace2 TLS code to not rely on pthread_getspecific() when NO_PTHREADS is defined. Instead, always assume the context data of the main thread. Signed-off-by: Jeff Hostetler [email protected] Signed-off-by: Junio C Hamano [email protected] by jeffhostetler
๐Ÿ› ๏ธ rebase: replace incorrect logical negation by correct bitwise one In bff014dac7d9 (builtin rebase: support the verbose and diffstat options, 2018-09-04), we added a line that wanted to remove the REBASE_DIFFSTAT bit from the flags, but it used an incorrect negation. Found by Coverity. Signed-off-by: Johannes Schindelin [email protected] Signed-off-by: Junio C Hamano [email protected] by dscho
๐Ÿ› ๏ธ progress: avoid empty line when breaking the progress line Since commit 545dc345eb (progress: break too long progress bar lines, 2019-04-12) when splitting a too long progress line, sometimes it looks as if a superfluous empty line were added between the title line and the counters. To make sure that the previously displayed progress line is completely covered up when writing the new, shorter title line, we calculate how many characters need to be overwritten with spaces. Alas, this calculation doesn't account for the newline character at the end of the new title line, and resulted in printing one more space than strictly necessary. This extra space character doesn't matter, if the length of the previous progress line was shorter than the width of the terminal. However, if the previous line matched the terminal width, then this extra space made the new line longer, effectively adding that empty line after the title line. Fix this off-by-one to avoid that spurious empty line. Signed-off-by: SZEDER Gรกbor [email protected] Signed-off-by: Junio C Hamano [email protected] by szeder
๐Ÿ› ๏ธ trace2: document the supported values of GIT_TRACE2* env variables The descriptions of the GIT_TRACE2* environment variables link to the technical docs for further details on the supported values. However, a link like this only really works if the docs are viewed in a browser and the full documentation is available. OTOH, in 'man git' there are no links to conveniently click on, and distro-shipped git packages tend to include only the man pages, while the technical docs and the docs in html format are in a separate 'git-doc' package. So let's describe the supported values to make the manpage more self-contained, but still keep the references to the technical docs because the details of the SID, and the JSON and perf output formats are definitely beyond the scope of 'man git'. Signed-off-by: SZEDER Gรกbor [email protected] Signed-off-by: Junio C Hamano [email protected] by szeder
๐Ÿ› ๏ธ trace2: rename environment variables to GIT_TRACE2* For an environment variable that is supposed to be set by users, the GIT_TR2* env vars are just too unclear, inconsistent, and ugly. Most of the established GIT_* environment variables don't use abbreviations, and in case of the few that do (GIT_DIR, GIT_COMMON_DIR, GIT_DIFF_OPTS) it's quite obvious what the abbreviations (DIR and OPTS) stand for. But what does TR stand for? Track, traditional, trailer, transaction, transfer, transformation, transition, translation, transplant, transport, traversal, tree, trigger, truncate, trust, or ...?! The trace2 facility, as the '2' suffix in its name suggests, is supposed to eventually supercede Git's original trace facility. It's reasonable to expect that the corresponding environment variables follow suit, and after the original GIT_TRACE variables they are called GIT_TRACE2; there is no such thing is 'GIT_TR'. All trace2-specific config variables are, very sensibly, in the 'trace2' section, not in 'tr2'. OTOH, we don't gain anything at all by omitting the last three characters of "trace" from the names of these environment variables. So let's rename all GIT_TR2* environment variables to GIT_TRACE2*, before they make their way into a stable release. Signed-off-by: SZEDER Gรกbor [email protected] Signed-off-by: Junio C Hamano [email protected] by szeder
๐Ÿ› ๏ธ gitsubmodules: align html and nroff lists There appears to be a bug in the toolchain generating manpages from lettered lists. When a list is enumerated with letters, the resulting nroff shows numbers instead. Mostly this is harmless, but in the case of gitsubmodules, the paragraph following the list refers back to each bullet by letter. As a result, reading this documentation via man gitsubmodules is hard to parse - readers must infer that a bug exists and a refers to 1, b refers to 2, and c refers to 3 in the list above. The problem specifically was introduced in ad47194; previously rather than generating numerated lists the bulleted area was entirely monospaced in HTML and shown in plaintext in nroff. The bug seems to exist in docbook-xml - I've reported it on May 1 via the docbook-apps mail list - but for now it may make more sense to just work around the issue. Signed-off-by: Emily Shaffer [email protected] Reviewed-by: Jonathan Nieder [email protected] Signed-off-by: Junio C Hamano [email protected] by nasamuffin


CONTRIBUTORS

Last week there were 7 contributors.
๐Ÿ‘ค gitster
๐Ÿ‘ค pclouds
๐Ÿ‘ค dscho
๐Ÿ‘ค jonathantanmy
๐Ÿ‘ค jeffhostetler
๐Ÿ‘ค szeder
๐Ÿ‘ค nasamuffin


STARGAZERS

Last week there was 1 stargazer.
โญ rafasc
You are the star! ๐ŸŒŸ


RELEASES

Last week there were no releases.


That's all for last week, please ๐Ÿ‘€ Watch and โญ Star the repository gitgitgadget/git to receive next weekly updates. ๐Ÿ˜ƒ

You can also view all Weekly Digests by clicking here.

Your Weekly Digest bot. ๐Ÿ“†

Weekly Digest (2 June, 2019 - 9 June, 2019)

Here's the Weekly Digest for gitgitgadget/git:


ISSUES

Last week 7 issues were created.
Of these, 2 issues have been closed and 5 issues are still open.

OPEN ISSUES

๐Ÿ’š #259 Add support for drop!/reword! commits to git rebase -i, by dscho
๐Ÿ’š #258 Fix flaky t5504 (in test case 9 - push with transfer.fsckobjects), by dscho
๐Ÿ’š #256 Avoid using Perl in the test suite, by dscho
๐Ÿ’š #254 [RFC] Create 'core.size=large' setting to update config defaults, by derrickstolee
๐Ÿ’š #253 Make rebase.reschedulefailedexec less overzealous, by dscho

CLOSED ISSUES

โค๏ธ #257 Fix flaky t5516-fetch-push (test case 79 - deny fetch unreachable SHA1, allowtipsha1inwant=true), by dscho
โค๏ธ #255 Improve instructions around how to set git-prompt preference variables., by ghedsouza

LIKED ISSUE

๐Ÿ‘ #253 Make rebase.reschedulefailedexec less overzealous, by dscho
It received ๐Ÿ‘ x1, ๐Ÿ˜„ x0, ๐ŸŽ‰ x0 and โค๏ธ x0.

NOISY ISSUE

๐Ÿ”ˆ #255 Improve instructions around how to set git-prompt preference variables., by ghedsouza
It received 16 comments.


PULL REQUESTS

Last week, 14 pull requests were created, updated or merged.

OPEN PULL REQUEST

Last week, 1 pull request was opened.
๐Ÿ’š #256 Avoid using Perl in the test suite, by dscho

UPDATED PULL REQUEST

Last week, 13 pull requests were updated.
๐Ÿ’› #254 [RFC] Create 'core.size=large' setting to update config defaults, by derrickstolee
๐Ÿ’› #253 Make rebase.reschedulefailedexec less overzealous, by dscho
๐Ÿ’› #228 sha1-file: split OBJECT_INFO_FOR_PREFETCH, by derrickstolee
๐Ÿ’› #223 Fix racy fsmonitor, by dscho
๐Ÿ’› #221 Fix two issues pointed out by Coverity, by dscho
๐Ÿ’› #196 status: remove the empty line after hints, by johnlinp
๐Ÿ’› #194 Clean up after the removal of the scripted rebase, by dscho
๐Ÿ’› #184 Commit-graph: Write incremental files, by derrickstolee
๐Ÿ’› #183 p4: fix "Not a valid object name HEAD0" when unshelving, by mdymike
๐Ÿ’› #151 Fix a test on NTFS (and probably HFS+), by dscho
๐Ÿ’› #149 Fix MSVC support, at long last, by dscho
๐Ÿ’› #142 Optimize run_diff_files()' rename detection, by dscho
๐Ÿ’› #112 Commit-graph write refactor (was: Create commit-graph file format v2), by derrickstolee


COMMITS

Last week there were 29 commits.
๐Ÿ› ๏ธ Git 2.22 Signed-off-by: Junio C Hamano [email protected] by gitster
๐Ÿ› ๏ธ Merge tag 'l10n-2.22.0-rnd3' of git://github.com/git-l10n/git-po l10n-2.22.0-rnd3 * tag 'l10n-2.22.0-rnd3' of git://github.com/git-l10n/git-po: (25 commits) l10n: fr.po: Review French translation l10n: de.po: Update German translation l10n: de.po: improve description of 'git reset --quiet' l10n: TEAMS: Change German translation team leader l10n: bg.po: Updated Bulgarian translation (4581t) l10n: zh_CN: Revision for git v2.22.0 l10n l10n: zh_CN: for git v2.22.0 l10n round 1~3 l10n: es: 2.22.0 round 3 l10n: it.po: Updated Italian translation l10n: fr v2.22.0 rnd 3 l10n: vi.po(4581t): Updated Vietnamese translation for v2.22.0 round 3 l10n: git.pot: v2.22.0 round 3 (3 new, 2 removed) l10n: es: 2.22.0 round 2 l10n: bg.po: Updated Bulgarian translation (4580t) l10n: vi.po(4580t): Updated Vietnamese translation for v2.22.0 round 2 l10n: fr.po v2.22.0 round 2 l10n: git.pot: v2.22.0 round 2 (6 new, 3 removed) l10n: bg.po: Updated Bulgarian translation (4577t) l10n: es: 2.22.0 round 1 l10n: vi.po(4577t): Updated Vietnamese translation for v2.22.0 round 1 ... by gitster
๐Ÿ› ๏ธ Merge branch 'fr_review' of git://github.com/jnavila/git * 'fr_review' of git://github.com/jnavila/git: l10n: fr.po: Review French translation by jiangxin
๐Ÿ› ๏ธ Merge branch 'master' of git://github.com/alshopov/git-po * 'master' of git://github.com/alshopov/git-po: l10n: bg.po: Updated Bulgarian translation (4581t) by jiangxin
๐Ÿ› ๏ธ l10n: fr.po: Review French translation Signed-off-by: Cรฉdric Malard [email protected] Signed-off-by: Jean-Noel Avila [email protected] by cmalard
๐Ÿ› ๏ธ Merge branch 'en/merge-directory-renames-fix' Recent code restructuring of merge-recursive engine introduced a regression dealing with rename/add conflict. * en/merge-directory-renames-fix: merge-recursive: restore accidentally dropped setting of path by gitster
๐Ÿ› ๏ธ l10n: de.po: Update German translation Reviewed-by: Ralf Thielow [email protected] Signed-off-by: Matthias Rรผster [email protected] by ruester
๐Ÿ› ๏ธ l10n: de.po: improve description of 'git reset --quiet' Signed-off-by: Ralf Thielow [email protected] by ralfth
๐Ÿ› ๏ธ l10n: TEAMS: Change German translation team leader Acked-by: Ralf Thielow [email protected] Signed-off-by: Matthias Rรผster [email protected] by ruester
๐Ÿ› ๏ธ merge-recursive: restore accidentally dropped setting of path In commit 8daec1df03de ("merge-recursive: switch from (oid,mode) pairs to a diff_filespec", 2019-04-05), we actually switched from (oid,mode,path) triplets to a diff_filespec -- but most callsites in the patch only needed to worry about oid and mode so the commit message focused on that. The oversight in the commit message apparently spilled over to the code as well; one of the dozen or so callsites accidentally dropped the setting of the path in the conversion. Restore the path setting in that location. Also, this pointed out that our testsuite was lacking a good rename/add test, at least one that involved the need for merge content with the rename. Add such a test, and since rename/add vs. add/rename could possibly be important, redo the merge the opposite direction to make sure we don't have issues with the direction of the merge. These testcases failed before restoring the setting of path, but with the paths appropriately set the testcases both pass. Reported-by: Ben Humphreys [email protected] Based-on-patch-by: SZEDER Gรกbor [email protected] Tested-by: Ben Humphreys [email protected] Signed-off-by: Elijah Newren [email protected] Signed-off-by: Junio C Hamano [email protected] by newren
๐Ÿ› ๏ธ l10n: bg.po: Updated Bulgarian translation (4581t) Signed-off-by: Alexander Shopov [email protected] by alshopov
๐Ÿ› ๏ธ l10n: zh_CN: Revision for git v2.22.0 l10n Revise 51 translations, improving consistency for some phrased. Update email address for Fangyi Zhou Signed-off-by: Fangyi Zhou [email protected] Signed-off-by: Jiang Xin [email protected] by fangyi-zhou
๐Ÿ› ๏ธ l10n: zh_CN: for git v2.22.0 l10n round 1~3 Translate 274 new messages (4581t0f0u) for git 2.22.0. Signed-off-by: Jiang Xin [email protected] by jiangxin
๐Ÿ› ๏ธ Merge branch '2.22' of https://github.com/ChrisADR/git-po * '2.22' of https://github.com/ChrisADR/git-po: l10n: es: 2.22.0 round 3 by jiangxin
๐Ÿ› ๏ธ Merge branch 'it-l10n-wip' of github.com:AlessandroMenti/git-po * 'it-l10n-wip' of github.com:AlessandroMenti/git-po: l10n: it.po: Updated Italian translation by jiangxin
๐Ÿ› ๏ธ l10n: es: 2.22.0 round 3 Signed-off-by: Christopher Diaz Riveros [email protected] by ChrisADR
๐Ÿ› ๏ธ l10n: it.po: Updated Italian translation Signed-off-by: Alessandro Menti [email protected] by AlessandroMenti
๐Ÿ› ๏ธ l10n: fr v2.22.0 rnd 3 Signed-off-by: Jean-Noรซl Avila [email protected] by jnavila
๐Ÿ› ๏ธ l10n: vi.po(4581t): Updated Vietnamese translation for v2.22.0 round 3 Signed-off-by: Tran Ngoc Quan [email protected] by vnwildman
๐Ÿ› ๏ธ l10n: git.pot: v2.22.0 round 3 (3 new, 2 removed) Generate po/git.pot from v2.22.0-rc3 for git v2.22.0 l10n round 3. Signed-off-by: Jiang Xin [email protected] by jiangxin
๐Ÿ› ๏ธ Merge branch 'master' of git://git.kernel.org/pub/scm/git/git * 'master' of git://git.kernel.org/pub/scm/git/git: Git 2.22-rc3 i18n: fix typos found during l10n for git 2.22.0 RelNotes: minor typo fixes in 2.22.0 draft list-objects-filter: disable 'sparse:path' filters by jiangxin
๐Ÿ› ๏ธ Git 2.22-rc3 Signed-off-by: Junio C Hamano [email protected] by gitster
๐Ÿ› ๏ธ Merge branch 'cc/list-objects-filter-wo-sparse-path' Disable "--filter=sparse:path=" that would allow reading from paths on the filesystem. * cc/list-objects-filter-wo-sparse-path: list-objects-filter: disable 'sparse:path' filters by gitster
๐Ÿ› ๏ธ i18n: fix typos found during l10n for git 2.22.0 Fix two typos introduced by the following commits: + 31fba9d3b4 (diff-parseopt: convert --[src|dst]-prefix, 2019-03-24) + ed8b4132c8 (remote-curl: mark all error messages for translation, 2019-03-05) Signed-off-by: Jiang Xin [email protected] Acked-by: Johannes Schindelin [email protected] Signed-off-by: Junio C Hamano [email protected] by jiangxin
๐Ÿ› ๏ธ RelNotes: minor typo fixes in 2.22.0 draft Signed-off-by: Todd Zullinger [email protected] Signed-off-by: Junio C Hamano [email protected] by tmzullinger
๐Ÿ› ๏ธ l10n: es: 2.22.0 round 2 Signed-off-by: Christopher Diaz Riveros [email protected] by ChrisADR
๐Ÿ› ๏ธ Merge branch 'master' of https://github.com/vnwildman/git * 'master' of https://github.com/vnwildman/git: l10n: vi.po(4580t): Updated Vietnamese translation for v2.22.0 round 2 by jiangxin
๐Ÿ› ๏ธ Merge branch 'master' of git://github.com/alshopov/git-po * 'master' of git://github.com/alshopov/git-po: l10n: bg.po: Updated Bulgarian translation (4580t) by jiangxin
๐Ÿ› ๏ธ l10n: bg.po: Updated Bulgarian translation (4580t) Signed-off-by: Alexander Shopov [email protected] by alshopov


CONTRIBUTORS

Last week there were 13 contributors.
๐Ÿ‘ค gitster
๐Ÿ‘ค jiangxin
๐Ÿ‘ค cmalard
๐Ÿ‘ค ruester
๐Ÿ‘ค ralfth
๐Ÿ‘ค newren
๐Ÿ‘ค alshopov
๐Ÿ‘ค fangyi-zhou
๐Ÿ‘ค ChrisADR
๐Ÿ‘ค AlessandroMenti
๐Ÿ‘ค jnavila
๐Ÿ‘ค vnwildman
๐Ÿ‘ค tmzullinger


STARGAZERS

Last week there were no stargazers.


RELEASES

Last week there were no releases.


That's all for last week, please ๐Ÿ‘€ Watch and โญ Star the repository gitgitgadget/git to receive next weekly updates. ๐Ÿ˜ƒ

You can also view all Weekly Digests by clicking here.

Your Weekly Digest bot. ๐Ÿ“†

Fix inconsistent regexp usage

If you supply --perl-regexp to git log it only applies to --grep. The documentation says "Consider the limiting patterns to be Perl-compatible regular expressions". Which might lead you to think that e.g. -G uses it too. It doesn't, only grep.c does PCRE, but -G is handled by diffcore-pickaxe.c.

Looking at git grep -l regexec -- '*.c' this whole thing is a mess. Ideally you should be able to say you want to use PCRE for everything, except maybe things that end up in your .gitconfig or e.g. the diff driver. But we could really use a more generic regexp interface.

In general Git's regexp use is a huge mess, e.g. there's --regexp-ignore-case but no way to supply various other regexp options like REG_NEWLINE or PCRE options consistently.

Copy-munged from: https://public-inbox.org/git/CACBZZX5wdnA-96e11edE7xRnAHo19RFTrZmqFQj-0ogLOJTncQ@mail.gmail.com/

Weekly Digest (23 June, 2019 - 30 June, 2019)

Here's the Weekly Digest for gitgitgadget/git:


ISSUES

Last week 4 issues were created.
Of these, 1 issues have been closed and 3 issues are still open.

OPEN ISSUES

๐Ÿ’š #277 Update git-clone doc: refer to long option, by kenden
๐Ÿ’š #276 t3420 remove progress from output, by phillipwood
๐Ÿ’š #275 Quieter sequencer status parsing, by phillipwood

CLOSED ISSUES

โค๏ธ #278 l10n: de.po: Fix German translation, by derphilipp

NOISY ISSUE

๐Ÿ”ˆ #275 Quieter sequencer status parsing, by phillipwood
It received 13 comments.


PULL REQUESTS

Last week, 22 pull requests were created, updated or merged.

UPDATED PULL REQUEST

Last week, 22 pull requests were updated.
๐Ÿ’› #277 Update git-clone doc: refer to long option, by kenden
๐Ÿ’› #275 Quieter sequencer status parsing, by phillipwood
๐Ÿ’› #273 fetch: add --[no-]show-forced-updates, by derrickstolee
๐Ÿ’› #272 git-status: create config for ahead/behind calculation, by derrickstolee
๐Ÿ’› #269 Wip/fixย  continue/ skipย inย synopsis, by phillipwood
๐Ÿ’› #267 t3404: fix a typo, by dscho
๐Ÿ’› #266 ci: split linux-gcc into linux-gcc and linux-gcc-extra, by dscho
๐Ÿ’› #265 Support building with GCC v8.x/v9.x, by dscho
๐Ÿ’› #263 submodule foreach: fix recursion of options, by momoson
๐Ÿ’› #262 add -p: fix checkout -p with pathological context, by phillipwood
๐Ÿ’› #261 Create 'expire' and 'repack' verbs for git-multi-pack-index, by derrickstolee
๐Ÿ’› #254 [RFC] Create 'core.featureAdoptionRate' setting to update config defaults, by derrickstolee
๐Ÿ’› #253 Make rebase.reschedulefailedexec less overzealous, by dscho
๐Ÿ’› #217 gettext(windows): always use UTF-8, by dscho
๐Ÿ’› #215 mingw: enable GCC's stack smashing protector, by dscho
๐Ÿ’› #214 windows: embed a manifest, by dscho
๐Ÿ’› #184 Commit-graph: Write incremental files, by derrickstolee
๐Ÿ’› #151 Fix a test on NTFS (and probably HFS+), by dscho
๐Ÿ’› #149 Fix MSVC support, at long last, by dscho
๐Ÿ’› #147 Let's use the Win32 API more precisely, by dscho
๐Ÿ’› #123 fixup! trace2: collect Windows-specific process information, by jeffhostetler
๐Ÿ’› #112 Commit-graph write refactor (was: Create commit-graph file format v2), by derrickstolee


COMMITS

Last week there were no commits.


CONTRIBUTORS

Last week there were no contributors.


STARGAZERS

Last week there were no stargazers.


RELEASES

Last week there were no releases.


That's all for last week, please ๐Ÿ‘€ Watch and โญ Star the repository gitgitgadget/git to receive next weekly updates. ๐Ÿ˜ƒ

You can also view all Weekly Digests by clicking here.

Your Weekly Digest bot. ๐Ÿ“†

Weekly Digest (16 June, 2019 - 23 June, 2019)

Here's the Weekly Digest for gitgitgadget/git:


ISSUES

Last week 5 issues were created.
Of these, 1 issues have been closed and 4 issues are still open.

OPEN ISSUES

๐Ÿ’š #273 fetch: add --[no-]show-forced-updates, by derrickstolee
๐Ÿ’š #272 git-status: create config for ahead/behind calculation, by derrickstolee
๐Ÿ’š #271 refactor: rename is_directory() to dir_exists() and use it in clone.c, by johnlinp
๐Ÿ’š #269 Wip/fixย  continue/ skipย inย synopsis, by phillipwood

CLOSED ISSUES

โค๏ธ #270 blame: read diff config, by derrickstolee

NOISY ISSUE

๐Ÿ”ˆ #273 fetch: add --[no-]show-forced-updates, by derrickstolee
It received 3 comments.


PULL REQUESTS

Last week, 16 pull requests were created, updated or merged.

UPDATED PULL REQUEST

Last week, 16 pull requests were updated.
๐Ÿ’› #273 fetch: add --[no-]show-forced-updates, by derrickstolee
๐Ÿ’› #272 git-status: create config for ahead/behind calculation, by derrickstolee
๐Ÿ’› #271 refactor: rename is_directory() to dir_exists() and use it in clone.c, by johnlinp
๐Ÿ’› #269 Wip/fixย  continue/ skipย inย synopsis, by phillipwood
๐Ÿ’› #267 t3404: fix a typo, by dscho
๐Ÿ’› #265 Support building with GCC v8.x/v9.x, by dscho
๐Ÿ’› #264 Adding git-ignore command, tests, and documentation., by tstone2077
๐Ÿ’› #263 submodule foreach: fix recursion of options, by momoson
๐Ÿ’› #262 add -p: fix checkout -p with pathological context, by phillipwood
๐Ÿ’› #261 Create 'expire' and 'repack' verbs for git-multi-pack-index, by derrickstolee
๐Ÿ’› #254 [RFC] Create 'core.featureAdoptionRate' setting to update config defaults, by derrickstolee
๐Ÿ’› #196 status: remove the empty line after hints, by johnlinp
๐Ÿ’› #184 Commit-graph: Write incremental files, by derrickstolee
๐Ÿ’› #151 Fix a test on NTFS (and probably HFS+), by dscho
๐Ÿ’› #149 Fix MSVC support, at long last, by dscho
๐Ÿ’› #112 Commit-graph write refactor (was: Create commit-graph file format v2), by derrickstolee


COMMITS

Last week there were 31 commits.
๐Ÿ› ๏ธ The third batch Signed-off-by: Junio C Hamano [email protected] by gitster
๐Ÿ› ๏ธ Merge branch 'mo/clang-format-for-each-update' The list of for-each like macros used by clang-format has been updated. * mo/clang-format-for-each-update: clang-format: use git grep to generate the ForEachMacros list by gitster
๐Ÿ› ๏ธ Merge branch 'md/url-parse-harden' The URL decoding code has been updated to avoid going past the end of the string while parsing %-- sequence. * md/url-parse-harden: url: do not allow %00 to represent NUL in URLs url: do not read past end of buffer by gitster
๐Ÿ› ๏ธ Merge branch 'an/ignore-doc-update' The description about slashes in gitignore patterns (used to indicate things like "anchored to this level only" and "only matches directories") has been revamped. * an/ignore-doc-update: gitignore.txt: make slash-rules more readable by gitster
๐Ÿ› ๏ธ Merge branch 'ab/hash-object-doc' Doc update. * ab/hash-object-doc: hash-object doc: stop mentioning git-cvsimport by gitster
๐Ÿ› ๏ธ Merge branch 'cm/send-email-document-req-modules' A doc update. * cm/send-email-document-req-modules: send-email: update documentation of required Perl modules by gitster
๐Ÿ› ๏ธ Merge branch 'md/list-objects-filter-parse-msgfix' Make an end-user facing message localizable. * md/list-objects-filter-parse-msgfix: list-objects-filter-options: error is localizeable by gitster
๐Ÿ› ๏ธ Merge branch 'md/list-objects-filter-memfix' The filter_data used in the list-objects-filter (which manages a lazily sparse clone repository) did not use the dynamic array API correctly---'nr' is supposed to point at one past the last element of the array in use. This has been corrected. * md/list-objects-filter-memfix: list-objects-filter: correct usage of ALLOC_GROW by gitster
๐Ÿ› ๏ธ Merge branch 'jt/partial-clone-missing-ref-delta-base' "git fetch" into a lazy clone forgot to fetch base objects that are necessary to complete delta in a thin packfile, which has been corrected. * jt/partial-clone-missing-ref-delta-base: t5616: cover case of client having delta base t5616: use correct flag to check object is missing index-pack: prefetch missing REF_DELTA bases t5616: refactor packfile replacement by gitster
๐Ÿ› ๏ธ Merge branch 'ml/userdiff-rust' The pattern "git diff/grep" use to extract funcname and words boundary for Rust has been added. * ml/userdiff-rust: userdiff: two simplifications of patterns for rust userdiff: add built-in pattern for rust by gitster
๐Ÿ› ๏ธ The second batch Signed-off-by: Junio C Hamano [email protected] by gitster
๐Ÿ› ๏ธ Merge branch 'xl/record-partial-clone-origin' When creating a partial clone, the object filtering criteria is recorded for the origin of the clone, but this incorrectly used a hardcoded name "origin" to name that remote; it has been corrected to honor the "--origin " option. * xl/record-partial-clone-origin: clone: respect user supplied origin name when setting up partial clone by gitster
๐Ÿ› ๏ธ Merge branch 'pb/request-pull-verify-remote-ref' "git request-pull" learned to warn when the ref we ask them to pull from in the local repository and in the published repository are different. * pb/request-pull-verify-remote-ref: request-pull: warn if the remote object is not the same as the local one request-pull: quote regex metacharacters in local ref by gitster
๐Ÿ› ๏ธ Merge branch 'mm/p4-unshelve-windows-fix' The command line to invoke a "git cat-file" command from inside "git p4" was not properly quoted to protect a caret and running a broken command on Windows, which has been corrected. * mm/p4-unshelve-windows-fix: p4 unshelve: fix "Not a valid object name HEAD0" on Windows by gitster
๐Ÿ› ๏ธ Merge branch 'po/git-help-on-git-itself' "git help git" was hard to discover (well, at least for some people). * po/git-help-on-git-itself: Doc: git.txt: remove backticks from link and add git-scm.com/docs git.c: show usage for accessing the git(1) help page by gitster
๐Ÿ› ๏ธ Merge branch 'es/first-contrib-tutorial' A new tutorial targetting specifically aspiring git-core developers. * es/first-contrib-tutorial: doc: add some nit fixes to MyFirstContribution documentation: add anchors to MyFirstContribution documentation: add tutorial for first contribution by gitster
๐Ÿ› ๏ธ Merge branch 'bb/unicode-12.1-reiwa' Update to Unicode 12.1 width table. * bb/unicode-12.1-reiwa: unicode: update the width tables to Unicode 12.1 by gitster
๐Ÿ› ๏ธ Merge branch 'sw/git-p4-unshelve-branched-files' "git p4" update. * sw/git-p4-unshelve-branched-files: git-p4: allow unshelving of branched files by gitster
๐Ÿ› ๏ธ Merge branch 'js/fsmonitor-unflake' The data collected by fsmonitor was not properly written back to the on-disk index file, breaking t7519 tests occasionally, which has been corrected. * js/fsmonitor-unflake: mark_fsmonitor_valid(): mark the index as changed if needed fill_stat_cache_info(): prepare for an fsmonitor fix by gitster
๐Ÿ› ๏ธ Merge branch 'ds/topo-traversal-using-commit-graph' Prepare use of reachability index in topological walker that works on a range (A..B). * ds/topo-traversal-using-commit-graph: revision: keep topo-walk free of unintersting commits revision: use generation for A..B --topo-order queries by gitster
๐Ÿ› ๏ธ Merge branch 'bl/userdiff-octave' The pattern "git diff/grep" use to extract funcname and words boundary for Matlab has been extend to cover Octave, which is more or less equivalent. * bl/userdiff-octave: userdiff: fix grammar and style issues userdiff: add Octave by gitster
๐Ÿ› ๏ธ Merge branch 'ba/clone-remote-submodules' "git clone --recurse-submodules" learned to set up the submodules to ignore commit object names recorded in the superproject gitlink and instead use the commits that happen to be at the tip of the remote-tracking branches from the get-go, by passing the new "--remote-submodules" option. * ba/clone-remote-submodules: clone: add --remote-submodules flag by gitster
๐Ÿ› ๏ธ Merge branch 'vv/merge-squash-with-explicit-commit' "git merge --squash" is designed to update the working tree and the index without creating the commit, and this cannot be countermanded by adding the "--commit" option; the command now refuses to work when both options are given. * vv/merge-squash-with-explicit-commit: merge: refuse --commit with --squash by gitster
๐Ÿ› ๏ธ Merge branch 'js/bundle-verify-require-object-store' "git bundle verify" needs to see if prerequisite objects exist in the receiving repository, but the command did not check if we are in a repository upfront, which has been corrected. * js/bundle-verify-require-object-store: bundle verify: error out if called without an object database by gitster
๐Ÿ› ๏ธ Merge branch 'js/bisect-helper-check-get-oid-return-value' Code cleanup. * js/bisect-helper-check-get-oid-return-value: bisect--helper: verify HEAD could be parsed before continuing by gitster
๐Ÿ› ๏ธ Merge branch 'jk/am-i-resolved-fix' "git am -i --resolved" segfaulted after trying to see a commit as if it were a tree, which has been corrected. * jk/am-i-resolved-fix: am: fix --interactive HEAD tree resolution am: drop tty requirement for --interactive am: read interactive input from stdin am: simplify prompt response handling by gitster
๐Ÿ› ๏ธ Merge branch 'jk/HEAD-symref-in-xfer-namespaces' The server side support for "git fetch" used to show incorrect value for the HEAD symbolic ref when the namespace feature is in use, which has been corrected. * jk/HEAD-symref-in-xfer-namespaces: upload-pack: strip namespace from symref data by gitster
๐Ÿ› ๏ธ Merge branch 'ew/server-info-remove-crufts' "git update-server-info" used to leave stale packfiles in its output, which has been corrected. * ew/server-info-remove-crufts: server-info: do not list unlinked packs by gitster
๐Ÿ› ๏ธ Merge branch 'es/grep-require-name-when-needed' More parameter validation. * es/grep-require-name-when-needed: grep: fail if call could output and name is null by gitster
๐Ÿ› ๏ธ Merge branch 'es/git-debugger-doc' Doc update. * es/git-debugger-doc: doc: hint about GIT_DEBUGGER in CodingGuidelines by gitster
๐Ÿ› ๏ธ Merge branch 'ds/object-info-for-prefetch-fix' Code cleanup and futureproof. * ds/object-info-for-prefetch-fix: sha1-file: split OBJECT_INFO_FOR_PREFETCH by gitster


CONTRIBUTORS

Last week there was 1 contributor.
๐Ÿ‘ค gitster


STARGAZERS

Last week there were no stargazers.


RELEASES

Last week there were no releases.


That's all for last week, please ๐Ÿ‘€ Watch and โญ Star the repository gitgitgadget/git to receive next weekly updates. ๐Ÿ˜ƒ

You can also view all Weekly Digests by clicking here.

Your Weekly Digest bot. ๐Ÿ“†

Weekly Digest (12 May, 2019 - 19 May, 2019)

Here's the Weekly Digest for gitgitgadget/git:


ISSUES

Last week 21 issues were created.
Of these, 2 issues have been closed and 19 issues are still open.

OPEN ISSUES

๐Ÿ’š #211 rebase -i: implement --reschedule, by dscho
๐Ÿ’š #210 rebase -i: error on fixup/squash when the corresponding pick was skipped, by dscho
๐Ÿ’š #209 rebase -r: implement an equivalent to skip_unnecessary_picks(), by dscho
๐Ÿ’š #208 Close commit-graph before calling 'gc', by derrickstolee
๐Ÿ’š #207 range-diff: allow comparing branches to mboxes, by dscho
๐Ÿ’š #206 range-diff: add support for --left-only and --right-only, by dscho
๐Ÿ’š #205 Offer an easy way to fetch/pull the branch matching the name of the current branch, by dscho
๐Ÿ’š #204 rebase -ir: optionally auto-update local branches when executing label commands, by dscho
๐Ÿ’š #203 git cherry-pick --pick-merges , by dscho
๐Ÿ’š #202 rebase -ir should warn (or error out) when commits were produced but not included in the final commit history, by dscho
๐Ÿ’š #201 Make OPT_RERERE_AUTOUPDATE's "unspecified" value consistent with other unspecified values, by dscho
๐Ÿ’š #200 Mention core.excludesFile in git clean's documentation, by dscho
๐Ÿ’š #199 Allow reset <tag> in git rebase -ir, by dscho
๐Ÿ’š #198 Avoid duplicate entries in git ls-files for unmerged entries, by dscho
๐Ÿ’š #197 Fix flakey t7519.15, by dscho
๐Ÿ’š #196 status: remove the empty line after hints, by johnlinp
๐Ÿ’š #195 Drop support for git rebase --preserve-merges, by dscho
๐Ÿ’š #194 Clean up after the removal of the scripted rebase, by dscho
๐Ÿ’š #191 Remove fast export munging, by newren

CLOSED ISSUES

โค๏ธ #193 Document the stash.useBuiltin escape hatch, by dscho
โค๏ธ #192 pkt-line: fix incorrect function declaration, by dscho

NOISY ISSUE

๐Ÿ”ˆ #192 pkt-line: fix incorrect function declaration, by dscho
It received 10 comments.


PULL REQUESTS

Last week, 8 pull requests were created, updated or merged.

UPDATED PULL REQUEST

Last week, 8 pull requests were updated.
๐Ÿ’› #196 status: remove the empty line after hints, by johnlinp
๐Ÿ’› #195 Drop support for git rebase --preserve-merges, by dscho
๐Ÿ’› #191 Remove fast export munging, by newren
๐Ÿ’› #189 trace2: Add variable description to git.txt, by derrickstolee
๐Ÿ’› #183 p4: fix "Not a valid object name HEAD0" when unshelving, by mdymike
๐Ÿ’› #177 documentation: add lab for first contribution, by nasamuffin
๐Ÿ’› #170 git add -i: add a rudimentary version in C (supporting only status and help so far), by dscho
๐Ÿ’› #92 Create 'expire' and 'repack' verbs for git-multi-pack-index, by derrickstolee


COMMITS

Last week there were 32 commits.
๐Ÿ› ๏ธ pkt-line: drop 'const'-ness of a param to set_packet_header() The function's definition has a paramter of type "int" qualified as "const". The fact that the incoming parameter is used as read-only in the fuction is an implementation detail that the callers should not have to be told in the prototype declaring it (and "const" there has no effect, as C passes parameters by value). The prototype defined for the function in pkt-line.h lacked the matching "const" for this reason, but apparently some compilers (e.g. MS Visual C 2017) complain about the parameter type mismatch. Let's squelch it by removing the "const" that is pointless in the definition of a small and trivial function like this, which would not help optimizing compilers nor reading humans that much. Noticed-by: Johannes Schindelin [email protected] Helped-by: Jeff King [email protected] Signed-off-by: Junio C Hamano [email protected] by gitster
๐Ÿ› ๏ธ test-lib: try harder to ensure a working jgit The JGIT prereq uses type jgit to determine whether jgit is present. While this is usually sufficient, it won't help if the jgit found is badly broken. This wastes time running tests which fail due to no fault of our own. Use jgit --version instead, to guard against cases where jgit is present on the system, but will fail to run, e.g. because of some JRE issue, or missing Java dependencies. Checking that it gets far enough to process the '--version' argument isn't perfect, but seems to be good enough in practice. It's also consistent with how we detect some other dependencies, see e.g. the CURL and UNZIP prerequisites. Signed-off-by: Todd Zullinger [email protected] Signed-off-by: Junio C Hamano [email protected] by tmzullinger
๐Ÿ› ๏ธ get_oid: handle NULL repo->index When get_oid() and its helpers see an index name like ":.gitmodules", they try to load the index on demand, like: if (repo->index->cache) repo_read_index(repo); However, that misses the case when "repo->index" itself is NULL; we'll segfault in the conditional. This never happens with the_repository; there we always point its index field to &the_index. But a submodule repository may have a NULL index field until somebody calls repo_read_index(). This bug is triggered by t7411, but it was hard to notice because it's in an expect_failure block. That test was added by 2b1257e463 (t/helper: add test-submodule-nested-repo-config, 2018-10-25). Back then we had no easy way to access the .gitmodules blob of a submodule repo, so we expected (and got) an error message to that effect. Later, d9b8b8f896 (submodule-config.c: use repo_get_oid for reading .gitmodules, 2019-04-16) started looking in the correct repo, which is when we started triggering the segfault. With this fix, the test starts passing (once we clean it up as its comment instructs). Note that as far as I know, this bug could not be triggered outside of the test suite. It requires resolving an index name in a submodule, and all of the code paths (aside from test-tool) which do that either load the index themselves, or always pass the_repository. Ultimately it comes from 3a7a698e93 (sha1-name.c: remove implicit dependency on the_index, 2019-01-12), which replaced a check of "the_index.cache" with "repo->index->cache". So even if there is another way to trigger it, it wouldn't affect any versions before then. Signed-off-by: Jeff King [email protected] Signed-off-by: Junio C Hamano [email protected] by peff
๐Ÿ› ๏ธ http-push: prevent format overflow warning with gcc >= 9 In function 'finish_request', inlined from 'process_response' at http-push.c:248:2: http-push.c:587:4: warning: '%s' directive argument is null [-Wformat-overflow=] 587 | fprintf(stderr, "Unable to get pack file %s\n%s", | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 588 | request->url, curl_errorstr); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ request->url is needed for the error message if there was a failure during fetch but was being cleared unnecessarily earlier. note that the leak is prevented by calling release_request unconditionally at the end. Signed-off-by: Carlo Marcelo Arenas Belรณn [email protected] Suggested-by: Eric Sunshine [email protected] Signed-off-by: Junio C Hamano [email protected] by carenas
๐Ÿ› ๏ธ stash: document stash.useBuiltin The stash.useBuiltin variable introduced in 90a462725e ("stash: optionally use the scripted version again", 2019-02-25) was turned on by default, but had no documentation. Let's document it so that users who run into any stability issues with the C rewrite know there's an escape hatch, and spell out that the user should please report the bug when they have to turn off the built-in stash. Signed-off-by: Johannes Schindelin [email protected] Signed-off-by: Junio C Hamano [email protected] by dscho
๐Ÿ› ๏ธ sha1dc: update from upstream Update sha1dc from the latest version by the upstream maintainer[1]. See 07a20f569b ("Makefile: fix unaligned loads in sha1dc with UBSan", 2019-03-12) for the last update. This fixes an issue where HP-UX IA64 was wrongly detected as a Little-endian instead of a Big-endian system, see [2] and [3]. 1. https://github.com/cr-marcstevens/sha1collisiondetection/commit/855827c583bc30645ba427885caa40c5b81764d2 2. https://public-inbox.org/git/[email protected]/ 3. https://github.com/cr-marcstevens/sha1collisiondetection/pull/50 Signed-off-by: ร†var Arnfjรถrรฐ Bjarmason [email protected] Signed-off-by: Junio C Hamano [email protected] by avar
๐Ÿ› ๏ธ parse-options: adjust parse_opt_unknown_cb()s declared return type In f41179f16ba2 (parse-options: avoid magic return codes, 2019-01-27), the signature of the low-level parse-opt callback function was changed to return an enum. And while the implementations were changed, one declaration was left unchanged, still claiming to return int. This can potentially lead to problems, as compilers are free to choose any integral type for an enum as long as it can represent all declared values. Signed-off-by: Johannes Schindelin [email protected] Signed-off-by: Junio C Hamano [email protected] by dscho
๐Ÿ› ๏ธ Git 2.22-rc0 Signed-off-by: Junio C Hamano [email protected] by gitster
๐Ÿ› ๏ธ Merge branch 'jh/trace2' A few embarrassing bugfixes. * jh/trace2: trace2: fix up a missing "leave" entry point trace2: fix incorrect function pointer check by gitster
๐Ÿ› ๏ธ Merge branch 'cc/access-on-aix-workaround' Workaround for standard-compliant but less-than-useful behaviour of access(2) for the root user. * cc/access-on-aix-workaround: git-compat-util: work around for access(X_OK) under root by gitster
๐Ÿ› ๏ธ Merge branch 'pw/clean-sequencer-state-upon-final-commit' "git chery-pick" (and "revert" that shares the same runtime engine) that deals with multiple commits got confused when the final step gets stopped with a conflict and the user concluded the sequence with "git commit". Attempt to fix it by cleaning up the state files used by these commands in such a situation. * pw/clean-sequencer-state-upon-final-commit: fix cherry-pick/revert status after commit commit/reset: try to clean up sequencer state by gitster
๐Ÿ› ๏ธ Merge branch 'pw/rebase-i-internal' The internal implementation of "git rebase -i" has been updated to avoid forking a separate "rebase--interactive" process. * pw/rebase-i-internal: rebase -i: run without forking rebase--interactive rebase: use a common action enum rebase -i: use struct rebase_options in do_interactive_rebase() rebase -i: use struct rebase_options to parse args rebase -i: use struct object_id for squash_onto rebase -i: use struct commit when parsing options rebase -i: remove duplication rebase -i: combine rebase--interactive.c with rebase.c rebase: use OPT_RERERE_AUTOUPDATE() rebase: rename write_basic_state() rebase: don't translate trace strings sequencer: always discard index after checkout by gitster
๐Ÿ› ๏ธ Merge branch 'jk/perf-aggregate-wo-libjson' The script to aggregate perf result unconditionally depended on libjson-perl even though it did not have to, which has been corrected. * jk/perf-aggregate-wo-libjson: t/perf: depend on perl JSON only when using --codespeed by gitster
๐Ÿ› ๏ธ Merge branch 'dl/rev-tilde-doc-clarify' Docfix. * dl/rev-tilde-doc-clarify: revisions.txt: remove ambibuity between : and : revisions.txt: mention ~ form revisions.txt: mark optional rev arguments with [] revisions.txt: change "rev" to "" by gitster
๐Ÿ› ๏ธ Merge branch 'jc/make-dedup-ls-files-output' A "ls-files" that emulates "find" to enumerate files in the working tree resulted in duplicated Makefile rules that caused the build to issue an unnecessary warning during a trial build after merge conflicts are resolved in working tree *.h files but before the resolved results are added to the index. This has been corrected. * jc/make-dedup-ls-files-output: Makefile: dedup list of files obtained from ls-files by gitster
๐Ÿ› ๏ธ Merge branch 'jk/ls-files-doc-markup-fix' Docfix. * jk/ls-files-doc-markup-fix: doc/ls-files: put nested list for "-t" option into block by gitster
๐Ÿ› ๏ธ Merge branch 'jk/p5302-avoid-collision-check-cost' Fix index-pack perf test so that the repeated invocations always run in an empty repository, which emulates the initial clone situation better. * jk/p5302-avoid-collision-check-cost: p5302: create the repo in each index-pack test by gitster
๐Ÿ› ๏ธ Merge branch 'dl/no-extern-in-func-decl' Mechanically and systematically drop "extern" from function declarlation. * dl/no-extern-in-func-decl: *.[ch]: manually align parameter lists *.[ch]: remove extern from function declarations using sed *.[ch]: remove extern from function declarations using spatch by gitster
๐Ÿ› ๏ธ Merge branch 'ew/repack-with-bitmaps-by-default' The connectivity bitmaps are created by default in bare repositories now; also the pathname hash-cache is created by default to avoid making crappy deltas when repacking. * ew/repack-with-bitmaps-by-default: pack-objects: default to writing bitmap hash-cache t5310: correctly remove bitmaps for jgit test repack: enable bitmaps by default on bare repos by gitster
๐Ÿ› ๏ธ Merge branch 'js/partial-clone-connectivity-check' During an initial "git clone --depth=..." partial clone, it is pointless to spend cycles for a large portion of the connectivity check that enumerates and skips promisor objects (which by definition is all objects fetched from the other side). This has been optimized out. * js/partial-clone-connectivity-check: t/perf: add perf script for partial clones clone: do faster object check for partial clones by gitster
๐Ÿ› ๏ธ Merge branch 'jh/trace2-sid-fix' Polishing of the new trace2 facility continues. The system-level configuration can specify site-wide trace2 settings, which can be overridden with per-user configuration and environment variables. * jh/trace2-sid-fix: trace2: fixup access problem on /etc/gitconfig in read_very_early_config trace2: update docs to describe system/global config settings trace2: make SIDs more unique trace2: clarify UTC datetime formatting trace2: report peak memory usage of the process trace2: use system/global config for default trace2 settings config: add read_very_early_config() trace2: find exec-dir before trace2 initialization trace2: add absolute elapsed time to start event trace2: refactor setting process starting time config: initialize opts structure in repo_read_config() by gitster
๐Ÿ› ๏ธ difftool: fallback on merge.guitool In git-difftool.txt, it says 'git difftool' falls back to 'git mergetool' config variables when the difftool equivalents have not been defined. However, when diff.guitool is missing, it doesn't fallback to anything. Make git-difftool fallback to merge.guitool when diff.guitool is missing. Signed-off-by: Denton Liu [email protected] Signed-off-by: Junio C Hamano [email protected] by Denton-L
๐Ÿ› ๏ธ difftool: make --gui, --tool and --extcmd mutually exclusive In git-difftool, these options specify which tool to ultimately run. As a result, they are logically conflicting. Explicitly disallow these options from being used together. Signed-off-by: Denton Liu [email protected] Signed-off-by: Junio C Hamano [email protected] by Denton-L
๐Ÿ› ๏ธ mergetool: fallback to tool when guitool unavailable In git-difftool, if the tool is called with --gui but diff.guitool is not set, it falls back to diff.tool. Make git-mergetool also fallback from merge.guitool to merge.tool if the former is undefined. If git-difftool, when called with --gui, were to use get_configured_mergetool in a future patch, it would also get the fallback behavior in the following precedence: 1. diff.guitool 2. merge.guitool 3. diff.tool 4. merge.tool The behavior for when difftool or mergetool are called without --gui should be identical with or without this patch. Note that the search loop could be written as sections="merge" keys="tool" if diff_mode then sections="diff $sections" fi if gui_mode then keys="guitool $keys" fi merge_tool=$( IFS=' ' for key in $keys do for section in $sections do selected=$(git config $section.$key) if test -n "$selected" then echo "$selected" return fi done done) which would make adding a mode in the future much easier. However, adding a new mode will likely never happen as it is highly discouraged so, as a result, it is written in its current form so that it is more readable for future readers. Signed-off-by: Denton Liu [email protected] Signed-off-by: Junio C Hamano [email protected] by Denton-L
๐Ÿ› ๏ธ mergetool--lib: create gui_mode function Before, in get_configured_merge_tool, we would test the value of the first argument directly, which corresponded to whether we were using guitool. However, since $GIT_MERGETOOL_GUI is available as an environment variable, create the gui_mode function which increases the clarify of functions which use it. While we're at it, add a space before () in function definitions to fix the style. Signed-off-by: Denton Liu [email protected] Signed-off-by: Junio C Hamano [email protected] by Denton-L
๐Ÿ› ๏ธ mergetool: use get_merge_tool function In git-mergetool, the logic for getting which merge tool to use is duplicated in git-mergetool--lib, except for the fact that it needs to know whether the tool was guessed or not. Rewrite get_merge_tool to return whether or not the tool was guessed through the return code and make git-mergetool call this function instead of duplicating the logic. Note that 1 was chosen to be the return code of when a tool is guessed because it seems like a slightly more abnormal condition than getting a tool that's explicitly specified but this is completely arbitrary. Also, let $GIT_MERGETOOL_GUI be set to determine whether or not the guitool will be selected. This change is not completely backwards compatible as there may be external users of git-mergetool--lib. However, only one user, git-diffall[1], was found from searching GitHub and Google, and this tool is superseded by git difftool --dir-diff anyway. It seems very unlikely that there exists an external caller that would take into account the return code of get_merge_tool as it would always return 0 before this change so this change probably does not affect any external users. [1]: https://github.com/thenigan/git-diffall Signed-off-by: Denton Liu [email protected] Signed-off-by: Junio C Hamano [email protected] by Denton-L
๐Ÿ› ๏ธ trace2: add variable description to git.txt Documentation/technical/api-trace2.txt contains the full details of the trace2 API and the GIT_TR2* environment variables. However, most environment variables are included in Documentation/git.txt, including the GIT_TRACE* variables. Add a brief description of the GIT_TR2* variables with links to the full technical details. The biggest difference from the original variables is that we can specify a Unix Domain Socket. Mention this difference, but leave the details to the technical documents. Reported-by: Szeder Gรกbor [email protected] Signed-off-by: Derrick Stolee [email protected] Signed-off-by: Junio C Hamano [email protected] by derrickstolee
๐Ÿ› ๏ธ status: fix display of rebase -ir's label command The argument of a label command does not want to be turned into an abbreviated SHA-1. Signed-off-by: Johannes Schindelin [email protected] Signed-off-by: Junio C Hamano [email protected] by dscho
๐Ÿ› ๏ธ trace2: fix up a missing "leave" entry point Fix a trivial bug that's been here since the shared/do_write_index tracing was added in 42fee7a388 ("trace2:data: add trace2 instrumentation to index read/write", 2019-02-22). We should have enter/leave points, not two enter/enter points. This resulted in an "enter" event without a corresponding "leave" event. Signed-off-by: ร†var Arnfjรถrรฐ Bjarmason [email protected] Acked-by: Derrick Stolee [email protected] Signed-off-by: Junio C Hamano [email protected] by avar
๐Ÿ› ๏ธ check-non-portable-shell: support Perl versions older than 5.10 For thoroughness when checking for one-shot environment variable assignments at shell function call sites, check-non-portable-shell stitches together incomplete lines (those ending with backslash). This allows it to correctly flag such undesirable usage even when the variable assignment and function call are split across lines, for example: FOO=bar \ func where 'func' is a shell function. The stitching is accomplished like this: while (<>) { chomp; # stitch together incomplete lines (those ending with "") while (s/\$//) { $_ .= readline; chomp; } # detect unportable/undesirable shell constructs ... } Although this implementation is well supported in reasonably modern Perl versions (5.10 and later), it fails with older versions (such as Perl 5.8 shipped with ancient Mac OS 10.5). In particular, in older Perl versions, 'readline' is not connected to the file handle associated with the "magic" while (<>) {...} construct, so 'readline' throws a "readline() on unopened filehandle" error. Work around this problem by dropping readline() and instead incorporating the stitching of incomplete lines directly into the existing while (<>) {...} loop. Helped-by: ร†var Arnfjรถrรฐ Bjarmason [email protected] Signed-off-by: Eric Sunshine [email protected] Signed-off-by: Junio C Hamano [email protected] by sunshineco
๐Ÿ› ๏ธ mingw: enable DEP and ASLR Enable DEP (Data Execution Prevention) and ASLR (Address Space Layout Randomization) support. This applies to both 32bit and 64bit builds and makes it substantially harder to exploit security holes in Git by offering a much more unpredictable attack surface. ASLR interferes with GDB's ability to set breakpoints. A similar issue holds true when compiling with -O2 (in which case single-stepping is messed up because GDB cannot map the code back to the original source code properly). Therefore we simply enable ASLR only when an optimization flag is present in the CFLAGS, using it as an indicator that the developer does not want to debug in GDB anyway. Signed-off-by: ฤฐsmail Dรถnmez [email protected] Signed-off-by: Johannes Schindelin [email protected] Signed-off-by: Junio C Hamano [email protected] by ismail
๐Ÿ› ๏ธ mingw: do not let ld strip relocations This is the first step for enabling ASLR (Address Space Layout Randomization) support. We want to enable ASLR for better protection against exploiting security holes in Git: it makes it harder to attack software by making code addresses unpredictable. The problem fixed by this commit is that ld.exe seems to be stripping relocations which in turn will break ASLR support. We just make sure it's not stripping the main executable entry. Signed-off-by: ฤฐsmail Dรถnmez [email protected] Signed-off-by: Johannes Schindelin [email protected] Signed-off-by: Junio C Hamano [email protected] by ismail


CONTRIBUTORS

Last week there were 10 contributors.
๐Ÿ‘ค gitster
๐Ÿ‘ค tmzullinger
๐Ÿ‘ค peff
๐Ÿ‘ค carenas
๐Ÿ‘ค dscho
๐Ÿ‘ค avar
๐Ÿ‘ค Denton-L
๐Ÿ‘ค derrickstolee
๐Ÿ‘ค sunshineco
๐Ÿ‘ค ismail


STARGAZERS

Last week there were no stargazers.


RELEASES

Last week there were no releases.


That's all for last week, please ๐Ÿ‘€ Watch and โญ Star the repository gitgitgadget/git to receive next weekly updates. ๐Ÿ˜ƒ

You can also view all Weekly Digests by clicking here.

Your Weekly Digest bot. ๐Ÿ“†

Document --stdin (and other options in setup_revisions)

Currently, Git accepts --stdin for the log family of commands. Well really, anything that calls setup_revisions from revisions.c and passes in its argv will implicitly have the --stdin option.

We should explicitly document this (and other) options.

Weekly Digest (7 July, 2019 - 14 July, 2019)

Here's the Weekly Digest for gitgitgadget/git:


ISSUES

Last week 1 issue was created.
It is still open.

OPEN ISSUES

๐Ÿ’š #285 Update gpg.txt to correct gpg --verify syntax, by rtmorgan

NOISY ISSUE

๐Ÿ”ˆ #285 Update gpg.txt to correct gpg --verify syntax, by rtmorgan
It received 10 comments.


PULL REQUESTS

Last week, 15 pull requests were created, updated or merged.

UPDATED PULL REQUEST

Last week, 15 pull requests were updated.
๐Ÿ’› #285 Update gpg.txt to correct gpg --verify syntax, by rtmorgan
๐Ÿ’› #282 contrib/completion: use __git() in bash completor to avoid aliased tools, by zaquestion
๐Ÿ’› #281 git-prompt: improve cherry-pick/revert detection, by phillipwood
๐Ÿ’› #280 Fix test bug with spaces in file owner, by derrickstolee
๐Ÿ’› #276 t3420 remove progress from output, by phillipwood
๐Ÿ’› #275 Quieter sequencer status parsing, by phillipwood
๐Ÿ’› #264 Adding git-ignore command, tests, and documentation., by tstone2077
๐Ÿ’› #261 Create 'expire' and 'repack' verbs for git-multi-pack-index, by derrickstolee
๐Ÿ’› #254 [RFC] Create 'core.featureAdoptionRate' setting to update config defaults, by derrickstolee
๐Ÿ’› #218 Give Git a HOME on Windows, by dscho
๐Ÿ’› #217 gettext(windows): always use UTF-8, by dscho
๐Ÿ’› #216 windows: avoid illegal filenames during a build, by dscho
๐Ÿ’› #213 diff: release all handles before running external diff, by dscho
๐Ÿ’› #184 Commit-graph: Write incremental files, by derrickstolee
๐Ÿ’› #145 Avoid spawning gzip in git archive, by dscho


COMMITS

Last week there were 56 commits.
๐Ÿ› ๏ธ The fifth batch Signed-off-by: Junio C Hamano [email protected] by gitster
๐Ÿ› ๏ธ Merge branch 'js/mingw-use-utf8' Windows update. * js/mingw-use-utf8: mingw: fix possible buffer overrun when calling GetUserNameW() mingw: use Unicode functions explicitly mingw: get pw_name in UTF-8 format by gitster
๐Ÿ› ๏ธ Merge branch 'sg/ci-brew-gcc-workaround' Dev support update. * sg/ci-brew-gcc-workaround: ci/lib.sh: update a comment about installed P4 and Git-LFS versions ci: disable Homebrew's auto cleanup ci: don't update Homebrew by gitster
๐Ÿ› ๏ธ Merge branch 'kb/windows-force-utf8' Windows update. * kb/windows-force-utf8: gettext: always use UTF-8 on native Windows by gitster
๐Ÿ› ๏ธ Merge branch 'dr/progress-i18n' Progress messages have been made localizable. * dr/progress-i18n: l10n: localizable upload progress messages by gitster
๐Ÿ› ๏ธ Merge branch 'qn/clone-doc-use-long-form' The "git clone" documentation refers to command line options in its description in the short form; they have been replaced with long forms to make them more recognisable. * qn/clone-doc-use-long-form: docs: git-clone: list short form of options first docs: git-clone: refer to long form of options by gitster
๐Ÿ› ๏ธ Merge branch 'js/rebase-reschedule-applies-only-to-interactive' The configuration variable rebase.rescheduleFailedExec should be effective only while running an interactive rebase and should not affect anything when running an non-interactive one, which was not the case. This has been corrected. * js/rebase-reschedule-applies-only-to-interactive: rebase --am: ignore rebase.rescheduleFailedExec by gitster
๐Ÿ› ๏ธ Merge branch 'sg/git-C-empty-doc' Doc update. * sg/git-C-empty-doc: Document that 'git -C ""' works and doesn't change directory by gitster
๐Ÿ› ๏ธ Merge branch 'jt/t5551-test-chunked' Update smart-http test. * jt/t5551-test-chunked: t5551: test usage of chunked encoding explicitly by gitster
๐Ÿ› ๏ธ Merge branch 'js/mingw-gcc-stack-protect' Windows update. * js/mingw-gcc-stack-protect: mingw: enable stack smashing protector by gitster
๐Ÿ› ๏ธ Merge branch 'cb/windows-manifest' Windows update. * cb/windows-manifest: mingw: embed a manifest to trick UAC into Doing The Right Thing by gitster
๐Ÿ› ๏ธ The fourth batch Signed-off-by: Junio C Hamano [email protected] by gitster
๐Ÿ› ๏ธ Merge branch 'ds/fetch-disable-force-notice' "git fetch" and "git pull" reports when a fetch results in non-fast-forward updates to let the user notice unusual situation. The commands learned "--no-shown-forced-updates" option to disable this safety feature. * ds/fetch-disable-force-notice: pull: add --[no-]show-forced-updates passthrough fetch: warn about forced updates in branch listing fetch: add --[no-]show-forced-updates argument by gitster
๐Ÿ› ๏ธ Merge branch 'jh/status-aheadbehind' "git status" can be told a non-standard default value for the "--[no-]ahead-behind" option with a new configuration variable status.aheadBehind. * jh/status-aheadbehind: status: ignore status.aheadbehind in porcelain formats status: warn when a/b calculation takes too long status: add status.aheadbehind setting by gitster
๐Ÿ› ๏ธ Merge branch 'sg/t5551-fetch-smart-error-is-translated' Test update. * sg/t5551-fetch-smart-error-is-translated: t5551: use 'test_i18ngrep' to check translated output by gitster
๐Ÿ› ๏ธ Merge branch 'ms/submodule-foreach-fix' "git submodule foreach" did not protect command line options passed to the command to be run in each submodule correctly, when the "--recursive" option was in use. * ms/submodule-foreach-fix: submodule foreach: fix recursion of options by gitster
๐Ÿ› ๏ธ Merge branch 'jh/msvc' Support to build with MSVC has been updated. * jh/msvc: msvc: ignore .dll and incremental compile output msvc: avoid debug assertion windows in Debug Mode msvc: do not pretend to support all signals msvc: add pragmas for common warnings msvc: add a compile-time flag to allow detailed heap debugging msvc: support building Git using MS Visual C++ msvc: update Makefile to allow for spaces in the compiler path msvc: fix detect_msys_tty() msvc: define ftello() msvc: do not re-declare the timespec struct msvc: mark a variable as non-const msvc: define O_ACCMODE msvc: include sigset_t definition msvc: fix dependencies of compat/msvc.c mingw: replace mingw_startup() hack obstack: fix compiler warning cache-tree/blame: avoid reusing the DEBUG constant t0001 (mingw): do not expect a specific order of stdout/stderr Mark .bat files as requiring CR/LF endings mingw: fix a typo in the msysGit-specific section by gitster
๐Ÿ› ๏ธ Merge branch 'sg/rebase-progress' Use "Erase in Line" CSI sequence that is already used in the editor support to clear cruft in the progress output. * sg/rebase-progress: progress: use term_clear_line() rebase: fix garbled progress display with '-x' pager: add a helper function to clear the last line in the terminal t3404: make the 'rebase.missingCommitsCheck=ignore' test more focused t3404: modernize here doc style by gitster
๐Ÿ› ๏ธ Merge branch 'jw/gitweb-sample-update' Doc update. * jw/gitweb-sample-update: doc: don't use git.kernel.org as example gitweb URL by gitster
๐Ÿ› ๏ธ Merge branch 'js/t0001-case-insensitive' Test update. * js/t0001-case-insensitive: t0001: fix on case-insensitive filesystems by gitster
๐Ÿ› ๏ธ Merge branch 'cc/first-contrib-tutorial' Update docs used in a tutorial. * cc/first-contrib-tutorial: doc: improve usage string in MyFirstContribution by gitster
๐Ÿ› ๏ธ Merge branch 'ab/fail-prereqs-in-test' Test updates. * ab/fail-prereqs-in-test: tests: mark two failing tests under FAIL_PREREQS by gitster
๐Ÿ› ๏ธ Merge branch 'nd/switch-and-restore' Two new commands "git switch" and "git restore" are introduced to split "checking out a branch to work on advancing its history" and "checking out paths out of the index and/or a tree-ish to work on advancing the current history" out of the single "git checkout" command. * nd/switch-and-restore: (46 commits) completion: disable dwim on "git switch -d" switch: allow to switch in the middle of bisect t2027: use test_must_be_empty Declare both git-switch and git-restore experimental help: move git-diff and git-reset to different groups doc: promote "git restore" user-manual.txt: prefer 'merge --abort' over 'reset --hard' completion: support restore t: add tests for restore restore: support --patch restore: replace --force with --ignore-unmerged restore: default to --source=HEAD when only --staged is specified restore: reject invalid combinations with --staged restore: add --worktree and --staged checkout: factor out worktree checkout code restore: disable overlay mode by default restore: make pathspec mandatory restore: take tree-ish from --source option instead checkout: split part of it to new command 'restore' doc: promote "git switch" ... by gitster
๐Ÿ› ๏ธ Merge branch 'nd/fetch-capability-tweak' Protocol capabilities that go over wire should never be translated, but it was incorrectly marked for translation, which has been corrected. The output of protocol capabilities for debugging has been tweaked a bit. * nd/fetch-capability-tweak: fetch-pack: print server version at the top in -v -v fetch-pack: print all relevant supported capabilities with -v -v fetch-pack: move capability names out of i18n strings by gitster
๐Ÿ› ๏ธ Merge branch 'jk/oidhash' Code clean-up to remove hardcoded SHA-1 hash from many places. * jk/oidhash: hashmap: convert sha1hash() to oidhash() hash.h: move object_id definition from cache.h khash: rename oid helper functions khash: drop sha1-specific map types pack-bitmap: convert khash_sha1 maps into kh_oid_map delta-islands: convert island_marks khash to use oids khash: rename kh_oid_t to kh_oid_set khash: drop broken oid_map typedef object: convert create_object() to use object_id object: convert internal hash_obj() to object_id object: convert lookup_object() to use object_id object: convert lookup_unknown_object() to use object_id pack-objects: convert locate_object_entry_hash() to object_id pack-objects: convert packlist_find() to use object_id pack-bitmap-write: convert some helpers to use object_id upload-pack: rename a "sha1" variable to "oid" describe: fix accidental oid/hash type-punning by gitster
๐Ÿ› ๏ธ Merge branch 'jk/delta-islands-progress-fix' The codepath to compute delta islands used to spew progress output without giving the callers any way to squelch it, which has been fixed. * jk/delta-islands-progress-fix: delta-islands: respect progress flag by gitster
๐Ÿ› ๏ธ Merge branch 'md/sort-detached-head-first' "git branch --list" learned to always output the detached HEAD as the first item (when the HEAD is detached, of course), regardless of the locale. * md/sort-detached-head-first: ref-filter: sort detached HEAD lines firstly by gitster
๐Ÿ› ๏ธ Merge branch 'nd/fetch-multi-gc-once' "git fetch" that grabs from a group of remotes learned to run the auto-gc only once at the very end. * nd/fetch-multi-gc-once: fetch: only run 'gc' once when fetching multiple remotes by gitster
๐Ÿ› ๏ธ Merge branch 'es/rev-list-no-object-names' "git rev-list --objects" learned with "--no-object-names" option to squelch the path to the object that is used as a grouping hint for pack-objects. * es/rev-list-no-object-names: rev-list: teach --no-object-names to enable piping by gitster
๐Ÿ› ๏ธ Merge branch 'rs/config-unit-parsing' The code to parse scaled numbers out of configuration files has been made more robust and also easier to follow. * rs/config-unit-parsing: config: simplify parsing of unit factors config: don't multiply in parse_unit_factor() config: use unsigned_mult_overflows to check for overflows by gitster
๐Ÿ› ๏ธ Merge branch 'js/gcc-8-and-9' Code clean-up for new compilers. * js/gcc-8-and-9: config: avoid calling labs() on too-large data type winansi: simplify loading the GetCurrentConsoleFontEx() function kwset: allow building with GCC 8 poll (mingw): allow compiling with GCC 8 and DEVELOPER=1 by gitster
๐Ÿ› ๏ธ Merge branch 'dl/includeif-onbranch' The conditional inclusion mechanism learned to base the choice on the branch the HEAD currently is on. * dl/includeif-onbranch: config: learn the "onbranch:" includeIf condition by gitster
๐Ÿ› ๏ธ Merge branch 'pw/rebase-abort-clean-rewritten' "git rebase --abort" used to leave refs/rewritten/ when concluding "git rebase -r", which has been corrected. * pw/rebase-abort-clean-rewritten: rebase --abort/--quit: cleanup refs/rewritten sequencer: return errors from sequencer_remove_state() rebase: warn if state directory cannot be removed rebase: fix a memory leak by gitster
๐Ÿ› ๏ธ Merge branch 'am/p4-branches-excludes' "git p4" update. * am/p4-branches-excludes: git-p4: respect excluded paths when detecting branches git-p4: add failing test for "git-p4: respect excluded paths when detecting branches" git-p4: don't exclude other files with same prefix git-p4: add failing test for "don't exclude other files with same prefix" git-p4: don't groom exclude path list on every commit git-p4: match branches case insensitively if configured git-p4: add failing test for "git-p4: match branches case insensitively if configured" git-p4: detect/prevent infinite loop in gitCommitByP4Change() by gitster
๐Ÿ› ๏ธ Merge branch 'tg/stash-ref-by-index-fix' "git stash show 23" used to work, but no more after getting rewritten in C; this regression has been corrected. * tg/stash-ref-by-index-fix: stash: fix show referencing stash index by gitster
๐Ÿ› ๏ธ Merge branch 'cb/mkstemps-uint-type-fix' Variable type fix. * cb/mkstemps-uint-type-fix: wrapper: avoid undefined behaviour in macOS by gitster
๐Ÿ› ๏ธ Merge branch 'jk/trailers-use-config' "git interpret-trailers" always treated '#' as the comment character, regardless of core.commentChar setting, which has been corrected. * jk/trailers-use-config: interpret-trailers: load default config by gitster
๐Ÿ› ๏ธ Merge branch 'js/t3404-typofix' Typofix. * js/t3404-typofix: t3404: fix a typo by gitster
๐Ÿ› ๏ธ Merge branch 'pw/doc-synopsis-markup-opmode-options' Docfix. * pw/doc-synopsis-markup-opmode-options: show --continue/skip etc. consistently in synopsis by gitster
๐Ÿ› ๏ธ Merge branch 'rs/copy-array' Code clean-up. * rs/copy-array: use COPY_ARRAY for copying arrays coccinelle: use COPY_ARRAY for copying arrays by gitster
๐Ÿ› ๏ธ Merge branch 'cb/fsmonitor-intfix' Variable type fix. * cb/fsmonitor-intfix: fsmonitor: avoid signed integer overflow / infinite loop by gitster
๐Ÿ› ๏ธ Merge branch 'rs/avoid-overflow-in-midpoint-computation' Code clean-up to avoid signed integer overlaps during binary search. * rs/avoid-overflow-in-midpoint-computation: cleanup: fix possible overflow errors in binary search, part 2 by gitster
๐Ÿ› ๏ธ Merge branch 'pw/add-p-recount' "git checkout -p" needs to selectively apply a patch in reverse, which did not work well. * pw/add-p-recount: add -p: fix checkout -p with pathological context by gitster
๐Ÿ› ๏ธ Merge branch 'ds/close-object-store' The commit-graph file is now part of the "files that the runtime may keep open file descriptors on, all of which would need to be closed when done with the object store", and the file descriptor to an existing commit-graph file now is closed before "gc" finalizes a new instance to replace it. * ds/close-object-store: packfile: rename close_all_packs to close_object_store packfile: close commit-graph in close_all_packs commit-graph: use raw_object_store when closing by gitster
๐Ÿ› ๏ธ Merge branch 'ds/commit-graph-write-refactor' Renamed from commit-graph-format-v2 and changed scope. * ds/commit-graph-write-refactor: commit-graph: extract write_commit_graph_file() commit-graph: extract copy_oids_to_commits() commit-graph: extract count_distinct_commits() commit-graph: extract fill_oids_from_all_packs() commit-graph: extract fill_oids_from_commit_hex() commit-graph: extract fill_oids_from_packs() commit-graph: create write_commit_graph_context commit-graph: remove Future Work section commit-graph: collapse parameters into flags commit-graph: return with errors during write commit-graph: fix the_repository reference by gitster
๐Ÿ› ๏ธ Merge branch 'sg/trace2-rename' Dev support update to help tracing out tests. * sg/trace2-rename: trace2: correct typo in technical documentation Revert "test-lib: whitelist GIT_TR2_* in the environment" by gitster
๐Ÿ› ๏ธ Merge branch 'nd/completion-no-cache-failure' An incorrect list of options was cached after command line completion failed (e.g. trying to complete a command that requires a repository outside one), which has been corrected. * nd/completion-no-cache-failure: completion: do not cache if --git-completion-helper fails by gitster
๐Ÿ› ๏ธ Merge branch 'js/mergetool-optim' "git mergetool" and its tests now spawn fewer subprocesses. * js/mergetool-optim: mergetool: use shell variable magic instead of awk mergetool: dissect strings with shell variable magic instead of expr t7610-mergetool: use test_cmp instead of test $(cat file) = $txt t7610-mergetool: do not place pipelines headed by yes in subshells by gitster
๐Ÿ› ๏ธ Merge branch 'mo/hpux-dynpath' Auto-detect how to tell HP-UX aCC where to use dynamically linked libraries from at runtime. * mo/hpux-dynpath: configure: Detect linking style for HP aCC on HP-UX by gitster
๐Ÿ› ๏ธ Merge branch 'dl/config-alias-doc' Doc update. * dl/config-alias-doc: config/alias.txt: document alias accepting non-command first word config/alias.txt: change " and ' to ](https://github.com/gitgitgadget/git/commit/71221f28ec3f887620f0089b8f42bcf9b19f4a42) by [gitster](https://github.com/gitster) :hammer_and_wrench: [Merge branch 'tm/tag-gpgsign-config' A new tag.gpgSign configuration variable turns "git tag -a" into "git tag -s". * tm/tag-gpgsign-config: tag: add tag.gpgSign config option to force all tags be GPG-signed](https://github.com/gitgitgadget/git/commit/492d7a553c8a097ad66f4a39acf187e7f02a4117) by [gitster](https://github.com/gitster) :hammer_and_wrench: [Merge branch 'fc/fetch-with-import-fix' Code restructuring during 2.20 period broke fetching tags via "import" based transports. * fc/fetch-with-import-fix: fetch: fix regression with transport helpers fetch: make the code more understandable fetch: trivial cleanup t5801 (remote-helpers): add test to fetch tags t5801 (remote-helpers): cleanup refspec stuff](https://github.com/gitgitgadget/git/commit/dbf491e9e947141eab7ffce65d6c97c121def6e0) by [gitster](https://github.com/gitster) :hammer_and_wrench: [Merge branch 'po/doc-branch' Doc update. * po/doc-branch: doc branch: provide examples for listing remote tracking branches](https://github.com/gitgitgadget/git/commit/ecf55ae4f0f73a9759eb58e01cfcc6758acc07c2) by [gitster](https://github.com/gitster) :hammer_and_wrench: [Merge branch 'nb/branch-show-other-worktrees-head' "git branch --list" learned to show branches that are checked out in other worktrees connected to the same repository prefixed with '+', similar to the way the currently checked out branch is shown with '*' in front. * nb/branch-show-other-worktrees-head: branch: add worktree info on verbose output branch: update output to include worktree info ref-filter: add worktreepath atom](https://github.com/gitgitgadget/git/commit/99eea645832d376a3b214b78a57adabf1fa96547) by [gitster](https://github.com/gitster) :hammer_and_wrench: [mingw: fix possible buffer overrun when calling GetUserNameW() In 39a98e9b68b8 (mingw: get pw_name in UTF-8 format, 2019-06-27), this developer missed the fact that theGetUserNameW()function takes the number of characters aslen` parameter, not the number of bytes. Reported-by: Beat Bolli [email protected] Signed-off-by: Johannes Schindelin [email protected] Signed-off-by: Junio C Hamano [email protected] by dscho
๐Ÿ› ๏ธ ci/lib.sh: update a comment about installed P4 and Git-LFS versions A comment in 'ci/lib.sh' claims that the "OS X build installs the latest available versions" of P4 and Git-LFS, but since f2f47150 ("ci: don't update Homebrew", 2019-07-03) that's no longer the case, as it will install the versions which were recorded in the image's Homebrew database when the image was created. Update this comment accordingly. Signed-off-by: SZEDER Gรกbor [email protected] Acked-by: Johannes Schindelin [email protected] Signed-off-by: Junio C Hamano [email protected] by szeder


CONTRIBUTORS

Last week there were 3 contributors.
๐Ÿ‘ค gitster
๐Ÿ‘ค dscho
๐Ÿ‘ค szeder


STARGAZERS

Last week there were no stargazers.


RELEASES

Last week there were no releases.


That's all for last week, please ๐Ÿ‘€ Watch and โญ Star the repository gitgitgadget/git to receive next weekly updates. ๐Ÿ˜ƒ

You can also view all Weekly Digests by clicking here.

Your Weekly Digest bot. ๐Ÿ“†

Fix flaky t5504 (in test case 9 - push with transfer.fsckobjects)

This seems to hit the linux-gcc job the most, maybe in the part where it runs the test suite with all kinds of GIT_TEST_* variables set to non-default settings.

See e.g. Attempt #1 of this linux-gcc run:

expecting success: 
	rm -rf dst &&
	git init dst &&
	(
		cd dst &&
		git config transfer.fsckobjects true
	) &&
	test_must_fail git push --porcelain dst master:refs/heads/test >act &&
	test_cmp exp act

+ rm -rf dst
+ git init dst
Initialized empty Git repository in /home/vsts/work/1/s/t/trash directory.t5504-fetch-receive-strict/dst/.git/
+ cd dst
+ git config transfer.fsckobjects true
+ test_must_fail git push --porcelain dst master:refs/heads/test
+ _test_ok=
+ git push --porcelain dst master:refs/heads/test
remote: fatal: object of unexpected type        
error: remote unpack failed: unpack-objects abnormal exit
error: failed to push some refs to 'dst'
+ exit_code=1
+ test 1 -eq 0
+ test_match_signal 13 1
+ test 1 = 141
+ test 1 = 269
+ return 1
+ test 1 -gt 129
+ test 1 -eq 127
+ test 1 -eq 126
+ return 0
+ test_cmp exp act
+ diff -u exp act
--- exp	2019-06-03 20:37:40.928834316 +0000
+++ act	2019-06-03 20:37:41.064834272 +0000
@@ -1,2 +0,0 @@
-To dst
-!	refs/heads/master:refs/heads/test	[remote rejected] (unpacker error)
error: last command exited with $?=1
not ok 9 - push with transfer.fsckobjects
#	
#		rm -rf dst &&
#		git init dst &&
#		(
#			cd dst &&
#			git config transfer.fsckobjects true
#		) &&
#		test_must_fail git push --porcelain dst master:refs/heads/test >act &&
#		test_cmp exp act
#	

Make `git diff ..` less confusing for newbies

It's pretty ridiculous how the meaning of .. and ... is exactly swapped for log and diff: log A..B is changes from merge base to B which is what diff A...B does

-phiresky link

The semantics of .. vs ... are essentially swapped between diff and the log family of commands. This is because diff uses setup_revisions but abuses the way that the returned endpoints are used.

There are several options to deal with this:

  • Print a warning into the output if a user uses git diff A..B instead of git diff A B (see here)

  • Update the documentation for git-diff so that it's obvious why this is happening (so we tell users about how range-notation is implemented). Upside is users will understand why git diff foo@^! works as well. Downside is that I'm not sure it's productive to expose implementation details to end-uers.

  • Swap the meaning of .. and .... One can dream...

  • Something else? I've been mulling over it and not wanting to contribute a patch because there might be some cleaner way to resolve this. Not really sure how.

See:

Teach `git stash` and `git commit` the `-A` option

The git add -A command can be used to conveniently add all files, whether they are tracked or not yet tracked (excluding the ones ignored via .gitignore/.git/info/excludes).

This convenience would come in quite nicely in the stash/commit commands, too (in the latter case, many test cases could be simplified using this new option).

The git stash command already has the --include-untracked option that does this, but not the short-and-sweet short option -A. The git commit command does not have any equivalent (it has the --untracked-files option, but that is really just modifying the output of git status).

Sadly, we cannot add --all, too, as that is already used for something different in git stash: it includes the ignored files, too. Likewise, git commit --all commits all tracked files, and does not add the untracked files (unlike git add --all).

Mention `core.excludesFile` in `git clean`'s documentation

"man git-clean" explicitly mentions two locations related to cleaning:

  -x
        Don't use the standard ignore rules read from .gitignore
        (per directory) and $GIT_DIR/info/exclude, ...

without additionally explicitly mentioning core.excludesFile. if the
man page simply said something like, "using the standard ignore
processing" and left it at that, it would be fine, but to list two of
the locations without the third is potentially confusing.

See https://public-inbox.org/git/[email protected]/

Weekly Digest (19 May, 2019 - 26 May, 2019)

Here's the Weekly Digest for gitgitgadget/git:


ISSUES

Last week 12 issues were created.
Of these, 0 issues have been closed and 12 issues are still open.

OPEN ISSUES

๐Ÿ’š #224 Use user supplied origin name for extension.partialcone instead of, by delphij
๐Ÿ’š #223 Fix racy fsmonitor, by dscho
๐Ÿ’š #222 trace2: fix tracing when NO_PTHREADS is defined, by jeffhostetler
๐Ÿ’š #221 Fix two issues pointed out by Coverity, by dscho
๐Ÿ’š #220 mingw: support spawning programs with paths containing spacesnames, by dscho
๐Ÿ’š #219 Show an error if too-long paths are seen by git clean -dfx, by dscho
๐Ÿ’š #218 Give Git a HOME on Windows, by dscho
๐Ÿ’š #217 gettext(windows): always use UTF-8, by dscho
๐Ÿ’š #216 windows: avoid illegal filenames during a build, by dscho
๐Ÿ’š #215 mingw: enable GCC's stack smashing protector, by dscho
๐Ÿ’š #214 windows: embed a manifest, by dscho
๐Ÿ’š #213 diff: release all handles before running external diff, by dscho

NOISY ISSUE

๐Ÿ”ˆ #222 trace2: fix tracing when NO_PTHREADS is defined, by jeffhostetler
It received 7 comments.


PULL REQUESTS

Last week, 21 pull requests were created, updated or merged.

OPEN PULL REQUEST

Last week, 3 pull requests were opened.
๐Ÿ’š #220 mingw: support spawning programs with paths containing spacesnames, by dscho
๐Ÿ’š #219 Show an error if too-long paths are seen by git clean -dfx, by dscho
๐Ÿ’š #213 diff: release all handles before running external diff, by dscho

UPDATED PULL REQUEST

Last week, 18 pull requests were updated.
๐Ÿ’› #224 Use user supplied origin name for extension.partialcone instead of, by delphij
๐Ÿ’› #223 Fix racy fsmonitor, by dscho
๐Ÿ’› #222 trace2: fix tracing when NO_PTHREADS is defined, by jeffhostetler
๐Ÿ’› #221 Fix two issues pointed out by Coverity, by dscho
๐Ÿ’› #218 Give Git a HOME on Windows, by dscho
๐Ÿ’› #217 gettext(windows): always use UTF-8, by dscho
๐Ÿ’› #216 windows: avoid illegal filenames during a build, by dscho
๐Ÿ’› #215 mingw: enable GCC's stack smashing protector, by dscho
๐Ÿ’› #214 windows: embed a manifest, by dscho
๐Ÿ’› #208 Close commit-graph before calling 'gc', by derrickstolee
๐Ÿ’› #195 Drop support for git rebase --preserve-merges, by dscho
๐Ÿ’› #194 Clean up after the removal of the scripted rebase, by dscho
๐Ÿ’› #189 trace2: Add variable description to git.txt, by derrickstolee
๐Ÿ’› #184 [RFC] Commit-graph: Write incremental files, by derrickstolee
๐Ÿ’› #149 Fix MSVC support, at long last, by dscho
๐Ÿ’› #148 Windows: add a configuration location to be shared among different Git implementations, by dscho
๐Ÿ’› #147 Let's use the Win32 API more precisely, by dscho
๐Ÿ’› #112 Commit-graph write refactor (was: Create commit-graph file format v2), by derrickstolee


COMMITS

Last week there were 35 commits.
๐Ÿ› ๏ธ Git 2.22-rc1 Signed-off-by: Junio C Hamano [email protected] by gitster
๐Ÿ› ๏ธ Merge branch 'js/difftool-no-index' The "--dir-diff" mode of "git difftool" is not useful in "--no-index" mode; they are now explicitly marked as mutually incompatible. * js/difftool-no-index: difftool --no-index: error out on --dir-diff (and don't crash) by gitster
๐Ÿ› ๏ธ Merge branch 'jk/get-oid-indexed-object-name' The codepath to parse : that obtains the object name for an indexed object has been made more robust. * jk/get-oid-indexed-object-name: get_oid: handle NULL repo->index by gitster
๐Ÿ› ๏ธ Merge branch 'jc/set-packet-header-signature-fix' Code clean-up. * jc/set-packet-header-signature-fix: pkt-line: drop 'const'-ness of a param to set_packet_header() by gitster
๐Ÿ› ๏ธ Merge branch 'cb/http-push-null-in-message-fix' Code clean-up. * cb/http-push-null-in-message-fix: http-push: prevent format overflow warning with gcc >= 9 by gitster
๐Ÿ› ๏ธ Merge branch 'js/stash-in-c-use-builtin-doc' Doc update. * js/stash-in-c-use-builtin-doc: stash: document stash.useBuiltin by gitster
๐Ÿ› ๏ธ Merge branch 'tz/test-lib-check-working-jgit' A prerequiste check in the test suite to see if a working jgit is available was made more robust. * tz/test-lib-check-working-jgit: test-lib: try harder to ensure a working jgit by gitster
๐Ÿ› ๏ธ Merge branch 'js/parseopt-unknown-cb-returns-an-enum' Code clean-up. * js/parseopt-unknown-cb-returns-an-enum: parse-options: adjust parse_opt_unknown_cb()s declared return type by gitster
๐Ÿ› ๏ธ Merge branch 'ab/sha1dc' Update collision-detecting SHA-1 code to build properly on HP-UX. * ab/sha1dc: sha1dc: update from upstream by gitster
๐Ÿ› ๏ธ Merge branch 'js/rebase-i-label-shown-in-status-fix' "git status" did not know that the "label" instruction in the todo-list "rebase -i -r" uses should not be shown as a hex object name. * js/rebase-i-label-shown-in-status-fix: status: fix display of rebase -ir's label command by gitster
๐Ÿ› ๏ธ Merge branch 'es/check-non-portable-pre-5.10' Developer support update. * es/check-non-portable-pre-5.10: check-non-portable-shell: support Perl versions older than 5.10 by gitster
๐Ÿ› ๏ธ Merge branch 'ds/trace2-document-env-vars' Doc update. * ds/trace2-document-env-vars: trace2: add variable description to git.txt by gitster
๐Ÿ› ๏ธ Merge branch 'js/fsmonitor-refresh-after-discarding-index' The fsmonitor interface got out of sync after the in-core index file gets discarded, which has been corrected. * js/fsmonitor-refresh-after-discarding-index: fsmonitor: force a refresh after the index was discarded fsmonitor: demonstrate that it is not refreshed after discard_index() by gitster
๐Ÿ› ๏ธ Merge branch 'cm/notes-comment-fix' A stale in-code comment has been updated. * cm/notes-comment-fix: notes: correct documentation of format_display_notes() by gitster
๐Ÿ› ๏ธ Merge branch 'tt/no-ipv6-fallback-for-winxp' Code cleanup. * tt/no-ipv6-fallback-for-winxp: mingw: remove obsolete IPv6-related code by gitster
๐Ÿ› ๏ธ Merge branch 'js/t5580-unc-alternate-test' An additional test for MinGW * js/t5580-unc-alternate-test: t5580: verify that alternates can be UNC paths by gitster
๐Ÿ› ๏ธ Merge branch 'ds/cvsexportcommit-force-text' "git cvsexportcommit" running on msys did not expect cvsnt showed "cvs status" output with CRLF line endings. * ds/cvsexportcommit-force-text: cvsexportcommit: force crlf translation by gitster
๐Ÿ› ๏ธ Merge branch 'sg/ci-libsvn-perl' To run tests for Git SVN, our scripts for CI used to install the git-svn package (in the hope that it would bring in the right dependencies). This has been updated to install the more direct dependency, namely, libsvn-perl. * sg/ci-libsvn-perl: ci: install 'libsvn-perl' instead of 'git-svn' by gitster
๐Ÿ› ๏ธ Merge branch 'bl/t4253-exit-code-from-format-patch' Avoid patterns to pipe output from a git command to feed another command in tests. * bl/t4253-exit-code-from-format-patch: t4253-am-keep-cr-dos: avoid using pipes by gitster
๐Ÿ› ๏ธ Merge branch 'ds/midx-too-many-packs' The code to generate the multi-pack idx file was not prepared to see too many packfiles and ran out of open file descriptor, which has been corrected. * ds/midx-too-many-packs: midx: add packs to packed_git linked list midx: pass a repository pointer by gitster
๐Ÿ› ๏ธ Merge branch 'en/unicode-in-refnames' On a filesystem like HFS+, the names of the refs stored as filesystem entities may become different from what the end-user expects, just like files in the working tree get "renamed". Work around the mismatch by paying attention to the core.precomposeUnicode configuration. * en/unicode-in-refnames: Honor core.precomposeUnicode in more places by gitster
๐Ÿ› ๏ธ Merge branch 'dl/difftool-mergetool' Update "git difftool" and "git mergetool" so that the combinations of {diff,merge}.{tool,guitool} configuration variables serve as fallback settings of each other in a sensible order. * dl/difftool-mergetool: difftool: fallback on merge.guitool difftool: make --gui, --tool and --extcmd mutually exclusive mergetool: fallback to tool when guitool unavailable mergetool--lib: create gui_mode function mergetool: use get_merge_tool function t7610: add mergetool --gui tests t7610: unsuppress output by gitster
๐Ÿ› ๏ธ Merge branch 'mh/http-fread-api-fix' A pair of private functions in http.c that had names similar to fread/fwrite did not return the number of elements, which was found to be confusing. * mh/http-fread-api-fix: Make fread/fwrite-like functions in http.c more like fread/fwrite. by gitster
๐Ÿ› ๏ธ Merge branch 'js/t6500-use-windows-pid-on-mingw' Future-proof a test against an update to MSYS2 runtime v3.x series. * js/t6500-use-windows-pid-on-mingw: t6500(mingw): use the Windows PID of the shell by gitster
๐Ÿ› ๏ธ Merge branch 'jk/apache-lsan' Allow tests that involve httpd to be run under leak sanitizer, just like we can already do so under address sanitizer. * jk/apache-lsan: t/lib-httpd: pass LSAN_OPTIONS through apache by gitster
๐Ÿ› ๏ธ Merge branch 'nd/parse-options-aliases' Attempt to use an abbreviated option in "git clone --recurs" is responded by a request to disambiguate between --recursive and --recurse-submodules, which is bad because these two are synonyms. The parse-options API has been extended to define such synonyms more easily and not produce an unnecessary failure. * nd/parse-options-aliases: parse-options: don't emit "ambiguous option" for aliases by gitster
๐Ÿ› ๏ธ Merge branch 'dl/branch-from-3dot-merge-base' "git branch new A...B" and "git checkout -b new A...B" have been taught that in their contexts, the notation A...B means "the merge base between these two commits", just like "git checkout A...B" detaches HEAD at that commit. * dl/branch-from-3dot-merge-base: branch: make create_branch accept a merge base rev t2018: cleanup in current test by gitster
๐Ÿ› ๏ธ Merge branch 'js/commit-graph-parse-leakfix' Leakfix. * js/commit-graph-parse-leakfix: commit-graph: fix memory leak by gitster
๐Ÿ› ๏ธ Merge branch 'jk/cocci-batch' Optionally "make coccicheck" can feed multiple source files to spatch, gaining performance while spending more memory. * jk/cocci-batch: coccicheck: make batch size of 0 mean "unlimited" coccicheck: optionally batch spatch invocations by gitster
๐Ÿ› ๏ธ Merge branch 'ab/perf-installed-fix' Performance test framework has been broken and measured the version of Git that happens to be on $PATH, not the specified one to measure, for a while, which has been corrected. * ab/perf-installed-fix: perf-lib.sh: forbid the use of GIT_TEST_INSTALLED perf tests: add "bindir" prefix to git tree test results perf-lib.sh: remove GIT_TEST_INSTALLED from perf-lib.sh perf-lib.sh: make "./run " use the correct gits perf aggregate: remove GIT_TEST_INSTALLED from --codespeed perf README: correct docs for 3c8f12c96c regression by gitster
๐Ÿ› ๏ธ Merge branch 'id/windows-dep-aslr' Allow DEP and ASLR for Windows build to for security hardening. * id/windows-dep-aslr: mingw: enable DEP and ASLR mingw: do not let ld strip relocations by gitster
๐Ÿ› ๏ธ Merge branch 'ab/trace2-typofix' Typofix. * ab/trace2-typofix: trace2: fix up a missing "leave" entry point by gitster
๐Ÿ› ๏ธ Merge branch 'nd/submodule-helper-incomplete-line-fix' Typofix. * nd/submodule-helper-incomplete-line-fix: submodule--helper: add a missing \n by gitster
๐Ÿ› ๏ธ Merge branch 'cw/diff-highlight' Portability fix for a diff-highlight tool (in contrib/). * cw/diff-highlight: diff-highlight: use correct /dev/null for UNIX and Windows by gitster
๐Ÿ› ๏ธ Merge branch 'dl/warn-tagging-a-tag' Typofix. * dl/warn-tagging-a-tag: tag: fix typo in nested tagging hint by gitster


CONTRIBUTORS

Last week there was 1 contributor.
๐Ÿ‘ค gitster


STARGAZERS

Last week there were no stargazers.


RELEASES

Last week there were no releases.


That's all for last week, please ๐Ÿ‘€ Watch and โญ Star the repository gitgitgadget/git to receive next weekly updates. ๐Ÿ˜ƒ

You can also view all Weekly Digests by clicking here.

Your Weekly Digest bot. ๐Ÿ“†

Add support for drop!/reword! commits to `git rebase -i`

This was already discussed briefly on the Git mailing list: https://public-inbox.org/git/alpine.DEB.2.21.1.1710151754070.40514@virtualbox/

In short, the reword! semantics are relatively easy in my mind: it would be called as

git commit --reword <commit>

would take staged changes (if any), otherwise implicitly --allow-empty,
then create a commit message to be edited in this style:

reword! <original-oneline>

<original-oneline>

<original-body>

This would be presented to the user in an editor (similar to git commit --amend).

Upon rebase --autosquash, it would work like a squash! but comment out all
previous commit messages, and also comment out the reword! line and the
empty line after that.

In case of multiple reword!, the last one would win, and it would
naturally integrate in any fixup!/squash! workflow.

What is more difficult is something else I frequently need: drop!
. That is, I want to explicitly mark a commit to be excluded in
subsequent rebase --autosquash. I guess the best way would be to
implement a

git revert --drop <commit>

that would work as if you called git revert -n <commit> && git commit -m 'drop! '"$(git show -s --oneline <commit>)", and upon rebase --autosquash, it would reorder like fixup!/squash!/reword!, replace the pickof the previous line (if it was apick) by dropand comment out the currentpick drop! ` line.

The reason why the semantics are more difficult in that case is that drop!
does not mix well with fixup!/squash!/reword!.

Fix flaky t5516-fetch-push (test case 79 - deny fetch unreachable SHA1, allowtipsha1inwant=true)

This seems to fail every once in a while, especially in Git for Windows' experimental MSVC job of our Azure Pipeline.

The issue seems to be that multiple processes report fatal errors at the same time, and our grep fails to verify that the expected error message was printed because they were interleaved. Example:

++ grep 'remote error:.*not our ref.*64ea4c133d59fa98e86a771eda009872d6ab2886$' err
++ echo 'error: '\''grep remote error:.*not our ref.*64ea4c133d59fa98e86a771eda009872d6ab2886$' 'err'\'' didn'\''t find a match in:'
error: 'grep remote error:.*not our ref.*64ea4c133d59fa98e86a771eda009872d6ab2886$ err' didn't find a match in:
++ test -s err
++ cat err
fatal: git uploadfatal: remote error: upload-pack: not our ref 6-pack: not our ref 64ea4c1334ea4c133d59fa98e86a771eda009872d6ab2886
d59fa98e86a771eda009872d6ab2886

Split the `linux-gcc` in our CI builds into two separate jobs

The linux-gcc job is a bit overloaded: it actually runs the test suite twice. Once with regular options, and once after setting all kinds of GIT_TEST_* options.

Since the running time is dominated by the test suite, not by the build, it would make more sense for those two runs to be run in parallel.

Therefore, let's split linux-gcc into two: a regular one, and on with all the extra options.

rebase -r: implement an equivalent to skip_unnecessary_picks()

Take this todo list, for example:

label onto

# Branch dscho
reset onto
pick a123 first
label dscho

# Branch avar
reset onto
pick b789 second
label avar

reset onto
merge -C c124 dscho
merge -C d314 avar

In other words: two branches, both one patch deep, both merged, one after the other. Now,
if you insert pick abc zeroth before the first pick, obviously the first branch would no longer be skippable, but the second one totally would be!

Since we are not performing a linear rebase, the skip_unnecessary_picks() function has no prayer of helping us here.

To remedy this, we would probably need code in pick_commits(), right where TODO_RESET is handled, that would:

  • parse the argument (this is currently done in do_reset() and would have to be refactored out) and pretend that it is HEAD,

  • look at the following command: if it is

    • a pick, and if its parent agrees with HEAD, pretend that the pick was actually a reset, update the pretended HEAD and keep looking at the next command,

    • a merge, and if its option was -C <orig-merge> (not lower-case -c!), and if its parent agrees with HEAD, and if its merge head(s) agree with the original merge commit's (if any), pretend that it was actually a reset <orig-merge>, update the pretended HEAD and keep looking at the next command,

    • a label, perform it, but with the pretended HEAD, and keep looking for the next command,

    • a reset, update the done and git-rebase-todo files and start the entire spiel from the top,

    • otherwise perform the reset.

  • all while skipping, this code would need to take care of updating the done and git-rebase-todo files,

  • if a reset is necessary, and if it fails, the done and git-rebase-todo files should not be updated, but the original reset should be re-scheduled, and

  • since this adds quite a bit of code, it should probably be done in a separate function.

Instead of tapping into the TODO_RESET code block, it might make more sense, though, to start at the top of the loop, with whatever HEAD is at the moment.

Fix formatting of config values in documentation

Currently, in our config documentation, there are many inconsistencies with the way values are being marked up. This patch is a very small start but we should try to go through all of the config/*.txt files and mark up config values with surrounding backticks. This way, it'll be obvious that these are special values that a user should pay attention to.

In particular, true and false are major offenders for not being surrounded by backticks.

rebase -ir: optionally auto-update local branches when executing `label` commands

The --rebase-merges mode allows users to rebase entire branch thickets, rather than only a linear commit history.

This feature can also be used to structure otherwise too-long patch series. Essentially the history looks like this:

o - A - B - C -D -E -F - G - H - I ...
  \          \             \
   ------------ first-batch - second-batch - ...

This makes sure that the whole feature can be developed from beginning to end, still keeping the "first-batch" in a shape that can be contributed individually to the Git mailing list. And then fixes (e.g. as a reaction to code review comments) can be integrated via git commit --fixup and then git rebase -ir.

However, the local branches first-batch and second-batch are not updated that way; They still have to be updated manually, which is tedious and error-prone.

How about an option to --rebase-merges that teaches label commands to see whether there is a local branch of the same name whose tip commit corresponds to the pre-rebase state of this label, and if such a branch was found, it is updated automatically (even updating a worktree if there is one, much like the receive.denyCurrentBranch=updateInstead feature does on push).

Weekly Digest (21 July, 2019 - 28 July, 2019)

Here's the Weekly Digest for gitgitgadget/git:


ISSUES

Last week 5 issues were created.
Of these, 0 issues have been closed and 5 issues are still open.

OPEN ISSUES

๐Ÿ’š #296 Add the REBASE_P prerequisite to two more test cases, by dscho
๐Ÿ’š #295 git svn: use rebase --rebase-merges instead of preserve-merges, by dscho
๐Ÿ’š #294 rebase -r: support merge strategies other than recursive, by dscho
๐Ÿ’š #293 Clean up more of the fall-out from dropping the scripted git rebase, by dscho
๐Ÿ’š #292 Create 'feature.*' config area and some centralized config parsing, by derrickstolee

NOISY ISSUE

๐Ÿ”ˆ #294 rebase -r: support merge strategies other than recursive, by dscho
It received 8 comments.


PULL REQUESTS

Last week, 10 pull requests were created, updated or merged.

UPDATED PULL REQUEST

Last week, 10 pull requests were updated.
๐Ÿ’› #296 Add the REBASE_P prerequisite to two more test cases, by dscho
๐Ÿ’› #295 git svn: use rebase --rebase-merges instead of preserve-merges, by dscho
๐Ÿ’› #294 rebase -r: support merge strategies other than recursive, by dscho
๐Ÿ’› #293 Clean up more of the fall-out from dropping the scripted git rebase, by dscho
๐Ÿ’› #292 Create 'feature.*' config area and some centralized config parsing, by derrickstolee
๐Ÿ’› #290 Travis CI: Lint for Python syntax errors and undefined names, by cclauss
๐Ÿ’› #287 Reinstate support for Visual Studio, by dscho
๐Ÿ’› #219 Show an error if too-long paths are seen by git clean -dfx, by dscho
๐Ÿ’› #195 Drop support for git rebase --preserve-merges, by dscho
๐Ÿ’› #170 git add -i: add a rudimentary version in C (supporting only status and help so far), by dscho


COMMITS

Last week there were 45 commits.
๐Ÿ› ๏ธ Sync with maint Signed-off-by: Junio C Hamano [email protected] by gitster
๐Ÿ› ๏ธ Flush fixes up to the third batch post 2.22.0 Signed-off-by: Junio C Hamano [email protected] by gitster
๐Ÿ› ๏ธ Merge branch 'ab/hash-object-doc' into maint Doc update. * ab/hash-object-doc: hash-object doc: stop mentioning git-cvsimport by gitster
๐Ÿ› ๏ธ Merge branch 'cm/send-email-document-req-modules' into maint A doc update. * cm/send-email-document-req-modules: send-email: update documentation of required Perl modules by gitster
๐Ÿ› ๏ธ Merge branch 'sw/git-p4-unshelve-branched-files' into maint "git p4" update. * sw/git-p4-unshelve-branched-files: git-p4: allow unshelving of branched files by gitster
๐Ÿ› ๏ธ Merge branch 'js/bisect-helper-check-get-oid-return-value' into maint Code cleanup. * js/bisect-helper-check-get-oid-return-value: bisect--helper: verify HEAD could be parsed before continuing by gitster
๐Ÿ› ๏ธ Merge branch 'es/git-debugger-doc' into maint Doc update. * es/git-debugger-doc: doc: hint about GIT_DEBUGGER in CodingGuidelines by gitster
๐Ÿ› ๏ธ Merge branch 'mo/clang-format-for-each-update' into maint The list of for-each like macros used by clang-format has been updated. * mo/clang-format-for-each-update: clang-format: use git grep to generate the ForEachMacros list by gitster
๐Ÿ› ๏ธ Merge branch 'md/url-parse-harden' into maint The URL decoding code has been updated to avoid going past the end of the string while parsing %-- sequence. * md/url-parse-harden: url: do not allow %00 to represent NUL in URLs url: do not read past end of buffer by gitster
๐Ÿ› ๏ธ Merge branch 'an/ignore-doc-update' into maint The description about slashes in gitignore patterns (used to indicate things like "anchored to this level only" and "only matches directories") has been revamped. * an/ignore-doc-update: gitignore.txt: make slash-rules more readable by gitster
๐Ÿ› ๏ธ Merge branch 'md/list-objects-filter-memfix' into maint The filter_data used in the list-objects-filter (which manages a lazily sparse clone repository) did not use the dynamic array API correctly---'nr' is supposed to point at one past the last element of the array in use. This has been corrected. * md/list-objects-filter-memfix: list-objects-filter: correct usage of ALLOC_GROW by gitster
๐Ÿ› ๏ธ Merge branch 'jt/partial-clone-missing-ref-delta-base' into maint "git fetch" into a lazy clone forgot to fetch base objects that are necessary to complete delta in a thin packfile, which has been corrected. * jt/partial-clone-missing-ref-delta-base: t5616: cover case of client having delta base t5616: use correct flag to check object is missing index-pack: prefetch missing REF_DELTA bases t5616: refactor packfile replacement by gitster
๐Ÿ› ๏ธ Merge branch 'xl/record-partial-clone-origin' into maint When creating a partial clone, the object filtering criteria is recorded for the origin of the clone, but this incorrectly used a hardcoded name "origin" to name that remote; it has been corrected to honor the "--origin " option. * xl/record-partial-clone-origin: clone: respect user supplied origin name when setting up partial clone by gitster
๐Ÿ› ๏ธ Merge branch 'pb/request-pull-verify-remote-ref' into maint "git request-pull" learned to warn when the ref we ask them to pull from in the local repository and in the published repository are different. * pb/request-pull-verify-remote-ref: request-pull: warn if the remote object is not the same as the local one request-pull: quote regex metacharacters in local ref by gitster
๐Ÿ› ๏ธ Merge branch 'mm/p4-unshelve-windows-fix' into maint The command line to invoke a "git cat-file" command from inside "git p4" was not properly quoted to protect a caret and running a broken command on Windows, which has been corrected. * mm/p4-unshelve-windows-fix: p4 unshelve: fix "Not a valid object name HEAD0" on Windows by gitster
๐Ÿ› ๏ธ Merge branch 'bb/unicode-12.1-reiwa' into maint Update to Unicode 12.1 width table. * bb/unicode-12.1-reiwa: unicode: update the width tables to Unicode 12.1 by gitster
๐Ÿ› ๏ธ Merge branch 'js/fsmonitor-unflake' into maint The data collected by fsmonitor was not properly written back to the on-disk index file, breaking t7519 tests occasionally, which has been corrected. * js/fsmonitor-unflake: mark_fsmonitor_valid(): mark the index as changed if needed fill_stat_cache_info(): prepare for an fsmonitor fix by gitster
๐Ÿ› ๏ธ Merge branch 'vv/merge-squash-with-explicit-commit' into maint "git merge --squash" is designed to update the working tree and the index without creating the commit, and this cannot be countermanded by adding the "--commit" option; the command now refuses to work when both options are given. * vv/merge-squash-with-explicit-commit: merge: refuse --commit with --squash by gitster
๐Ÿ› ๏ธ Merge branch 'js/bundle-verify-require-object-store' into maint "git bundle verify" needs to see if prerequisite objects exist in the receiving repository, but the command did not check if we are in a repository upfront, which has been corrected. * js/bundle-verify-require-object-store: bundle verify: error out if called without an object database by gitster
๐Ÿ› ๏ธ Merge branch 'jk/am-i-resolved-fix' into maint "git am -i --resolved" segfaulted after trying to see a commit as if it were a tree, which has been corrected. * jk/am-i-resolved-fix: am: fix --interactive HEAD tree resolution am: drop tty requirement for --interactive am: read interactive input from stdin am: simplify prompt response handling by gitster
๐Ÿ› ๏ธ Merge branch 'jk/HEAD-symref-in-xfer-namespaces' into maint The server side support for "git fetch" used to show incorrect value for the HEAD symbolic ref when the namespace feature is in use, which has been corrected. * jk/HEAD-symref-in-xfer-namespaces: upload-pack: strip namespace from symref data by gitster
๐Ÿ› ๏ธ Merge branch 'ew/server-info-remove-crufts' into maint "git update-server-info" used to leave stale packfiles in its output, which has been corrected. * ew/server-info-remove-crufts: server-info: do not list unlinked packs by gitster
๐Ÿ› ๏ธ Merge branch 'es/grep-require-name-when-needed' into maint More parameter validation. * es/grep-require-name-when-needed: grep: fail if call could output and name is null by gitster
๐Ÿ› ๏ธ Merge branch 'ds/object-info-for-prefetch-fix' into maint Code cleanup and futureproof. * ds/object-info-for-prefetch-fix: sha1-file: split OBJECT_INFO_FOR_PREFETCH by gitster
๐Ÿ› ๏ธ Merge branch 'mh/import-transport-fd-fix' into maint The ownership rule for the file descriptor to fast-import remote backend was mixed up, leading to unrelated file descriptor getting closed, which has been fixed. * mh/import-transport-fd-fix: Use xmmap_gently instead of xmmap in use_pack dup() the input fd for fast-import used for remote helpers by gitster
๐Ÿ› ๏ธ Merge branch 'nd/corrupt-worktrees' into maint "git worktree add" used to fail when another worktree connected to the same repository was corrupt, which has been corrected. * nd/corrupt-worktrees: worktree add: be tolerant of corrupt worktrees by gitster
๐Ÿ› ๏ธ Merge branch 'nd/init-relative-template-fix' into maint A relative pathname given to "git init --template= " ought to be relative to the directory "git init" gets invoked in, but it instead was made relative to the repository, which has been corrected. * nd/init-relative-template-fix: init: make --template path relative to $CWD by gitster
๐Ÿ› ๏ธ The seventh batch Signed-off-by: Junio C Hamano [email protected] by gitster
๐Ÿ› ๏ธ Merge branch 'jk/test-commit-bulk' A test helper has been introduced to optimize preparation of test repositories with many simple commits, and a handful of test scripts have been updated to use it. * jk/test-commit-bulk: t6200: use test_commit_bulk t5703: use test_commit_bulk t5702: use test_commit_bulk t3311: use test_commit_bulk t5310: increase the number of bitmapped commits test-lib: introduce test_commit_bulk by gitster
๐Ÿ› ๏ธ Merge branch 'di/readme-markup-fix' Docfix. * di/readme-markup-fix: README: fix rendering of text in angle brackets by gitster
๐Ÿ› ๏ธ Merge branch 'jc/denoise-rm-to-resolve' "git rm" to resolve a conflicted path leaked an internal message "needs merge" before actually removing the path, which was confusing. This has been corrected. * jc/denoise-rm-to-resolve: rm: resolving by removal is not a warning-worthy event by gitster
๐Ÿ› ๏ธ Merge branch 'js/clean-report-too-long-a-path' "git clean" silently skipped a path when it cannot lstat() it; now it gives a warning. * js/clean-report-too-long-a-path: clean: show an error message when the path is too long by gitster
๐Ÿ› ๏ธ Merge branch 'tg/stash-keep-index-with-removed-paths' "git stash --keep-index" did not work correctly on paths that have been removed, which has been fixed. * tg/stash-keep-index-with-removed-paths: stash: fix handling removed files with --keep-index by gitster
๐Ÿ› ๏ธ Merge branch 'sr/gpg-interface-stop-at-the-end' A codepath that reads from GPG for signed object verification read past the end of allocated buffer, which has been fixed. * sr/gpg-interface-stop-at-the-end: gpg-interface: do not scan past the end of buffer by gitster
๐Ÿ› ๏ธ Merge branch 'js/mingw-spawn-with-spaces-in-path' Window 7 update ;-) * js/mingw-spawn-with-spaces-in-path: mingw: support spawning programs containing spaces in their names by gitster
๐Ÿ› ๏ธ Merge branch 'jc/post-c89-rules-doc' We have been trying out a few language features outside c89; the coding guidelines document did not talk about them and instead had a blanket ban against them. * jc/post-c89-rules-doc: CodingGuidelines: spell out post-C89 rules by gitster
๐Ÿ› ๏ธ Merge branch 'mt/dir-iterator-updates' Adjust the dir-iterator API and apply it to the local clone optimization codepath. * mt/dir-iterator-updates: clone: replace strcmp by fspathcmp clone: use dir-iterator to avoid explicit dir traversal clone: extract function from copy_or_link_directory clone: copy hidden paths at local clone dir-iterator: add flags parameter to dir_iterator_begin dir-iterator: refactor state machine model dir-iterator: use warning_errno when possible dir-iterator: add tests for dir-iterator API clone: better handle symlinked files at .git/objects/ clone: test for our behavior on odd objects/* content by gitster
๐Ÿ› ๏ธ Merge branch 'vn/xmmap-gently' Clean-up an error codepath. * vn/xmmap-gently: read-cache.c: do not die if mmap fails by gitster
๐Ÿ› ๏ธ Merge branch 'ac/log-use-mailmap-by-default-transition' The "git log" command learns to issue a warning when log.mailmap configuration is not set and --[no-]mailmap option is not used, to prepare users for future versions of Git that uses the mailmap by default. * ac/log-use-mailmap-by-default-transition: tests: defang pager tests by explicitly disabling the log.mailmap warning documentation: mention --no-use-mailmap and log.mailmap false setting log: add warning for unspecified log.mailmap setting by gitster
๐Ÿ› ๏ธ Merge branch 'es/local-atomic-push-failure-with-http' "git push --atomic" that goes over the transport-helper (namely, the smart http transport) failed to prevent refs to be pushed when it can locally tell that one of the ref update will fail without having to consult the other end, which has been corrected. * es/local-atomic-push-failure-with-http: transport-helper: avoid var decl in for () loop control transport-helper: enforce atomic in push_refs_with_push by gitster
๐Ÿ› ๏ธ Merge branch 'rm/gpg-program-doc-fix' Docfix. * rm/gpg-program-doc-fix: gpg(docs): use correct --verify syntax by gitster
๐Ÿ› ๏ธ Merge branch 'js/unmap-before-ext-diff' Windows update. * js/unmap-before-ext-diff: diff: munmap() file contents before running external diff by gitster
๐Ÿ› ๏ธ Merge branch 'tg/range-diff-output-update' "git range-diff" output has been tweaked for easier identification of which part of what file the patch shown is about. * tg/range-diff-output-update: range-diff: add headers to the outer hunk header range-diff: add filename to inner diff range-diff: add section header instead of diff header range-diff: suppress line count in outer diff range-diff: don't remove funcname from inner diff range-diff: split lines manually range-diff: fix function parameter indentation apply: make parse_git_diff_header public apply: only pass required data to gitdiff_* functions apply: only pass required data to find_name_* apply: only pass required data to check_header_line apply: only pass required data to git_header_name apply: only pass required data to skip_tree_prefix apply: replace marc.info link with public-inbox by gitster
๐Ÿ› ๏ธ Merge branch 'ab/test-env' Many GIT_TEST_* environment variables control various aspects of how our tests are run, but a few followed "non-empty is true, empty or unset is false" while others followed the usual "there are a few ways to spell true, like yes, on, etc., and also ways to spell false, like no, off, etc." convention. * ab/test-env: env--helper: mark a file-local symbol as static tests: make GIT_TEST_FAIL_PREREQS a boolean tests: replace test_tristate with "git env--helper" tests README: re-flow a previously changed paragraph tests: make GIT_TEST_GETTEXT_POISON a boolean t6040 test: stop using global "script" variable config.c: refactor die_bad_number() to not call gettext() early env--helper: new undocumented builtin wrapping git_env_*() config tests: simplify include cycle test by gitster
๐Ÿ› ๏ธ t6200: use test_commit_bulk There's a loop that creates 30 commits using test_commit. Using test_commit_bulk speeds this up from: Benchmark #1: ./t6200-fmt-merge-msg.sh --root=/var/ram/git-tests Time (mean ยฑ ฯƒ): 1.926 s ยฑ 0.240 s [User: 1.055 s, System: 0.963 s] Range (min โ€ฆ max): 1.431 s โ€ฆ 2.166 s 10 runs to: Benchmark #1: ./t6200-fmt-merge-msg.sh --root=/var/ram/git-tests Time (mean ยฑ ฯƒ): 1.343 s ยฑ 0.179 s [User: 766.5 ms, System: 662.9 ms] Range (min โ€ฆ max): 1.032 s โ€ฆ 1.664 s 10 runs for an average savings of over 30%. Signed-off-by: Jeff King [email protected] Signed-off-by: Junio C Hamano [email protected] by peff


CONTRIBUTORS

Last week there were 2 contributors.
๐Ÿ‘ค gitster
๐Ÿ‘ค peff


STARGAZERS

Last week there were no stargazers.


RELEASES

Last week there were no releases.


That's all for last week, please ๐Ÿ‘€ Watch and โญ Star the repository gitgitgadget/git to receive next weekly updates. ๐Ÿ˜ƒ

You can also view all Weekly Digests by clicking here.

Your Weekly Digest bot. ๐Ÿ“†

rebase -ir should warn (or error out) when commits were produced but not included in the final commit history

It is easy to do this:

pick something

reset somewhere else
pick something different
label this-is-my-branch

reset onto
merge this-is-my-branch

Obviously, the first pick was not included, by mistake.

So every time reset is executed, it should record the HEAD's hash in a growing list, and verify in the end that they are reachable (possibly using the refs/rewritten/* refs with name-rev to display nicer names).

This feature is similar in spirit to the warning when calling git checkout <branch> on a detached HEAD, where the user is told about the commits that would now be lost.

Migrated from https://bugs.chromium.org/p/git/issues/detail?id=32

range-diff: allow comparing branches to mboxes

A neat trick that could come in real handy at times would be to teach git range-diff to compare a local branch to a patch series that is provided as an mbox, e.g. to use git range-diff to see
whether a given patch series on the mailing list has made it into git.git's pu branch yet.

We could introduce range-diff mbox:<file> A..B for that, for example.

This would still require some scripting to e.g. pull down the mbox files of a patch series from https://public-inbox.org/git.

But it would solve the problem where current range-diff requires local branches, and therefore the user would have to find a commit where the patch series actually applies first.

format.outputDirectory should be based on the top of the repository

Currently, if one has format.outputDirectory set, the output directory will be relative to wherever they've run the command, not the top of the repository. We should make it relative to the Git repository instead so that users don't end up creating patches in unintended locations.

Or maybe the current behaviour is desired and we should just force users to use an absolute path if they don't want this to happen. This requires discussion.

range-diff: add support for `--left-only` and `--right-only`

When contributing patches to Git, developers often need to compare in what form those patches made it upstream (e.g. to pick up fixes made by the Git maintainer in preparation for a new iteration). In such a case, a --left-only (or --right-only) option would come in real handy, to allow git range-diff --left-only <branch>..upstream/pu to skip commits that are upstream only (as there will be a metric ton of them).

rebase -i: implement --nested

The problem: during an interactive rebase, the user might realize that they want to redo (part of) the rebase, e.g. to resolve merge conflicts in a different way, say, by re-picking the latest three commits. Usually one would do git rebase -i HEAD~3, but that does not work because we are already in a rebase.

What I typically do is to create a throw-away worktree with git worktree add --detach, call git rebase -i HEAD~3 in that worktree, then copy the output of git rev-parse HEAD, then remove the worktree, and call git reset --hard <commit> in the original worktree.

That is fraught with danger, though, and very inconvenient.

The proposed solution: a new git rebase -i --nested [...] option. The --nested option would allow

This would generate the todo list as usual, but then prepend it to the current todo list. At the end, it would insert a new command that indicates that the nested rebase is now complete, and at the same time provides enough information to allow git rebase --abort to abort the nested rebase.

Some care will have to be taken in case of combining --nested with --rebase-merges: that will potentially override the onto label. In that instance, at the end of the nested rebase we would have to re-set the onto label to the original value.

It is not yet possible to call label <name> <commit>, only label <name>. We would have to introduce the former form to make it possible to re-set the onto label. Or use reset <commit> and then label <name>, but that is somewhat ugly.

Add documentation for "git commit --date=now"

There are some special strings that we can pass to --date in git commit, e.g. now, yesterday, noon, tea...

Personally I think --date=now is the most useful because I will use it with git commit --amend. I guess we don't have to make an exhaustive list of special strings in the documentation, but I think we can at least mention now.

Weekly Digest (14 July, 2019 - 21 July, 2019)

Here's the Weekly Digest for gitgitgadget/git:


ISSUES

Last week 4 issues were created.
Of these, 0 issues have been closed and 4 issues are still open.

OPEN ISSUES

๐Ÿ’š #290 Travis CI: Lint for Python syntax errors and undefined names, by cclauss
๐Ÿ’š #289 Fix rendering of text in angle brackets in README.md, by dilijev
๐Ÿ’š #288 ci: automatically build Git using MSVC in our Azure Pipeline, by dscho
๐Ÿ’š #287 Reinstate support for Visual Studio, by dscho

NOISY ISSUE

๐Ÿ”ˆ #287 Reinstate support for Visual Studio, by dscho
It received 11 comments.


PULL REQUESTS

Last week, 12 pull requests were created, updated or merged.

UPDATED PULL REQUEST

Last week, 12 pull requests were updated.
๐Ÿ’› #290 Travis CI: Lint for Python syntax errors and undefined names, by cclauss
๐Ÿ’› #289 Fix rendering of text in angle brackets in README.md, by dilijev
๐Ÿ’› #288 ci: automatically build Git using MSVC in our Azure Pipeline, by dscho
๐Ÿ’› #287 Reinstate support for Visual Studio, by dscho
๐Ÿ’› #285 Update gpg.txt to correct gpg --verify syntax, by rtmorgan
๐Ÿ’› #264 Adding git-ignore command, tests, and documentation., by tstone2077
๐Ÿ’› #254 [RFC] Create 'core.featureAdoptionRate' setting to update config defaults, by derrickstolee
๐Ÿ’› #220 mingw: support spawning programs with paths containing spacesnames, by dscho
๐Ÿ’› #219 Show an error if too-long paths are seen by git clean -dfx, by dscho
๐Ÿ’› #213 diff: release all handles before running external diff, by dscho
๐Ÿ’› #170 git add -i: add a rudimentary version in C (supporting only status and help so far), by dscho
๐Ÿ’› #145 Avoid spawning gzip in git archive, by dscho


COMMITS

Last week there were 18 commits.
๐Ÿ› ๏ธ The sixth batch Signed-off-by: Junio C Hamano [email protected] by gitster
๐Ÿ› ๏ธ Merge branch 'ma/ref-filter-leakfix' Leakfix. * ma/ref-filter-leakfix: ref-filter: fix memory leak in free_array_item() by gitster
๐Ÿ› ๏ธ Merge branch 'js/trace2-signo-typofix' Documentation fix. * js/trace2-signo-typofix: trace2: correct trace2 field name documentation by gitster
๐Ÿ› ๏ธ Merge branch 'kb/mingw-set-home' Windows port update. * kb/mingw-set-home: mingw: initialize HOME on startup by gitster
๐Ÿ› ๏ธ Merge branch 'ea/merge-code-cleanup' A loop has been rewritten for conciseness and clarity. * ea/merge-code-cleanup: builtin/merge.c - cleanup of code in for-cycle that tests strategies by gitster
๐Ÿ› ๏ธ Merge branch 'jl/status-reduce-vertical-blank' Extra blank lines in "git status" output have been reduced. * jl/status-reduce-vertical-blank: status: remove the empty line after hints by gitster
๐Ÿ› ๏ธ Merge branch 'pw/rebase-progress-test-cleanup' Test cleanup. * pw/rebase-progress-test-cleanup: t3420: remove progress lines before comparing output by gitster
๐Ÿ› ๏ธ Merge branch 'pw/prompt-cherry-pick-revert-fix' When one step in multi step cherry-pick or revert is reset or committed, the command line prompt script failed to notice the current status, which has been improved. * pw/prompt-cherry-pick-revert-fix: git-prompt: improve cherry-pick/revert detection by gitster
๐Ÿ› ๏ธ Merge branch 'ew/repack-with-bitmaps-by-default' Generation of pack bitmaps are now disabled when .keep files exist, as these are mutually exclusive features. * ew/repack-with-bitmaps-by-default: repack: disable bitmaps-by-default if .keep files exist by gitster
๐Ÿ› ๏ธ Merge branch 'jk/check-connected-with-alternates' The tips of refs from the alternate object store can be used as starting point for reachability computation now. * jk/check-connected-with-alternates: check_everything_connected: assume alternate ref tips are valid object-store.h: move for_each_alternate_ref() from transport.h by gitster
๐Ÿ› ๏ธ Merge branch 'nd/tree-walk-with-repo' The tree-walk API learned to pass an in-core repository instance throughout more codepaths. * nd/tree-walk-with-repo: t7814: do not generate same commits in different repos Use the right 'struct repository' instead of the_repository match-trees.c: remove the_repo from shift_tree*() tree-walk.c: remove the_repo from get_tree_entry_follow_symlinks() tree-walk.c: remove the_repo from get_tree_entry() tree-walk.c: remove the_repo from fill_tree_descriptor() sha1-file.c: remove the_repo from read_object_with_reference() by gitster
๐Ÿ› ๏ธ Merge branch 'ra/cherry-pick-revert-skip' "git cherry-pick/revert" learned a new "--skip" action. * ra/cherry-pick-revert-skip: cherry-pick/revert: advise using --skip cherry-pick/revert: add --skip option sequencer: use argv_array in reset_merge sequencer: rename reset_for_rollback to reset_merge sequencer: add advice for revert by gitster
๐Ÿ› ๏ธ Merge branch 'tb/ref-filter-multiple-patterns' "git for-each-ref" with multiple patterns have been optimized. * tb/ref-filter-multiple-patterns: ref-filter.c: find disjoint pattern prefixes by gitster
๐Ÿ› ๏ธ Merge branch 'pw/status-with-corrupt-sequencer-state' The code to read state files used by the sequencer machinery for "git status" has been made more robust against a corrupt or stale state files. * pw/status-with-corrupt-sequencer-state: status: do not report errors in sequencer/todo sequencer: factor out todo command name parsing sequencer: always allow tab after command name by gitster
๐Ÿ› ๏ธ Merge branch 'ds/commit-graph-incremental' The commits in a repository can be described by multiple commit-graph files now, which allows the commit-graph files to be updated incrementally. * ds/commit-graph-incremental: commit-graph: test verify across alternates commit-graph: normalize commit-graph filenames commit-graph: test --split across alternate without --split commit-graph: test octopus merges with --split commit-graph: clean up chains after flattened write commit-graph: verify chains with --shallow mode commit-graph: create options for split files commit-graph: expire commit-graph files commit-graph: allow cross-alternate chains commit-graph: merge commit-graph chains commit-graph: add --split option to builtin commit-graph: write commit-graph chains commit-graph: rearrange chunk count logic commit-graph: add base graphs chunk commit-graph: load commit-graph chains commit-graph: rename commit_compare to oid_compare commit-graph: prepare for commit-graph chains commit-graph: document commit-graph chains by gitster
๐Ÿ› ๏ธ Merge branch 'br/blame-ignore' "git blame" learned to "ignore" commits in the history, whose effects (as well as their presence) get ignored. * br/blame-ignore: t8014: remove unnecessary braces blame: drop some unused function parameters blame: add a test to cover blame_coalesce() blame: use the fingerprint heuristic to match ignored lines blame: add a fingerprint heuristic to match ignored lines blame: optionally track line fingerprints during fill_blame_origin() blame: add config options for the output of ignored or unblamable lines blame: add the ability to ignore commits and their changes blame: use a helper function in blame_chunk() Move oidset_parse_file() to oidset.c fsck: rename and touch up init_skiplist() by gitster
๐Ÿ› ๏ธ Merge branch 'cc/test-oidmap' Extend the test coverage a bit. * cc/test-oidmap: t0016: add 'remove' subcommand test test-oidmap: remove 'add' subcommand test-hashmap: remove 'hash' command oidmap: use sha1hash() instead of static hash() function t: add t0016-oidmap.sh t/helper: add test-oidmap.c by gitster
๐Ÿ› ๏ธ Merge branch 'ds/midx-expire-repack' "git multi-pack-index" learned expire and repack subcommands. * ds/midx-expire-repack: t5319: use 'test-tool path-utils' instead of 'ls -l' t5319-multi-pack-index.sh: test batch size zero midx: add test that 'expire' respects .keep files multi-pack-index: test expire while adding packs midx: implement midx_repack() multi-pack-index: prepare 'repack' subcommand multi-pack-index: implement 'expire' subcommand midx: refactor permutation logic and pack sorting midx: simplify computation of pack name lengths multi-pack-index: prepare for 'expire' subcommand Docs: rearrange subcommands for multi-pack-index repack: refactor pack deletion for future use by gitster


CONTRIBUTORS

Last week there was 1 contributor.
๐Ÿ‘ค gitster


STARGAZERS

Last week there were no stargazers.


RELEASES

Last week there were no releases.


That's all for last week, please ๐Ÿ‘€ Watch and โญ Star the repository gitgitgadget/git to receive next weekly updates. ๐Ÿ˜ƒ

You can also view all Weekly Digests by clicking here.

Your Weekly Digest bot. ๐Ÿ“†

Reconcile `dir_exists()` and `is_directory()`

In https://github.com/git/git/blob/v2.22.0-rc1/builtin/clone.c#L885-L889, there is a function with the short and sweet name dir_exists() (which is the obvious companion to file_exists()). However, it is marked as static, so nobody can use it outside builtin/clone.c.

There is also is_directory() which obviously tries to do the very same, but it uses a name that few developers will think of when they see file_exists() and look for the equivalent function to see whether a given directory exists.

Let's reconcile these, probably by renaming is_directory() to dir_exists() and using it also in builtin/clone.c.

rebase -i: error on fixup/squash when the corresponding pick was skipped

Imagine this todo list:

pick a123 this will conflict
fixup b124 want to fix up

Now, as the oneline suggests, let's assume that the pick results in merge conflicts, and let's further assume that the user decided to skip it via git rebase --skip.

Obviously, the fixup should not blindly amend HEAD at this point, so we will probably want to error out with a helpful message.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.