diff --git a/cmd/git-gui.exe b/cmd/git-gui.exe index b1fc616bb62..49db6dc6b9c 100755 Binary files a/cmd/git-gui.exe and b/cmd/git-gui.exe differ diff --git a/cmd/git.exe b/cmd/git.exe index b3d6a634fcf..8d714343ccb 100755 Binary files a/cmd/git.exe and b/cmd/git.exe differ diff --git a/cmd/gitk.exe b/cmd/gitk.exe index 7cab708c2b2..fd26740e8e5 100755 Binary files a/cmd/gitk.exe and b/cmd/gitk.exe differ diff --git a/git-bash.exe b/git-bash.exe index 4394f4b5ee2..5b11cd968bf 100755 Binary files a/git-bash.exe and b/git-bash.exe differ diff --git a/git-cmd.exe b/git-cmd.exe index c530670196d..deb6624bd0c 100755 Binary files a/git-cmd.exe and b/git-cmd.exe differ diff --git a/mingw64/bin/git-cvsserver b/mingw64/bin/git-cvsserver index 4791362282b..8727b55f96b 100755 --- a/mingw64/bin/git-cvsserver +++ b/mingw64/bin/git-cvsserver @@ -69,7 +69,7 @@ use File::Path qw/rmtree/; use File::Basename; use Getopt::Long qw(:config require_order no_ignore_case); -my $VERSION = '2.34.1.windows.1'; +my $VERSION = '2.35.0.rc0.windows.1'; my $log = GITCVS::log->new(); my $cfg; @@ -3650,6 +3650,22 @@ package GITCVS::updater; use strict; use warnings; use DBI; +our $_use_fsync; + +# n.b. consider using Git.pm +sub use_fsync { + if (!defined($_use_fsync)) { + my $x = $ENV{GIT_TEST_FSYNC}; + if (defined $x) { + local $ENV{GIT_CONFIG}; + delete $ENV{GIT_CONFIG}; + my $v = ::safe_pipe_capture('git', '-c', "test.fsync=$x", + qw(config --type=bool test.fsync)); + $_use_fsync = defined($v) ? ($v eq "true\n") : 1; + } + } + $_use_fsync; +} =head1 METHODS @@ -3719,6 +3735,9 @@ sub new $self->{dbuser}, $self->{dbpass}); die "Error connecting to database\n" unless defined $self->{dbh}; + if ($self->{dbdriver} eq 'SQLite' && !use_fsync()) { + $self->{dbh}->do('PRAGMA synchronous = OFF'); + } $self->{tables} = {}; foreach my $table ( keys %{$self->{dbh}->table_info(undef,undef,undef,'TABLE')->fetchall_hashref('TABLE_NAME')} ) diff --git a/mingw64/bin/git-receive-pack.exe b/mingw64/bin/git-receive-pack.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/bin/git-receive-pack.exe and b/mingw64/bin/git-receive-pack.exe differ diff --git a/mingw64/bin/git-shell.exe b/mingw64/bin/git-shell.exe index 1eda55413bb..849da61a239 100755 Binary files a/mingw64/bin/git-shell.exe and b/mingw64/bin/git-shell.exe differ diff --git a/mingw64/bin/git-upload-archive.exe b/mingw64/bin/git-upload-archive.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/bin/git-upload-archive.exe and b/mingw64/bin/git-upload-archive.exe differ diff --git a/mingw64/bin/git-upload-pack.exe b/mingw64/bin/git-upload-pack.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/bin/git-upload-pack.exe and b/mingw64/bin/git-upload-pack.exe differ diff --git a/mingw64/bin/git.exe b/mingw64/bin/git.exe index bd8d9856608..716d60c58f1 100755 Binary files a/mingw64/bin/git.exe and b/mingw64/bin/git.exe differ diff --git a/mingw64/libexec/git-core/git-add--interactive b/mingw64/libexec/git-core/git-add--interactive index e955e4d293a..f825ea2308c 100755 --- a/mingw64/libexec/git-core/git-add--interactive +++ b/mingw64/libexec/git-core/git-add--interactive @@ -1236,15 +1236,17 @@ sub prompt_single_character { ReadMode 'cbreak'; my $key = ReadKey 0; ReadMode 'restore'; - if ($use_termcap and $key eq "\e") { - while (!defined $term_escapes{$key}) { - my $next = ReadKey 0.5; - last if (!defined $next); - $key .= $next; + if (defined $key) { + if ($use_termcap and $key eq "\e") { + while (!defined $term_escapes{$key}) { + my $next = ReadKey 0.5; + last if (!defined $next); + $key .= $next; + } + $key =~ s/\e/^[/; } - $key =~ s/\e/^[/; + print "$key"; } - print "$key" if defined $key; print "\n"; return $key; } else { diff --git a/mingw64/libexec/git-core/git-add.exe b/mingw64/libexec/git-core/git-add.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-add.exe and b/mingw64/libexec/git-core/git-add.exe differ diff --git a/mingw64/libexec/git-core/git-am.exe b/mingw64/libexec/git-core/git-am.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-am.exe and b/mingw64/libexec/git-core/git-am.exe differ diff --git a/mingw64/libexec/git-core/git-annotate.exe b/mingw64/libexec/git-core/git-annotate.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-annotate.exe and b/mingw64/libexec/git-core/git-annotate.exe differ diff --git a/mingw64/libexec/git-core/git-apply.exe b/mingw64/libexec/git-core/git-apply.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-apply.exe and b/mingw64/libexec/git-core/git-apply.exe differ diff --git a/mingw64/libexec/git-core/git-archive.exe b/mingw64/libexec/git-core/git-archive.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-archive.exe and b/mingw64/libexec/git-core/git-archive.exe differ diff --git a/mingw64/libexec/git-core/git-bisect--helper.exe b/mingw64/libexec/git-core/git-bisect--helper.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-bisect--helper.exe and b/mingw64/libexec/git-core/git-bisect--helper.exe differ diff --git a/mingw64/libexec/git-core/git-blame.exe b/mingw64/libexec/git-core/git-blame.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-blame.exe and b/mingw64/libexec/git-core/git-blame.exe differ diff --git a/mingw64/libexec/git-core/git-branch.exe b/mingw64/libexec/git-core/git-branch.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-branch.exe and b/mingw64/libexec/git-core/git-branch.exe differ diff --git a/mingw64/libexec/git-core/git-bugreport.exe b/mingw64/libexec/git-core/git-bugreport.exe index 0f4c6a685ec..1767baa4c4f 100644 Binary files a/mingw64/libexec/git-core/git-bugreport.exe and b/mingw64/libexec/git-core/git-bugreport.exe differ diff --git a/mingw64/libexec/git-core/git-bundle.exe b/mingw64/libexec/git-core/git-bundle.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-bundle.exe and b/mingw64/libexec/git-core/git-bundle.exe differ diff --git a/mingw64/libexec/git-core/git-cat-file.exe b/mingw64/libexec/git-core/git-cat-file.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-cat-file.exe and b/mingw64/libexec/git-core/git-cat-file.exe differ diff --git a/mingw64/libexec/git-core/git-check-attr.exe b/mingw64/libexec/git-core/git-check-attr.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-check-attr.exe and b/mingw64/libexec/git-core/git-check-attr.exe differ diff --git a/mingw64/libexec/git-core/git-check-ignore.exe b/mingw64/libexec/git-core/git-check-ignore.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-check-ignore.exe and b/mingw64/libexec/git-core/git-check-ignore.exe differ diff --git a/mingw64/libexec/git-core/git-check-mailmap.exe b/mingw64/libexec/git-core/git-check-mailmap.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-check-mailmap.exe and b/mingw64/libexec/git-core/git-check-mailmap.exe differ diff --git a/mingw64/libexec/git-core/git-check-ref-format.exe b/mingw64/libexec/git-core/git-check-ref-format.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-check-ref-format.exe and b/mingw64/libexec/git-core/git-check-ref-format.exe differ diff --git a/mingw64/libexec/git-core/git-checkout--worker.exe b/mingw64/libexec/git-core/git-checkout--worker.exe index 0f4c6a685ec..1767baa4c4f 100644 Binary files a/mingw64/libexec/git-core/git-checkout--worker.exe and b/mingw64/libexec/git-core/git-checkout--worker.exe differ diff --git a/mingw64/libexec/git-core/git-checkout-index.exe b/mingw64/libexec/git-core/git-checkout-index.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-checkout-index.exe and b/mingw64/libexec/git-core/git-checkout-index.exe differ diff --git a/mingw64/libexec/git-core/git-checkout.exe b/mingw64/libexec/git-core/git-checkout.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-checkout.exe and b/mingw64/libexec/git-core/git-checkout.exe differ diff --git a/mingw64/libexec/git-core/git-cherry-pick.exe b/mingw64/libexec/git-core/git-cherry-pick.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-cherry-pick.exe and b/mingw64/libexec/git-core/git-cherry-pick.exe differ diff --git a/mingw64/libexec/git-core/git-cherry.exe b/mingw64/libexec/git-core/git-cherry.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-cherry.exe and b/mingw64/libexec/git-core/git-cherry.exe differ diff --git a/mingw64/libexec/git-core/git-clean.exe b/mingw64/libexec/git-core/git-clean.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-clean.exe and b/mingw64/libexec/git-core/git-clean.exe differ diff --git a/mingw64/libexec/git-core/git-clone.exe b/mingw64/libexec/git-core/git-clone.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-clone.exe and b/mingw64/libexec/git-core/git-clone.exe differ diff --git a/mingw64/libexec/git-core/git-column.exe b/mingw64/libexec/git-core/git-column.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-column.exe and b/mingw64/libexec/git-core/git-column.exe differ diff --git a/mingw64/libexec/git-core/git-commit-graph.exe b/mingw64/libexec/git-core/git-commit-graph.exe index 0f4c6a685ec..1767baa4c4f 100644 Binary files a/mingw64/libexec/git-core/git-commit-graph.exe and b/mingw64/libexec/git-core/git-commit-graph.exe differ diff --git a/mingw64/libexec/git-core/git-commit-tree.exe b/mingw64/libexec/git-core/git-commit-tree.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-commit-tree.exe and b/mingw64/libexec/git-core/git-commit-tree.exe differ diff --git a/mingw64/libexec/git-core/git-commit.exe b/mingw64/libexec/git-core/git-commit.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-commit.exe and b/mingw64/libexec/git-core/git-commit.exe differ diff --git a/mingw64/libexec/git-core/git-config.exe b/mingw64/libexec/git-core/git-config.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-config.exe and b/mingw64/libexec/git-core/git-config.exe differ diff --git a/mingw64/libexec/git-core/git-count-objects.exe b/mingw64/libexec/git-core/git-count-objects.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-count-objects.exe and b/mingw64/libexec/git-core/git-count-objects.exe differ diff --git a/mingw64/libexec/git-core/git-credential-cache--daemon.exe b/mingw64/libexec/git-core/git-credential-cache--daemon.exe index 0f4c6a685ec..1767baa4c4f 100644 Binary files a/mingw64/libexec/git-core/git-credential-cache--daemon.exe and b/mingw64/libexec/git-core/git-credential-cache--daemon.exe differ diff --git a/mingw64/libexec/git-core/git-credential-cache.exe b/mingw64/libexec/git-core/git-credential-cache.exe index 0f4c6a685ec..1767baa4c4f 100644 Binary files a/mingw64/libexec/git-core/git-credential-cache.exe and b/mingw64/libexec/git-core/git-credential-cache.exe differ diff --git a/mingw64/libexec/git-core/git-credential-store.exe b/mingw64/libexec/git-core/git-credential-store.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-credential-store.exe and b/mingw64/libexec/git-core/git-credential-store.exe differ diff --git a/mingw64/libexec/git-core/git-credential-wincred.exe b/mingw64/libexec/git-core/git-credential-wincred.exe index c5ccd95b1ed..54e886e2708 100755 Binary files a/mingw64/libexec/git-core/git-credential-wincred.exe and b/mingw64/libexec/git-core/git-credential-wincred.exe differ diff --git a/mingw64/libexec/git-core/git-credential.exe b/mingw64/libexec/git-core/git-credential.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-credential.exe and b/mingw64/libexec/git-core/git-credential.exe differ diff --git a/mingw64/libexec/git-core/git-cvsserver b/mingw64/libexec/git-core/git-cvsserver index 4791362282b..8727b55f96b 100755 --- a/mingw64/libexec/git-core/git-cvsserver +++ b/mingw64/libexec/git-core/git-cvsserver @@ -69,7 +69,7 @@ use File::Path qw/rmtree/; use File::Basename; use Getopt::Long qw(:config require_order no_ignore_case); -my $VERSION = '2.34.1.windows.1'; +my $VERSION = '2.35.0.rc0.windows.1'; my $log = GITCVS::log->new(); my $cfg; @@ -3650,6 +3650,22 @@ package GITCVS::updater; use strict; use warnings; use DBI; +our $_use_fsync; + +# n.b. consider using Git.pm +sub use_fsync { + if (!defined($_use_fsync)) { + my $x = $ENV{GIT_TEST_FSYNC}; + if (defined $x) { + local $ENV{GIT_CONFIG}; + delete $ENV{GIT_CONFIG}; + my $v = ::safe_pipe_capture('git', '-c', "test.fsync=$x", + qw(config --type=bool test.fsync)); + $_use_fsync = defined($v) ? ($v eq "true\n") : 1; + } + } + $_use_fsync; +} =head1 METHODS @@ -3719,6 +3735,9 @@ sub new $self->{dbuser}, $self->{dbpass}); die "Error connecting to database\n" unless defined $self->{dbh}; + if ($self->{dbdriver} eq 'SQLite' && !use_fsync()) { + $self->{dbh}->do('PRAGMA synchronous = OFF'); + } $self->{tables} = {}; foreach my $table ( keys %{$self->{dbh}->table_info(undef,undef,undef,'TABLE')->fetchall_hashref('TABLE_NAME')} ) diff --git a/mingw64/libexec/git-core/git-daemon.exe b/mingw64/libexec/git-core/git-daemon.exe index 737f3b3215d..10fa67d2578 100755 Binary files a/mingw64/libexec/git-core/git-daemon.exe and b/mingw64/libexec/git-core/git-daemon.exe differ diff --git a/mingw64/libexec/git-core/git-describe.exe b/mingw64/libexec/git-core/git-describe.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-describe.exe and b/mingw64/libexec/git-core/git-describe.exe differ diff --git a/mingw64/libexec/git-core/git-diff-files.exe b/mingw64/libexec/git-core/git-diff-files.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-diff-files.exe and b/mingw64/libexec/git-core/git-diff-files.exe differ diff --git a/mingw64/libexec/git-core/git-diff-index.exe b/mingw64/libexec/git-core/git-diff-index.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-diff-index.exe and b/mingw64/libexec/git-core/git-diff-index.exe differ diff --git a/mingw64/libexec/git-core/git-diff-tree.exe b/mingw64/libexec/git-core/git-diff-tree.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-diff-tree.exe and b/mingw64/libexec/git-core/git-diff-tree.exe differ diff --git a/mingw64/libexec/git-core/git-diff.exe b/mingw64/libexec/git-core/git-diff.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-diff.exe and b/mingw64/libexec/git-core/git-diff.exe differ diff --git a/mingw64/libexec/git-core/git-difftool.exe b/mingw64/libexec/git-core/git-difftool.exe index 0f4c6a685ec..1767baa4c4f 100644 Binary files a/mingw64/libexec/git-core/git-difftool.exe and b/mingw64/libexec/git-core/git-difftool.exe differ diff --git a/mingw64/libexec/git-core/git-env--helper.exe b/mingw64/libexec/git-core/git-env--helper.exe index 0f4c6a685ec..1767baa4c4f 100644 Binary files a/mingw64/libexec/git-core/git-env--helper.exe and b/mingw64/libexec/git-core/git-env--helper.exe differ diff --git a/mingw64/libexec/git-core/git-fast-export.exe b/mingw64/libexec/git-core/git-fast-export.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-fast-export.exe and b/mingw64/libexec/git-core/git-fast-export.exe differ diff --git a/mingw64/libexec/git-core/git-fast-import.exe b/mingw64/libexec/git-core/git-fast-import.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-fast-import.exe and b/mingw64/libexec/git-core/git-fast-import.exe differ diff --git a/mingw64/libexec/git-core/git-fetch-pack.exe b/mingw64/libexec/git-core/git-fetch-pack.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-fetch-pack.exe and b/mingw64/libexec/git-core/git-fetch-pack.exe differ diff --git a/mingw64/libexec/git-core/git-fetch.exe b/mingw64/libexec/git-core/git-fetch.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-fetch.exe and b/mingw64/libexec/git-core/git-fetch.exe differ diff --git a/mingw64/libexec/git-core/git-filter-branch b/mingw64/libexec/git-core/git-filter-branch index 71a9425539e..490b41bdc2b 100755 --- a/mingw64/libexec/git-core/git-filter-branch +++ b/mingw64/libexec/git-core/git-filter-branch @@ -579,7 +579,7 @@ if [ "$filter_tag_name" ]; then git hash-object -t tag -w --stdin) || die "Could not create new tag object for $ref" if git cat-file tag "$ref" | \ - sane_grep '^-----BEGIN PGP SIGNATURE-----' >/dev/null 2>&1 + grep '^-----BEGIN PGP SIGNATURE-----' >/dev/null 2>&1 then warn "gpg signature stripped from tag object $sha1t" fi diff --git a/mingw64/libexec/git-core/git-fmt-merge-msg.exe b/mingw64/libexec/git-core/git-fmt-merge-msg.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-fmt-merge-msg.exe and b/mingw64/libexec/git-core/git-fmt-merge-msg.exe differ diff --git a/mingw64/libexec/git-core/git-for-each-ref.exe b/mingw64/libexec/git-core/git-for-each-ref.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-for-each-ref.exe and b/mingw64/libexec/git-core/git-for-each-ref.exe differ diff --git a/mingw64/libexec/git-core/git-for-each-repo.exe b/mingw64/libexec/git-core/git-for-each-repo.exe index 0f4c6a685ec..1767baa4c4f 100644 Binary files a/mingw64/libexec/git-core/git-for-each-repo.exe and b/mingw64/libexec/git-core/git-for-each-repo.exe differ diff --git a/mingw64/libexec/git-core/git-format-patch.exe b/mingw64/libexec/git-core/git-format-patch.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-format-patch.exe and b/mingw64/libexec/git-core/git-format-patch.exe differ diff --git a/mingw64/libexec/git-core/git-fsck-objects.exe b/mingw64/libexec/git-core/git-fsck-objects.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-fsck-objects.exe and b/mingw64/libexec/git-core/git-fsck-objects.exe differ diff --git a/mingw64/libexec/git-core/git-fsck.exe b/mingw64/libexec/git-core/git-fsck.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-fsck.exe and b/mingw64/libexec/git-core/git-fsck.exe differ diff --git a/mingw64/libexec/git-core/git-fsmonitor--daemon.exe b/mingw64/libexec/git-core/git-fsmonitor--daemon.exe index 0f4c6a685ec..1767baa4c4f 100644 Binary files a/mingw64/libexec/git-core/git-fsmonitor--daemon.exe and b/mingw64/libexec/git-core/git-fsmonitor--daemon.exe differ diff --git a/mingw64/libexec/git-core/git-gc.exe b/mingw64/libexec/git-core/git-gc.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-gc.exe and b/mingw64/libexec/git-core/git-gc.exe differ diff --git a/mingw64/libexec/git-core/git-get-tar-commit-id.exe b/mingw64/libexec/git-core/git-get-tar-commit-id.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-get-tar-commit-id.exe and b/mingw64/libexec/git-core/git-get-tar-commit-id.exe differ diff --git a/mingw64/libexec/git-core/git-grep.exe b/mingw64/libexec/git-core/git-grep.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-grep.exe and b/mingw64/libexec/git-core/git-grep.exe differ diff --git a/mingw64/libexec/git-core/git-hash-object.exe b/mingw64/libexec/git-core/git-hash-object.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-hash-object.exe and b/mingw64/libexec/git-core/git-hash-object.exe differ diff --git a/mingw64/libexec/git-core/git-help.exe b/mingw64/libexec/git-core/git-help.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-help.exe and b/mingw64/libexec/git-core/git-help.exe differ diff --git a/mingw64/libexec/git-core/git-http-backend.exe b/mingw64/libexec/git-core/git-http-backend.exe index 43a4eb9fc2f..9dc589df0f9 100755 Binary files a/mingw64/libexec/git-core/git-http-backend.exe and b/mingw64/libexec/git-core/git-http-backend.exe differ diff --git a/mingw64/libexec/git-core/git-http-fetch.exe b/mingw64/libexec/git-core/git-http-fetch.exe index 68179b75e5e..4d3895e684e 100755 Binary files a/mingw64/libexec/git-core/git-http-fetch.exe and b/mingw64/libexec/git-core/git-http-fetch.exe differ diff --git a/mingw64/libexec/git-core/git-http-push.exe b/mingw64/libexec/git-core/git-http-push.exe index c1d32c11832..ddb1e8f527c 100755 Binary files a/mingw64/libexec/git-core/git-http-push.exe and b/mingw64/libexec/git-core/git-http-push.exe differ diff --git a/mingw64/libexec/git-core/git-imap-send.exe b/mingw64/libexec/git-core/git-imap-send.exe index 53df6251beb..dee1fa7a5b3 100755 Binary files a/mingw64/libexec/git-core/git-imap-send.exe and b/mingw64/libexec/git-core/git-imap-send.exe differ diff --git a/mingw64/libexec/git-core/git-index-pack.exe b/mingw64/libexec/git-core/git-index-pack.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-index-pack.exe and b/mingw64/libexec/git-core/git-index-pack.exe differ diff --git a/mingw64/libexec/git-core/git-init-db.exe b/mingw64/libexec/git-core/git-init-db.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-init-db.exe and b/mingw64/libexec/git-core/git-init-db.exe differ diff --git a/mingw64/libexec/git-core/git-init.exe b/mingw64/libexec/git-core/git-init.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-init.exe and b/mingw64/libexec/git-core/git-init.exe differ diff --git a/mingw64/libexec/git-core/git-instaweb b/mingw64/libexec/git-core/git-instaweb index 1ed05ea7012..8005309c375 100755 --- a/mingw64/libexec/git-core/git-instaweb +++ b/mingw64/libexec/git-core/git-instaweb @@ -49,7 +49,7 @@ resolve_full_httpd () { *apache2*|*lighttpd*|*httpd*) # yes, *httpd* covers *lighttpd* above, but it is there for clarity # ensure that the apache2/lighttpd command ends with "-f" - if ! echo "$httpd" | sane_grep -- '-f *$' >/dev/null 2>&1 + if ! echo "$httpd" | grep -- '-f *$' >/dev/null 2>&1 then httpd="$httpd -f" fi @@ -380,10 +380,7 @@ TypesConfig "$fqgitdir/mime.types" DirectoryIndex gitweb.cgi EOF - # check to see if Dennis Stosberg's mod_perl compatibility patch - # (<20060621130708.Gcbc6e5c@leonov.stosberg.net>) has been applied - if test -f "$module_path/mod_perl.so" && - sane_grep 'MOD_PERL' "$root/gitweb.cgi" >/dev/null + if test -f "$module_path/mod_perl.so" then # favor mod_perl if available cat >> "$conf" </dev/null 2>&1 || \ + $list_mods | grep 'mod_cgi\.c' >/dev/null 2>&1 || \ if test -f "$module_path/mod_cgi.so" then echo "LoadModule cgi_module $module_path/mod_cgi.so" >> "$conf" diff --git a/mingw64/libexec/git-core/git-interpret-trailers.exe b/mingw64/libexec/git-core/git-interpret-trailers.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-interpret-trailers.exe and b/mingw64/libexec/git-core/git-interpret-trailers.exe differ diff --git a/mingw64/libexec/git-core/git-log.exe b/mingw64/libexec/git-core/git-log.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-log.exe and b/mingw64/libexec/git-core/git-log.exe differ diff --git a/mingw64/libexec/git-core/git-ls-files.exe b/mingw64/libexec/git-core/git-ls-files.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-ls-files.exe and b/mingw64/libexec/git-core/git-ls-files.exe differ diff --git a/mingw64/libexec/git-core/git-ls-remote.exe b/mingw64/libexec/git-core/git-ls-remote.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-ls-remote.exe and b/mingw64/libexec/git-core/git-ls-remote.exe differ diff --git a/mingw64/libexec/git-core/git-ls-tree.exe b/mingw64/libexec/git-core/git-ls-tree.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-ls-tree.exe and b/mingw64/libexec/git-core/git-ls-tree.exe differ diff --git a/mingw64/libexec/git-core/git-mailinfo.exe b/mingw64/libexec/git-core/git-mailinfo.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-mailinfo.exe and b/mingw64/libexec/git-core/git-mailinfo.exe differ diff --git a/mingw64/libexec/git-core/git-mailsplit.exe b/mingw64/libexec/git-core/git-mailsplit.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-mailsplit.exe and b/mingw64/libexec/git-core/git-mailsplit.exe differ diff --git a/mingw64/libexec/git-core/git-maintenance.exe b/mingw64/libexec/git-core/git-maintenance.exe index 0f4c6a685ec..1767baa4c4f 100644 Binary files a/mingw64/libexec/git-core/git-maintenance.exe and b/mingw64/libexec/git-core/git-maintenance.exe differ diff --git a/mingw64/libexec/git-core/git-merge-base.exe b/mingw64/libexec/git-core/git-merge-base.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-merge-base.exe and b/mingw64/libexec/git-core/git-merge-base.exe differ diff --git a/mingw64/libexec/git-core/git-merge-file.exe b/mingw64/libexec/git-core/git-merge-file.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-merge-file.exe and b/mingw64/libexec/git-core/git-merge-file.exe differ diff --git a/mingw64/libexec/git-core/git-merge-index.exe b/mingw64/libexec/git-core/git-merge-index.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-merge-index.exe and b/mingw64/libexec/git-core/git-merge-index.exe differ diff --git a/mingw64/libexec/git-core/git-merge-ours.exe b/mingw64/libexec/git-core/git-merge-ours.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-merge-ours.exe and b/mingw64/libexec/git-core/git-merge-ours.exe differ diff --git a/mingw64/libexec/git-core/git-merge-recursive.exe b/mingw64/libexec/git-core/git-merge-recursive.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-merge-recursive.exe and b/mingw64/libexec/git-core/git-merge-recursive.exe differ diff --git a/mingw64/libexec/git-core/git-merge-subtree.exe b/mingw64/libexec/git-core/git-merge-subtree.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-merge-subtree.exe and b/mingw64/libexec/git-core/git-merge-subtree.exe differ diff --git a/mingw64/libexec/git-core/git-merge-tree.exe b/mingw64/libexec/git-core/git-merge-tree.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-merge-tree.exe and b/mingw64/libexec/git-core/git-merge-tree.exe differ diff --git a/mingw64/libexec/git-core/git-merge.exe b/mingw64/libexec/git-core/git-merge.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-merge.exe and b/mingw64/libexec/git-core/git-merge.exe differ diff --git a/mingw64/libexec/git-core/git-mktag.exe b/mingw64/libexec/git-core/git-mktag.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-mktag.exe and b/mingw64/libexec/git-core/git-mktag.exe differ diff --git a/mingw64/libexec/git-core/git-mktree.exe b/mingw64/libexec/git-core/git-mktree.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-mktree.exe and b/mingw64/libexec/git-core/git-mktree.exe differ diff --git a/mingw64/libexec/git-core/git-multi-pack-index.exe b/mingw64/libexec/git-core/git-multi-pack-index.exe index 0f4c6a685ec..1767baa4c4f 100644 Binary files a/mingw64/libexec/git-core/git-multi-pack-index.exe and b/mingw64/libexec/git-core/git-multi-pack-index.exe differ diff --git a/mingw64/libexec/git-core/git-mv.exe b/mingw64/libexec/git-core/git-mv.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-mv.exe and b/mingw64/libexec/git-core/git-mv.exe differ diff --git a/mingw64/libexec/git-core/git-name-rev.exe b/mingw64/libexec/git-core/git-name-rev.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-name-rev.exe and b/mingw64/libexec/git-core/git-name-rev.exe differ diff --git a/mingw64/libexec/git-core/git-notes.exe b/mingw64/libexec/git-core/git-notes.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-notes.exe and b/mingw64/libexec/git-core/git-notes.exe differ diff --git a/mingw64/libexec/git-core/git-p4 b/mingw64/libexec/git-core/git-p4 index 039d9af2ffd..26df9f09084 100755 --- a/mingw64/libexec/git-core/git-p4 +++ b/mingw64/libexec/git-core/git-p4 @@ -56,6 +56,21 @@ defaultBlockSize = 1<<20 p4_access_checked = False +re_ko_keywords = re.compile(br'\$(Id|Header)(:[^$\n]+)?\$') +re_k_keywords = re.compile(br'\$(Id|Header|Author|Date|DateTime|Change|File|Revision)(:[^$\n]+)?\$') + +def format_size_human_readable(num): + """ Returns a number of units (typically bytes) formatted as a human-readable + string. + """ + if num < 1024: + return '{:d} B'.format(num) + for unit in ["Ki", "Mi", "Gi", "Ti", "Pi", "Ei", "Zi"]: + num /= 1024.0 + if num < 1024.0: + return "{:3.1f} {}B".format(num, unit) + return "{:.1f} YiB".format(num) + def p4_build_cmd(cmd): """Build a suitable p4 command line. @@ -337,17 +352,19 @@ def p4_read_pipe(c, ignore_error=False, raw=False): real_cmd = p4_build_cmd(c) return read_pipe(real_cmd, ignore_error, raw=raw) -def read_pipe_lines(c): +def read_pipe_lines(c, raw=False): if verbose: sys.stderr.write('Reading pipe: %s\n' % str(c)) expand = not isinstance(c, list) p = subprocess.Popen(c, stdout=subprocess.PIPE, shell=expand) pipe = p.stdout - val = [decode_text_stream(line) for line in pipe.readlines()] + lines = pipe.readlines() + if not raw: + lines = [decode_text_stream(line) for line in lines] if pipe.close() or p.wait(): die('Command failed: %s' % str(c)) - return val + return lines def p4_read_pipe_lines(c): """Specifically invoke p4 on the command supplied. """ @@ -577,20 +594,12 @@ def p4_type(f): # def p4_keywords_regexp_for_type(base, type_mods): if base in ("text", "unicode", "binary"): - kwords = None if "ko" in type_mods: - kwords = 'Id|Header' + return re_ko_keywords elif "k" in type_mods: - kwords = 'Id|Header|Author|Date|DateTime|Change|File|Revision' + return re_k_keywords else: return None - pattern = r""" - \$ # Starts with a dollar, followed by... - (%s) # one of the keywords, followed by... - (:[^$\n]+)? # possibly an old expansion, followed by... - \$ # another dollar - """ % kwords - return pattern else: return None @@ -1532,80 +1541,6 @@ class P4UserMap: except IOError: self.getUserMapFromPerforceServer() -class P4Debug(Command): - def __init__(self): - Command.__init__(self) - self.options = [] - self.description = "A tool to debug the output of p4 -G." - self.needsGit = False - - def run(self, args): - j = 0 - for output in p4CmdList(args): - print('Element: %d' % j) - j += 1 - print(output) - return True - -class P4RollBack(Command): - def __init__(self): - Command.__init__(self) - self.options = [ - optparse.make_option("--local", dest="rollbackLocalBranches", action="store_true") - ] - self.description = "A tool to debug the multi-branch import. Don't use :)" - self.rollbackLocalBranches = False - - def run(self, args): - if len(args) != 1: - return False - maxChange = int(args[0]) - - if "p4ExitCode" in p4Cmd("changes -m 1"): - die("Problems executing p4"); - - if self.rollbackLocalBranches: - refPrefix = "refs/heads/" - lines = read_pipe_lines("git rev-parse --symbolic --branches") - else: - refPrefix = "refs/remotes/" - lines = read_pipe_lines("git rev-parse --symbolic --remotes") - - for line in lines: - if self.rollbackLocalBranches or (line.startswith("p4/") and line != "p4/HEAD\n"): - line = line.strip() - ref = refPrefix + line - log = extractLogMessageFromGitCommit(ref) - settings = extractSettingsGitLog(log) - - depotPaths = settings['depot-paths'] - change = settings['change'] - - changed = False - - if len(p4Cmd("changes -m 1 " + ' '.join (['%s...@%s' % (p, maxChange) - for p in depotPaths]))) == 0: - print("Branch %s did not exist at change %s, deleting." % (ref, maxChange)) - system("git update-ref -d %s `git rev-parse %s`" % (ref, ref)) - continue - - while change and int(change) > maxChange: - changed = True - if self.verbose: - print("%s is at %s ; rewinding towards %s" % (ref, change, maxChange)) - system("git update-ref %s \"%s^\"" % (ref, ref)) - log = extractLogMessageFromGitCommit(ref) - settings = extractSettingsGitLog(log) - - - depotPaths = settings['depot-paths'] - change = settings['change'] - - if changed: - print("%s rewound to %s" % (ref, change)) - - return True - class P4Submit(Command, P4UserMap): conflict_behavior_choices = ("ask", "skip", "quit") @@ -1753,18 +1688,13 @@ class P4Submit(Command, P4UserMap): return result - def patchRCSKeywords(self, file, pattern): - # Attempt to zap the RCS keywords in a p4 controlled file matching the given pattern + def patchRCSKeywords(self, file, regexp): + # Attempt to zap the RCS keywords in a p4 controlled file matching the given regex (handle, outFileName) = tempfile.mkstemp(dir='.') try: - outFile = os.fdopen(handle, "w+") - inFile = open(file, "r") - regexp = re.compile(pattern, re.VERBOSE) - for line in inFile.readlines(): - line = regexp.sub(r'$\1$', line) - outFile.write(line) - inFile.close() - outFile.close() + with os.fdopen(handle, "wb") as outFile, open(file, "rb") as inFile: + for line in inFile.readlines(): + outFile.write(regexp.sub(br'$\1$', line)) # Forcibly overwrite the original file os.unlink(file) shutil.move(outFileName, file) @@ -2091,25 +2021,24 @@ class P4Submit(Command, P4UserMap): # the patch to see if that's possible. if gitConfigBool("git-p4.attemptRCSCleanup"): file = None - pattern = None kwfiles = {} for file in editedFiles | filesToDelete: # did this file's delta contain RCS keywords? - pattern = p4_keywords_regexp_for_file(file) - - if pattern: + regexp = p4_keywords_regexp_for_file(file) + if regexp: # this file is a possibility...look for RCS keywords. - regexp = re.compile(pattern, re.VERBOSE) - for line in read_pipe_lines(["git", "diff", "%s^..%s" % (id, id), file]): + for line in read_pipe_lines( + ["git", "diff", "%s^..%s" % (id, id), file], + raw=True): if regexp.search(line): if verbose: - print("got keyword match on %s in %s in %s" % (pattern, line, file)) - kwfiles[file] = pattern + print("got keyword match on %s in %s in %s" % (regex.pattern, line, file)) + kwfiles[file] = regexp break - for file in kwfiles: + for file, regexp in kwfiles.items(): if verbose: - print("zapping %s with %s" % (line,pattern)) + print("zapping %s with %s" % (line, regexp.pattern)) # File is being deleted, so not open in p4. Must # disable the read-only bit on windows. if self.isWindows and file not in editedFiles: @@ -2966,7 +2895,8 @@ class P4Sync(Command, P4UserMap): size = int(self.stream_file['fileSize']) else: size = 0 # deleted files don't get a fileSize apparently - sys.stdout.write('\r%s --> %s (%i MB)\n' % (file_path, relPath, size/1024/1024)) + sys.stdout.write('\r%s --> %s (%s)\n' % ( + file_path, relPath, format_size_human_readable(size))) sys.stdout.flush() (type_base, type_mods) = split_p4_type(file["type"]) @@ -3029,12 +2959,9 @@ class P4Sync(Command, P4UserMap): # Note that we do not try to de-mangle keywords on utf16 files, # even though in theory somebody may want that. - pattern = p4_keywords_regexp_for_type(type_base, type_mods) - if pattern: - regexp = re.compile(pattern, re.VERBOSE) - text = ''.join(decode_text_stream(c) for c in contents) - text = regexp.sub(r'$\1$', text) - contents = [ encode_text_stream(text) ] + regexp = p4_keywords_regexp_for_type(type_base, type_mods) + if regexp: + contents = [regexp.sub(br'$\1$', c) for c in contents] if self.largeFileSystem: (git_mode, contents) = self.largeFileSystem.processContent(git_mode, relPath, contents) @@ -3064,9 +2991,8 @@ class P4Sync(Command, P4UserMap): if not err and 'fileSize' in self.stream_file: required_bytes = int((4 * int(self.stream_file["fileSize"])) - calcDiskFree()) if required_bytes > 0: - err = 'Not enough space left on %s! Free at least %i MB.' % ( - os.getcwd(), required_bytes/1024/1024 - ) + err = 'Not enough space left on %s! Free at least %s.' % ( + os.getcwd(), format_size_human_readable(required_bytes)) if err: f = None @@ -3110,7 +3036,9 @@ class P4Sync(Command, P4UserMap): size = int(self.stream_file["fileSize"]) if size > 0: progress = 100*self.stream_file['streamContentSize']/size - sys.stdout.write('\r%s %d%% (%i MB)' % (self.stream_file['depotFile'], progress, int(size/1024/1024))) + sys.stdout.write('\r%s %d%% (%s)' % ( + self.stream_file['depotFile'], progress, + format_size_human_readable(size))) sys.stdout.flush() self.stream_have_file_info = True @@ -3623,7 +3551,8 @@ class P4Sync(Command, P4UserMap): self.updateOptionDict(description) if not self.silent: - sys.stdout.write("\rImporting revision %s (%s%%)" % (change, cnt * 100 / len(changes))) + sys.stdout.write("\rImporting revision %s (%d%%)" % ( + change, (cnt * 100) // len(changes))) sys.stdout.flush() cnt = cnt + 1 @@ -4363,13 +4292,11 @@ def printUsage(commands): print("") commands = { - "debug" : P4Debug, "submit" : P4Submit, "commit" : P4Submit, "sync" : P4Sync, "rebase" : P4Rebase, "clone" : P4Clone, - "rollback" : P4RollBack, "branches" : P4Branches, "unshelve" : P4Unshelve, } diff --git a/mingw64/libexec/git-core/git-pack-objects.exe b/mingw64/libexec/git-core/git-pack-objects.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-pack-objects.exe and b/mingw64/libexec/git-core/git-pack-objects.exe differ diff --git a/mingw64/libexec/git-core/git-pack-redundant.exe b/mingw64/libexec/git-core/git-pack-redundant.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-pack-redundant.exe and b/mingw64/libexec/git-core/git-pack-redundant.exe differ diff --git a/mingw64/libexec/git-core/git-pack-refs.exe b/mingw64/libexec/git-core/git-pack-refs.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-pack-refs.exe and b/mingw64/libexec/git-core/git-pack-refs.exe differ diff --git a/mingw64/libexec/git-core/git-patch-id.exe b/mingw64/libexec/git-core/git-patch-id.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-patch-id.exe and b/mingw64/libexec/git-core/git-patch-id.exe differ diff --git a/mingw64/libexec/git-core/git-prune-packed.exe b/mingw64/libexec/git-core/git-prune-packed.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-prune-packed.exe and b/mingw64/libexec/git-core/git-prune-packed.exe differ diff --git a/mingw64/libexec/git-core/git-prune.exe b/mingw64/libexec/git-core/git-prune.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-prune.exe and b/mingw64/libexec/git-core/git-prune.exe differ diff --git a/mingw64/libexec/git-core/git-pull.exe b/mingw64/libexec/git-core/git-pull.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-pull.exe and b/mingw64/libexec/git-core/git-pull.exe differ diff --git a/mingw64/libexec/git-core/git-push.exe b/mingw64/libexec/git-core/git-push.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-push.exe and b/mingw64/libexec/git-core/git-push.exe differ diff --git a/mingw64/libexec/git-core/git-range-diff.exe b/mingw64/libexec/git-core/git-range-diff.exe index 0f4c6a685ec..1767baa4c4f 100644 Binary files a/mingw64/libexec/git-core/git-range-diff.exe and b/mingw64/libexec/git-core/git-range-diff.exe differ diff --git a/mingw64/libexec/git-core/git-read-tree.exe b/mingw64/libexec/git-core/git-read-tree.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-read-tree.exe and b/mingw64/libexec/git-core/git-read-tree.exe differ diff --git a/mingw64/libexec/git-core/git-rebase.exe b/mingw64/libexec/git-core/git-rebase.exe index 0f4c6a685ec..1767baa4c4f 100644 Binary files a/mingw64/libexec/git-core/git-rebase.exe and b/mingw64/libexec/git-core/git-rebase.exe differ diff --git a/mingw64/libexec/git-core/git-receive-pack.exe b/mingw64/libexec/git-core/git-receive-pack.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-receive-pack.exe and b/mingw64/libexec/git-core/git-receive-pack.exe differ diff --git a/mingw64/libexec/git-core/git-reflog.exe b/mingw64/libexec/git-core/git-reflog.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-reflog.exe and b/mingw64/libexec/git-core/git-reflog.exe differ diff --git a/mingw64/libexec/git-core/git-remote-ext.exe b/mingw64/libexec/git-core/git-remote-ext.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-remote-ext.exe and b/mingw64/libexec/git-core/git-remote-ext.exe differ diff --git a/mingw64/libexec/git-core/git-remote-fd.exe b/mingw64/libexec/git-core/git-remote-fd.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-remote-fd.exe and b/mingw64/libexec/git-core/git-remote-fd.exe differ diff --git a/mingw64/libexec/git-core/git-remote-ftp.exe b/mingw64/libexec/git-core/git-remote-ftp.exe index 5c0a49a60ad..820600aa1fc 100755 Binary files a/mingw64/libexec/git-core/git-remote-ftp.exe and b/mingw64/libexec/git-core/git-remote-ftp.exe differ diff --git a/mingw64/libexec/git-core/git-remote-ftps.exe b/mingw64/libexec/git-core/git-remote-ftps.exe index 5c0a49a60ad..820600aa1fc 100755 Binary files a/mingw64/libexec/git-core/git-remote-ftps.exe and b/mingw64/libexec/git-core/git-remote-ftps.exe differ diff --git a/mingw64/libexec/git-core/git-remote-http.exe b/mingw64/libexec/git-core/git-remote-http.exe index 5c0a49a60ad..820600aa1fc 100755 Binary files a/mingw64/libexec/git-core/git-remote-http.exe and b/mingw64/libexec/git-core/git-remote-http.exe differ diff --git a/mingw64/libexec/git-core/git-remote-https.exe b/mingw64/libexec/git-core/git-remote-https.exe index 5c0a49a60ad..820600aa1fc 100755 Binary files a/mingw64/libexec/git-core/git-remote-https.exe and b/mingw64/libexec/git-core/git-remote-https.exe differ diff --git a/mingw64/libexec/git-core/git-remote.exe b/mingw64/libexec/git-core/git-remote.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-remote.exe and b/mingw64/libexec/git-core/git-remote.exe differ diff --git a/mingw64/libexec/git-core/git-repack.exe b/mingw64/libexec/git-core/git-repack.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-repack.exe and b/mingw64/libexec/git-core/git-repack.exe differ diff --git a/mingw64/libexec/git-core/git-replace.exe b/mingw64/libexec/git-core/git-replace.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-replace.exe and b/mingw64/libexec/git-core/git-replace.exe differ diff --git a/mingw64/libexec/git-core/git-rerere.exe b/mingw64/libexec/git-core/git-rerere.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-rerere.exe and b/mingw64/libexec/git-core/git-rerere.exe differ diff --git a/mingw64/libexec/git-core/git-reset.exe b/mingw64/libexec/git-core/git-reset.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-reset.exe and b/mingw64/libexec/git-core/git-reset.exe differ diff --git a/mingw64/libexec/git-core/git-restore.exe b/mingw64/libexec/git-core/git-restore.exe index 0f4c6a685ec..1767baa4c4f 100644 Binary files a/mingw64/libexec/git-core/git-restore.exe and b/mingw64/libexec/git-core/git-restore.exe differ diff --git a/mingw64/libexec/git-core/git-rev-list.exe b/mingw64/libexec/git-core/git-rev-list.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-rev-list.exe and b/mingw64/libexec/git-core/git-rev-list.exe differ diff --git a/mingw64/libexec/git-core/git-rev-parse.exe b/mingw64/libexec/git-core/git-rev-parse.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-rev-parse.exe and b/mingw64/libexec/git-core/git-rev-parse.exe differ diff --git a/mingw64/libexec/git-core/git-revert.exe b/mingw64/libexec/git-core/git-revert.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-revert.exe and b/mingw64/libexec/git-core/git-revert.exe differ diff --git a/mingw64/libexec/git-core/git-rm.exe b/mingw64/libexec/git-core/git-rm.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-rm.exe and b/mingw64/libexec/git-core/git-rm.exe differ diff --git a/mingw64/libexec/git-core/git-send-email b/mingw64/libexec/git-core/git-send-email index 08061236aba..13d5d030fbb 100755 --- a/mingw64/libexec/git-core/git-send-email +++ b/mingw64/libexec/git-core/git-send-email @@ -83,7 +83,8 @@ package main; sub usage { print < +git send-email' [] +git send-email' [] git send-email --dump-aliases Composing: @@ -156,9 +157,38 @@ EOT exit(1); } +sub uniq { + my %seen; + grep !$seen{$_}++, @_; +} + sub completion_helper { - print Git::command('format-patch', '--git-completion-helper'); - exit(0); + my ($original_opts) = @_; + my %not_for_completion = ( + "git-completion-helper" => undef, + "h" => undef, + ); + my @send_email_opts = (); + + foreach my $key (keys %$original_opts) { + unless (exists $not_for_completion{$key}) { + $key =~ s/!$//; + + if ($key =~ /[:=][si]$/) { + $key =~ s/[:=][si]$//; + push (@send_email_opts, "--$_=") foreach (split (/\|/, $key)); + } else { + push (@send_email_opts, "--$_") foreach (split (/\|/, $key)); + } + } + } + + my @format_patch_opts = split(/ /, Git::command('format-patch', '--git-completion-helper')); + my @opts = (@send_email_opts, @format_patch_opts); + @opts = uniq (grep !/^$/, @opts); + # There's an implicit '\n' here already, no need to add an explicit one. + print "@opts"; + exit(0); } # most mail servers generate the Date: header, but not all... @@ -468,10 +498,11 @@ my %known_config_keys; my $key = "sendemail.identity"; $identity = Git::config(@repo, $key) if exists $known_config_keys{$key}; } -my $rc = GetOptions( +my %identity_options = ( "identity=s" => \$identity, "no-identity" => \$no_identity, ); +my $rc = GetOptions(%identity_options); usage() unless $rc; undef $identity if $no_identity; @@ -487,14 +518,17 @@ undef $identity if $no_identity; my $help; my $git_completion_helper; -$rc = GetOptions("h" => \$help, - "dump-aliases" => \$dump_aliases); +my %dump_aliases_options = ( + "h" => \$help, + "dump-aliases" => \$dump_aliases, +); +$rc = GetOptions(%dump_aliases_options); usage() unless $rc; die __("--dump-aliases incompatible with other options\n") if !$help and $dump_aliases and @ARGV; -$rc = GetOptions( +my %options = ( "sender|from=s" => \$sender, - "in-reply-to=s" => \$initial_in_reply_to, + "in-reply-to=s" => \$initial_in_reply_to, "reply-to=s" => \$reply_to, "subject=s" => \$initial_subject, "to=s" => \@getopt_to, @@ -551,7 +585,8 @@ $rc = GetOptions( "batch-size=i" => \$batch_size, "relogin-delay=i" => \$relogin_delay, "git-completion-helper" => \$git_completion_helper, - ); +); +$rc = GetOptions(%options); # Munge any "either config or getopt, not both" variables my @initial_to = @getopt_to ? @getopt_to : ($no_to ? () : @config_to); @@ -559,7 +594,8 @@ my @initial_cc = @getopt_cc ? @getopt_cc : ($no_cc ? () : @config_cc); my @initial_bcc = @getopt_bcc ? @getopt_bcc : ($no_bcc ? () : @config_bcc); usage() if $help; -completion_helper() if $git_completion_helper; +my %all_options = (%options, %dump_aliases_options, %identity_options); +completion_helper(\%all_options) if $git_completion_helper; unless ($rc) { usage(); } @@ -1521,7 +1557,7 @@ sub send_message { @recipients = unique_email_list(@recipients,@cc,@initial_bcc); @recipients = (map { extract_valid_address_or_die($_) } @recipients); my $date = format_2822_time($time++); - my $gitversion = '2.34.1.windows.1'; + my $gitversion = '2.35.0.rc0.windows.1'; if ($gitversion =~ m/..GIT_VERSION../) { $gitversion = Git::version(); } diff --git a/mingw64/libexec/git-core/git-send-pack.exe b/mingw64/libexec/git-core/git-send-pack.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-send-pack.exe and b/mingw64/libexec/git-core/git-send-pack.exe differ diff --git a/mingw64/libexec/git-core/git-sh-i18n--envsubst.exe b/mingw64/libexec/git-core/git-sh-i18n--envsubst.exe index 1d4d8715192..f1b883f0755 100755 Binary files a/mingw64/libexec/git-core/git-sh-i18n--envsubst.exe and b/mingw64/libexec/git-core/git-sh-i18n--envsubst.exe differ diff --git a/mingw64/libexec/git-core/git-sh-setup b/mingw64/libexec/git-core/git-sh-setup index 6f9ee946b8a..054fcb2c41a 100644 --- a/mingw64/libexec/git-core/git-sh-setup +++ b/mingw64/libexec/git-core/git-sh-setup @@ -172,14 +172,6 @@ git_pager() { eval "$GIT_PAGER" '"$@"' } -sane_grep () { - GREP_OPTIONS= LC_ALL=C grep "$@" -} - -sane_egrep () { - GREP_OPTIONS= LC_ALL=C egrep "$@" -} - is_bare_repository () { git rev-parse --is-bare-repository } diff --git a/mingw64/libexec/git-core/git-shell.exe b/mingw64/libexec/git-core/git-shell.exe index 1eda55413bb..849da61a239 100755 Binary files a/mingw64/libexec/git-core/git-shell.exe and b/mingw64/libexec/git-core/git-shell.exe differ diff --git a/mingw64/libexec/git-core/git-shortlog.exe b/mingw64/libexec/git-core/git-shortlog.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-shortlog.exe and b/mingw64/libexec/git-core/git-shortlog.exe differ diff --git a/mingw64/libexec/git-core/git-show-branch.exe b/mingw64/libexec/git-core/git-show-branch.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-show-branch.exe and b/mingw64/libexec/git-core/git-show-branch.exe differ diff --git a/mingw64/libexec/git-core/git-show-index.exe b/mingw64/libexec/git-core/git-show-index.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-show-index.exe and b/mingw64/libexec/git-core/git-show-index.exe differ diff --git a/mingw64/libexec/git-core/git-show-ref.exe b/mingw64/libexec/git-core/git-show-ref.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-show-ref.exe and b/mingw64/libexec/git-core/git-show-ref.exe differ diff --git a/mingw64/libexec/git-core/git-show.exe b/mingw64/libexec/git-core/git-show.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-show.exe and b/mingw64/libexec/git-core/git-show.exe differ diff --git a/mingw64/libexec/git-core/git-sparse-checkout.exe b/mingw64/libexec/git-core/git-sparse-checkout.exe index 0f4c6a685ec..1767baa4c4f 100644 Binary files a/mingw64/libexec/git-core/git-sparse-checkout.exe and b/mingw64/libexec/git-core/git-sparse-checkout.exe differ diff --git a/mingw64/libexec/git-core/git-stage.exe b/mingw64/libexec/git-core/git-stage.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-stage.exe and b/mingw64/libexec/git-core/git-stage.exe differ diff --git a/mingw64/libexec/git-core/git-stash.exe b/mingw64/libexec/git-core/git-stash.exe index 0f4c6a685ec..1767baa4c4f 100644 Binary files a/mingw64/libexec/git-core/git-stash.exe and b/mingw64/libexec/git-core/git-stash.exe differ diff --git a/mingw64/libexec/git-core/git-status.exe b/mingw64/libexec/git-core/git-status.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-status.exe and b/mingw64/libexec/git-core/git-status.exe differ diff --git a/mingw64/libexec/git-core/git-stripspace.exe b/mingw64/libexec/git-core/git-stripspace.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-stripspace.exe and b/mingw64/libexec/git-core/git-stripspace.exe differ diff --git a/mingw64/libexec/git-core/git-submodule--helper.exe b/mingw64/libexec/git-core/git-submodule--helper.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-submodule--helper.exe and b/mingw64/libexec/git-core/git-submodule--helper.exe differ diff --git a/mingw64/libexec/git-core/git-subtree b/mingw64/libexec/git-core/git-subtree index 7f767b5c38f..71f1fd94bde 100755 --- a/mingw64/libexec/git-core/git-subtree +++ b/mingw64/libexec/git-core/git-subtree @@ -296,10 +296,9 @@ cache_miss () { done } -# Usage: check_parents PARENTS_EXPR +# Usage: check_parents [REVS...] check_parents () { - assert test $# = 1 - missed=$(cache_miss "$1") || exit $? + missed=$(cache_miss "$@") || exit $? local indent=$(($indent + 1)) for miss in $missed do @@ -753,7 +752,7 @@ process_split_commit () { fi createcount=$(($createcount + 1)) debug "parents: $parents" - check_parents "$parents" + check_parents $parents newparents=$(cache_get $parents) || exit $? debug "newparents: $newparents" diff --git a/mingw64/libexec/git-core/git-svn b/mingw64/libexec/git-core/git-svn index ec924ce684d..26f84c99c28 100755 --- a/mingw64/libexec/git-core/git-svn +++ b/mingw64/libexec/git-core/git-svn @@ -52,7 +52,7 @@ use vars qw/ $AUTHOR $VERSION $_revision $_repository $_q $_authors $_authors_prog %users/; $AUTHOR = 'Eric Wong '; -$VERSION = '2.34.1.windows.1'; +$VERSION = '2.35.0.rc0.windows.1'; use Carp qw/croak/; use File::Basename qw/dirname basename/; diff --git a/mingw64/libexec/git-core/git-switch.exe b/mingw64/libexec/git-core/git-switch.exe index 0f4c6a685ec..1767baa4c4f 100644 Binary files a/mingw64/libexec/git-core/git-switch.exe and b/mingw64/libexec/git-core/git-switch.exe differ diff --git a/mingw64/libexec/git-core/git-symbolic-ref.exe b/mingw64/libexec/git-core/git-symbolic-ref.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-symbolic-ref.exe and b/mingw64/libexec/git-core/git-symbolic-ref.exe differ diff --git a/mingw64/libexec/git-core/git-tag.exe b/mingw64/libexec/git-core/git-tag.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-tag.exe and b/mingw64/libexec/git-core/git-tag.exe differ diff --git a/mingw64/libexec/git-core/git-unpack-file.exe b/mingw64/libexec/git-core/git-unpack-file.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-unpack-file.exe and b/mingw64/libexec/git-core/git-unpack-file.exe differ diff --git a/mingw64/libexec/git-core/git-unpack-objects.exe b/mingw64/libexec/git-core/git-unpack-objects.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-unpack-objects.exe and b/mingw64/libexec/git-core/git-unpack-objects.exe differ diff --git a/mingw64/libexec/git-core/git-update-index.exe b/mingw64/libexec/git-core/git-update-index.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-update-index.exe and b/mingw64/libexec/git-core/git-update-index.exe differ diff --git a/mingw64/libexec/git-core/git-update-ref.exe b/mingw64/libexec/git-core/git-update-ref.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-update-ref.exe and b/mingw64/libexec/git-core/git-update-ref.exe differ diff --git a/mingw64/libexec/git-core/git-update-server-info.exe b/mingw64/libexec/git-core/git-update-server-info.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-update-server-info.exe and b/mingw64/libexec/git-core/git-update-server-info.exe differ diff --git a/mingw64/libexec/git-core/git-upload-archive.exe b/mingw64/libexec/git-core/git-upload-archive.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-upload-archive.exe and b/mingw64/libexec/git-core/git-upload-archive.exe differ diff --git a/mingw64/libexec/git-core/git-upload-pack.exe b/mingw64/libexec/git-core/git-upload-pack.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-upload-pack.exe and b/mingw64/libexec/git-core/git-upload-pack.exe differ diff --git a/mingw64/libexec/git-core/git-var.exe b/mingw64/libexec/git-core/git-var.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-var.exe and b/mingw64/libexec/git-core/git-var.exe differ diff --git a/mingw64/libexec/git-core/git-verify-commit.exe b/mingw64/libexec/git-core/git-verify-commit.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-verify-commit.exe and b/mingw64/libexec/git-core/git-verify-commit.exe differ diff --git a/mingw64/libexec/git-core/git-verify-pack.exe b/mingw64/libexec/git-core/git-verify-pack.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-verify-pack.exe and b/mingw64/libexec/git-core/git-verify-pack.exe differ diff --git a/mingw64/libexec/git-core/git-verify-tag.exe b/mingw64/libexec/git-core/git-verify-tag.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-verify-tag.exe and b/mingw64/libexec/git-core/git-verify-tag.exe differ diff --git a/mingw64/libexec/git-core/git-whatchanged.exe b/mingw64/libexec/git-core/git-whatchanged.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-whatchanged.exe and b/mingw64/libexec/git-core/git-whatchanged.exe differ diff --git a/mingw64/libexec/git-core/git-worktree.exe b/mingw64/libexec/git-core/git-worktree.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-worktree.exe and b/mingw64/libexec/git-core/git-worktree.exe differ diff --git a/mingw64/libexec/git-core/git-write-tree.exe b/mingw64/libexec/git-core/git-write-tree.exe index 0f4c6a685ec..1767baa4c4f 100755 Binary files a/mingw64/libexec/git-core/git-write-tree.exe and b/mingw64/libexec/git-core/git-write-tree.exe differ diff --git a/mingw64/libexec/git-core/git.exe b/mingw64/libexec/git-core/git.exe index bd8d9856608..716d60c58f1 100755 Binary files a/mingw64/libexec/git-core/git.exe and b/mingw64/libexec/git-core/git.exe differ diff --git a/mingw64/libexec/git-core/headless-git.exe b/mingw64/libexec/git-core/headless-git.exe index 279c818393a..eaea2da7c08 100644 Binary files a/mingw64/libexec/git-core/headless-git.exe and b/mingw64/libexec/git-core/headless-git.exe differ diff --git a/mingw64/share/doc/git-doc/MyFirstContribution.html b/mingw64/share/doc/git-doc/MyFirstContribution.html index 1c7a92d2850..415d299a901 100644 --- a/mingw64/share/doc/git-doc/MyFirstContribution.html +++ b/mingw64/share/doc/git-doc/MyFirstContribution.html @@ -1595,22 +1595,43 @@

Preparing Initi
-
$ git format-patch --cover-letter -o psuh/ master..psuh
+
$ git format-patch --cover-letter -o psuh/ --base=auto psuh@{u}..psuh
-
-

The --cover-letter parameter tells format-patch to create a cover letter -template for you. You will need to fill in the template before you’re ready -to send - but for now, the template will be next to your other patches.

-
-
-

The -o psuh/ parameter tells format-patch to place the patch files into a -directory. This is useful because git send-email can take a directory and -send out all the patches from there.

+
+
    +
  1. +

    The --cover-letter option tells format-patch to create a +cover letter template for you. You will need to fill in the +template before you’re ready to send - but for now, the template +will be next to your other patches.

    +
  2. +
  3. +

    The -o psuh/ option tells format-patch to place the patch +files into a directory. This is useful because git send-email +can take a directory and send out all the patches from there.

    +
  4. +
  5. +

    The --base=auto option tells the command to record the "base +commit", on which the recipient is expected to apply the patch +series. The auto value will cause format-patch to compute +the base commit automatically, which is the merge base of tip +commit of the remote-tracking branch and the specified revision +range.

    +
  6. +
  7. +

    The psuh@{u}..psuh option tells format-patch to generate +patches for the commits you created on the psuh branch since it +forked from its upstream (which is origin/master if you +followed the example in the "Set up your workspace" section). If +you are already on the psuh branch, you can just say @{u}, +which means "commits on the current branch since it forked from +its upstream", which is the same thing.

    +
  8. +
-

master..psuh tells format-patch to generate patches for the difference -between master and psuh. It will make one patch file per commit. After you +

The command will make one patch file per commit. After you run, you can go have a look at each of the patches with your favorite text editor and make sure everything looks alright; however, it’s not recommended to make code fixups via the patch file. It’s a better idea to make the change the @@ -2030,7 +2051,7 @@

After Revie

diff --git a/mingw64/share/doc/git-doc/MyFirstContribution.txt b/mingw64/share/doc/git-doc/MyFirstContribution.txt index b20bc8e9144..63a2ef54493 100644 --- a/mingw64/share/doc/git-doc/MyFirstContribution.txt +++ b/mingw64/share/doc/git-doc/MyFirstContribution.txt @@ -905,19 +905,34 @@ Sending emails with Git is a two-part process; before you can prepare the emails themselves, you'll need to prepare the patches. Luckily, this is pretty simple: ---- -$ git format-patch --cover-letter -o psuh/ master..psuh ----- - -The `--cover-letter` parameter tells `format-patch` to create a cover letter -template for you. You will need to fill in the template before you're ready -to send - but for now, the template will be next to your other patches. - -The `-o psuh/` parameter tells `format-patch` to place the patch files into a -directory. This is useful because `git send-email` can take a directory and -send out all the patches from there. - -`master..psuh` tells `format-patch` to generate patches for the difference -between `master` and `psuh`. It will make one patch file per commit. After you +$ git format-patch --cover-letter -o psuh/ --base=auto psuh@{u}..psuh +---- + + . The `--cover-letter` option tells `format-patch` to create a + cover letter template for you. You will need to fill in the + template before you're ready to send - but for now, the template + will be next to your other patches. + + . The `-o psuh/` option tells `format-patch` to place the patch + files into a directory. This is useful because `git send-email` + can take a directory and send out all the patches from there. + + . The `--base=auto` option tells the command to record the "base + commit", on which the recipient is expected to apply the patch + series. The `auto` value will cause `format-patch` to compute + the base commit automatically, which is the merge base of tip + commit of the remote-tracking branch and the specified revision + range. + + . The `psuh@{u}..psuh` option tells `format-patch` to generate + patches for the commits you created on the `psuh` branch since it + forked from its upstream (which is `origin/master` if you + followed the example in the "Set up your workspace" section). If + you are already on the `psuh` branch, you can just say `@{u}`, + which means "commits on the current branch since it forked from + its upstream", which is the same thing. + +The command will make one patch file per commit. After you run, you can go have a look at each of the patches with your favorite text editor and make sure everything looks alright; however, it's not recommended to make code fixups via the patch file. It's a better idea to make the change the diff --git a/mingw64/share/doc/git-doc/MyFirstObjectWalk.html b/mingw64/share/doc/git-doc/MyFirstObjectWalk.html index 9475c4ec963..4880c99b85e 100644 --- a/mingw64/share/doc/git-doc/MyFirstObjectWalk.html +++ b/mingw64/share/doc/git-doc/MyFirstObjectWalk.html @@ -528,16 +528,21 @@

Setting Up

Add usage text and -h handling, like all subcommands should consistently do -(our test suite will notice and complain if you fail to do so).

+(our test suite will notice and complain if you fail to do so). +We’ll need to include the parse-options.h header.

-
int cmd_walken(int argc, const char **argv, const char *prefix)
+
#include "parse-options.h"
+
+...
+
+int cmd_walken(int argc, const char **argv, const char *prefix)
 {
         const char * const walken_usage[] = {
                 N_("git walken"),
                 NULL,
-        }
+        };
         struct option options[] = {
                 OPT_END()
         };
@@ -734,11 +739,16 @@ 

Configuring From .gitconfig

-

Add a new function to builtin/walken.c:

+

Add a new function to builtin/walken.c. +We’ll also need to include the config.h header:

-
static int git_walken_config(const char *var, const char *value, void *cb)
+
#include "config.h"
+
+...
+
+static int git_walken_config(const char *var, const char *value, void *cb)
 {
         /*
          * For now, we don't have any custom configuration, so fall back to
@@ -774,11 +784,16 @@ 

Setting Up rev_info

struct.

-

Add the struct rev_info and the repo_init_revisions() call:

+

Add the struct rev_info and the repo_init_revisions() call. +We’ll also need to include the revision.h header:

-
int cmd_walken(int argc, const char **argv, const char *prefix)
+
#include "revision.h"
+
+...
+
+int cmd_walken(int argc, const char **argv, const char *prefix)
 {
         /* This can go wherever you like in your declarations.*/
         struct rev_info rev;
@@ -1300,11 +1315,16 @@ 

Basic Object Walk

Let’s start by calling just the unfiltered walk and reporting our counts. -Complete your implementation of walken_object_walk():

+Complete your implementation of walken_object_walk(). +We’ll also need to include the list-objects.h header.

-
        traverse_commit_list(rev, walken_show_commit, walken_show_object, NULL);
+
#include "list-objects.h"
+
+...
+
+        traverse_commit_list(rev, walken_show_commit, walken_show_object, NULL);
 
         printf("commits %d\nblobs %d\ntags %d\ntrees %d\n", commit_count,
                 blob_count, tag_count, tree_count);
@@ -1412,7 +1432,7 @@ 

Adding a Filter

static void walken_object_walk(struct rev_info *rev)
 {
-        struct list_objects_filter_options filter_options = {};
+        struct list_objects_filter_options filter_options = { 0 };
 
         ...
@@ -1644,7 +1664,7 @@

Wrapping Up

diff --git a/mingw64/share/doc/git-doc/MyFirstObjectWalk.txt b/mingw64/share/doc/git-doc/MyFirstObjectWalk.txt index 45eb84d8b48..ca267941f3e 100644 --- a/mingw64/share/doc/git-doc/MyFirstObjectWalk.txt +++ b/mingw64/share/doc/git-doc/MyFirstObjectWalk.txt @@ -58,14 +58,19 @@ running, enable trace output by setting the environment variable `GIT_TRACE`. Add usage text and `-h` handling, like all subcommands should consistently do (our test suite will notice and complain if you fail to do so). +We'll need to include the `parse-options.h` header. ---- +#include "parse-options.h" + +... + int cmd_walken(int argc, const char **argv, const char *prefix) { const char * const walken_usage[] = { N_("git walken"), NULL, - } + }; struct option options[] = { OPT_END() }; @@ -195,9 +200,14 @@ Similarly to the default values, we don't have anything to do here yet ourselves; however, we should call `git_default_config()` if we aren't calling any other existing config callbacks. -Add a new function to `builtin/walken.c`: +Add a new function to `builtin/walken.c`. +We'll also need to include the `config.h` header: ---- +#include "config.h" + +... + static int git_walken_config(const char *var, const char *value, void *cb) { /* @@ -229,8 +239,14 @@ typically done by calling `repo_init_revisions()` with the repository you intend to target, as well as the `prefix` argument of `cmd_walken` and your `rev_info` struct. -Add the `struct rev_info` and the `repo_init_revisions()` call: +Add the `struct rev_info` and the `repo_init_revisions()` call. +We'll also need to include the `revision.h` header: + ---- +#include "revision.h" + +... + int cmd_walken(int argc, const char **argv, const char *prefix) { /* This can go wherever you like in your declarations.*/ @@ -624,9 +640,14 @@ static void walken_object_walk(struct rev_info *rev) ---- Let's start by calling just the unfiltered walk and reporting our counts. -Complete your implementation of `walken_object_walk()`: +Complete your implementation of `walken_object_walk()`. +We'll also need to include the `list-objects.h` header. ---- +#include "list-objects.h" + +... + traverse_commit_list(rev, walken_show_commit, walken_show_object, NULL); printf("commits %d\nblobs %d\ntags %d\ntrees %d\n", commit_count, @@ -697,7 +718,7 @@ First, we'll need to `#include "list-objects-filter-options.h"` and set up the ---- static void walken_object_walk(struct rev_info *rev) { - struct list_objects_filter_options filter_options = {}; + struct list_objects_filter_options filter_options = { 0 }; ... ---- diff --git a/mingw64/share/doc/git-doc/RelNotes/2.35.0.txt b/mingw64/share/doc/git-doc/RelNotes/2.35.0.txt new file mode 100644 index 00000000000..26efaf1cbc4 --- /dev/null +++ b/mingw64/share/doc/git-doc/RelNotes/2.35.0.txt @@ -0,0 +1,393 @@ +Git 2.35 Release Notes +====================== + +Updates since Git 2.34 +---------------------- + +Backward compatibility warts + + * "_" is now treated as any other URL-valid characters in an URL when + matching the per-URL configuration variable names. + + * The color palette used by "git grep" has been updated to match that + of GNU grep. + + +UI, Workflows & Features + + * "git status --porcelain=v2" now show the number of stash entries + with --show-stash like the normal output does. + + * "git stash" learned the "--staged" option to stash away what has + been added to the index (and nothing else). + + * "git var GIT_DEFAULT_BRANCH" is a way to see what name is used for + the newly created branch if "git init" is run. + + * Various operating modes of "git reset" have been made to work + better with the sparse index. + + * "git submodule deinit" for a submodule whose .git metadata + directory is embedded in its working tree refused to work, until + the submodule gets converted to use the "absorbed" form where the + metadata directory is stored in superproject, and a gitfile at the + top-level of the working tree of the submodule points at it. The + command is taught to convert such submodules to the absorbed form + as needed. + + * The completion script (in contrib/) learns that the "--date" + option of commands from the "git log" family takes "human" and + "auto" as valid values. + + * "Zealous diff3" style of merge conflict presentation has been added. + + * The "git log --format=%(describe)" placeholder has been extended to + allow passing selected command-line options to the underlying "git + describe" command. + + * "default" and "reset" have been added to our color palette. + + * The cryptographic signing using ssh keys can specify literal keys + for keytypes whose name do not begin with the "ssh-" prefix by + using the "key::" prefix mechanism (e.g. "key::ecdsa-sha2-nistp256"). + + * "git fetch" without the "--update-head-ok" option ought to protect + a checked out branch from getting updated, to prevent the working + tree that checks it out to go out of sync. The code was written + before the use of "git worktree" got widespread, and only checked + the branch that was checked out in the current worktree, which has + been updated. + + * "git name-rev" has been tweaked to give output that is shorter and + easier to understand. + + * "git apply" has been taught to ignore a message without a patch + with the "--allow-empty" option. It also learned to honor the + "--quiet" option given from the command line. + + * The "init" and "set" subcommands in "git sparse-checkout" have been + unified for a better user experience and performance. + + * Many git commands that deal with working tree files try to remove a + directory that becomes empty (i.e. "git switch" from a branch that + has the directory to another branch that does not would attempt + remove all files in the directory and the directory itself). This + drops users into an unfamiliar situation if the command was run in + a subdirectory that becomes subject to removal due to the command. + The commands have been taught to keep an empty directory if it is + the directory they were started in to avoid surprising users. + + * "git am" learns "--empty=(stop|drop|keep)" option to tweak what is + done to a piece of e-mail without a patch in it. + + * The default merge message prepared by "git merge" records the name + of the current branch; the name can be overridden with a new option + to allow users to pretend a merge is made on a different branch. + + * The way "git p4" shows file sizes in its output has been updated to + use human-readable units. + + * "git -c branch.autosetupmerge=inherit branch new old" makes "new" + to have the same upstream as the "old" branch, instead of marking + "old" itself as its upstream. + + +Performance, Internal Implementation, Development Support etc. + + * The use of errno as a means to carry the nature of error in the ref + API implementation has been reworked and reduced. + + * Teach and encourage first-time contributors to this project to + state the base commit when they submit their topic. + + * The command line complation for "git send-email" options have been + tweaked to make it easier to keep it in sync with the command itself. + + * Ensure that the sparseness of the in-core index matches the + index.sparse configuration specified by the repository immediately + after the on-disk index file is read. + + * Code clean-up to eventually allow information on remotes defined + for an arbitrary repository to be read. + + * Build optimization. + + * Tighten code for testing pack-bitmap. + + * Weather balloon to break people with compilers that do not support + C99. + + * The "reftable" backend for the refs API, without integrating into + the refs subsystem, has been added. + + * More tests are marked as leak-free. + + * The test framework learns to list unsatisfied test prerequisites, + and optionally error out when prerequisites that are expected to be + satisfied are not. + + * The default setting for trace2 event nesting was too low to cause + test failures, which is worked around by bumping it up in the test + framework. + + * Drop support for TravisCI and update test workflows at GitHub. + + * Many tests that used to need GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME + mechanism to force "git" to use 'master' as the default name for + the initial branch no longer need it; the use of the mechanism from + them have been removed. + + * Allow running our tests while disabling fsync. + + * Document the parameters given to the reflog entry iterator callback + functions. + (merge e6e94f34b2 jc/reflog-iterator-callback-doc later to maint). + + * The test helper for refs subsystem learned to write bogus and/or + nonexistent object name to refs to simulate error situations we + want to test Git in. + + * "diff --histogram" optimization. + + * Weather balloon to find compilers that do not grok variable + declaration in the for() loop. + + * diff and blame commands have been taught to work better with sparse + index. + + * The chainlint test script linter in the test suite has been updated. + + * The DEVELOPER=yes build uses -std=gnu99 now. + + * "git format-patch" uses a single rev_info instance and then exits. + Mark the structure with UNLEAK() macro to squelch leak sanitizer. + + * New interface into the tmp-objdir API to help in-core use of the + quarantine feature. + + * Broken &&-chains in the test scripts have been corrected. + + * The RCS keyword substitution in "git p4" used to be done assuming + that the contents are UTF-8 text, which can trigger decoding + errors. We now treat the contents as a bytestring for robustness + and correctness. + + * The conditions to choose different definitions of the FLEX_ARRAY + macro for vendor compilers has been simplified to make it easier to + maintain. + + * Correctness and performance update to "diff --color-moved" feature. + + * "git upload-pack" (the other side of "git fetch") used a 8kB buffer + but most of its payload came on 64kB "packets". The buffer size + has been enlarged so that such a packet fits. + + * "git fetch" and "git pull" are now declared sparse-index clean. + Also "git ls-files" learns the "--sparse" option to help debugging. + + * Similar message templates have been consolidated so that + translators need to work on fewer number of messages. + + +Fixes since v2.34 +----------------- + + * "git grep" looking in a blob that has non-UTF8 payload was + completely broken when linked with certain versions of PCREv2 + library in the latest release. + + * Other code cleanup, docfix, build fix, etc. + + * "git pull" with any strategy when the other side is behind us + should succeed as it is a no-op, but doesn't. + + * An earlier change in 2.34.0 caused JGit application (that abused + GIT_EDITOR mechanism when invoking "git config") to get stuck with + a SIGTTOU signal; it has been reverted. + + * An earlier change that broke .gitignore matching has been reverted. + + * Things like "git -c branch.sort=bogus branch new HEAD", i.e. the + operation modes of the "git branch" command that do not need the + sort key information, no longer errors out by seeing a bogus sort + key. + (merge 98e7ab6d42 jc/fix-ref-sorting-parse later to maint). + + * The compatibility implementation for unsetenv(3) were written to + mimic ancient, non-POSIX, variant seen in an old glibc; it has been + changed to return an integer to match the more modern era. + (merge a38989bd5b jc/unsetenv-returns-an-int later to maint). + + * The clean/smudge conversion code path has been prepared to better + work on platforms where ulong is narrower than size_t. + (merge 596b5e77c9 mc/clean-smudge-with-llp64 later to maint). + + * Redact the path part of packfile URI that appears in the trace output. + (merge 0ba558ffb1 if/redact-packfile-uri later to maint). + + * CI has been taught to catch some Unicode directional formatting + sequence that can be used in certain mischief. + (merge 0e7696c64d js/ci-no-directional-formatting later to maint). + + * The "--date=format:" gained a workaround for the lack of + system support for a non-local timezone to handle "%s" placeholder. + (merge 9b591b9403 jk/strbuf-addftime-seconds-since-epoch later to maint). + + * The "merge" subcommand of "git jump" (in contrib/) silently ignored + pathspec and other parameters. + (merge 67ba13e5a4 jk/jump-merge-with-pathspec later to maint). + + * The code to decode the length of packed object size has been + corrected. + (merge 34de5b8eac jt/pack-header-lshift-overflow later to maint). + + * The advice message given by "git pull" when the user hasn't made a + choice between merge and rebase still said that the merge is the + default, which no longer is the case. This has been corrected. + (merge 71076d0edd ah/advice-pull-has-no-preference-between-rebase-and-merge later to maint). + + * "git fetch", when received a bad packfile, can fail with SIGPIPE. + This wasn't wrong per-se, but we now detect the situation and fail + in a more predictable way. + (merge 2a4aed42ec jk/fetch-pack-avoid-sigpipe-to-index-pack later to maint). + + * The function to cull a child process and determine the exit status + had two separate code paths for normal callers and callers in a + signal handler, and the latter did not yield correct value when the + child has caught a signal. The handling of the exit status has + been unified for these two code paths. An existing test with + flakiness has also been corrected. + (merge 5263e22cba jk/t7006-sigpipe-tests-fix later to maint). + + * When a non-existent program is given as the pager, we tried to + reuse an uninitialized child_process structure and crashed, which + has been fixed. + (merge f917f57f40 em/missing-pager later to maint). + + * The single-key-input mode in "git add -p" had some code to handle + keys that generate a sequence of input via ReadKey(), which did not + handle end-of-file correctly, which has been fixed. + (merge fc8a8126df cb/add-p-single-key-fix later to maint). + + * "git rebase -x" added an unnecessary 'exec' instructions before + 'noop', which has been corrected. + (merge cc9dcdee61 en/rebase-x-fix later to maint). + + * When the "git push" command is killed while the receiving end is + trying to report what happened to the ref update proposals, the + latter used to die, due to SIGPIPE. The code now ignores SIGPIPE + to increase our chances to run the post-receive hook after it + happens. + (merge d34182b9e3 rj/receive-pack-avoid-sigpipe-during-status-reporting later to maint). + + * "git worktree add" showed "Preparing worktree" message to the + standard output stream, but when it failed, the message from die() + went to the standard error stream. Depending on the order the + stdio streams are flushed at the program end, this resulted in + confusing output. It has been corrected by sending all the chatty + messages to the standard error stream. + (merge b50252484f es/worktree-chatty-to-stderr later to maint). + + * Coding guideline document has been updated to clarify what goes to + standard error in our system. + (merge e258eb4800 es/doc-stdout-vs-stderr later to maint). + + * The sparse-index/sparse-checkout feature had a bug in its use of + the matching code to determine which path is in or outside the + sparse checkout patterns. + (merge 8c5de0d265 ds/sparse-deep-pattern-checkout-fix later to maint). + + * "git rebase -x" by mistake started exporting the GIT_DIR and + GIT_WORK_TREE environment variables when the command was rewritten + in C, which has been corrected. + (merge 434e0636db en/rebase-x-wo-git-dir-env later to maint). + + * When "git log" implicitly enabled the "decoration" processing + without being explicitly asked with "--decorate" option, it failed + to read and honor the settings given by the "--decorate-refs" + option. + + * "git fetch --set-upstream" did not check if there is a current + branch, leading to a segfault when it is run on a detached HEAD, + which has been corrected. + (merge 17baeaf82d ab/fetch-set-upstream-while-detached later to maint). + + * Among some code paths that ask an yes/no question, only one place + gave a prompt that looked different from the others, which has been + updated to match what the others create. + (merge 0fc8ed154c km/help-prompt-fix later to maint). + + * "git log --invert-grep --author=" used to exclude commits + written by the given author, but now "--invert-grep" only affects + the matches made by the "--grep=" option. + (merge 794c000267 rs/log-invert-grep-with-headers later to maint). + + * "git grep --perl-regexp" failed to match UTF-8 characters with + wildcard when the pattern consists only of ASCII letters, which has + been corrected. + (merge 32e3e8bc55 rs/pcre2-utf later to maint). + + * Certain sparse-checkout patterns that are valid in non-cone mode + led to segfault in cone mode, which has been corrected. + + * Use of certain "git rev-list" options with "git fast-export" + created nonsense results (the worst two of which being "--reverse" + and "--invert-grep --grep="). The use of "--first-parent" is + made to behave a bit more sensible than before. + (merge 726a228dfb ws/fast-export-with-revision-options later to maint). + + * Perf tests were run with end-user's shell, but it has been + corrected to use the shell specified by $TEST_SHELL_PATH. + (merge 9ccab75608 ja/perf-use-specified-shell later to maint). + + * Fix dependency rules to generate hook-list.h header file. + (merge d3fd1a6667 ab/makefile-hook-list-dependency-fix later to maint). + + * "git stash" by default triggers its "push" action, but its + implementation also made "git stash -h" to show short help only for + "git stash push", which has been corrected. + (merge ca7990cea5 ab/do-not-limit-stash-help-to-push later to maint). + + * "git apply --3way" bypasses the attempt to do a three-way + application in more cases to address the regression caused by the + recent change to use direct application as a fallback. + (merge 34d607032c jz/apply-3-corner-cases later to maint). + + * Fix performance-releated bug in "git subtree" (in contrib/). + (merge 3ce8888fb4 jl/subtree-check-parents-argument-passing-fix later to maint). + + * Extend the guidance to choose the base commit to build your work + on, and hint/nudge contributors to read others' changes. + (merge fdfae830f8 jc/doc-submitting-patches-choice-of-base later to maint). + + * A corner case bug in the ort merge strategy has been corrected. + (merge d30126c20d en/merge-ort-renorm-with-rename-delete-conflict-fix later to maint). + + * "git stash apply" forgot to attempt restoring untracked files when + it failed to restore changes to tracked ones. + (merge 71cade5a0b en/stash-df-fix later to maint). + + * Other code cleanup, docfix, build fix, etc. + (merge 74db416c9c cw/protocol-v2-doc-fix later to maint). + (merge f9b2b6684d ja/doc-cleanup later to maint). + (merge 7d1b866778 jc/fix-first-object-walk later to maint). + (merge 538ac74604 js/trace2-avoid-recursive-errors later to maint). + (merge 152923b132 jk/t5319-midx-corruption-test-deflake later to maint). + (merge 9081a421a6 ab/checkout-branch-info-leakfix later to maint). + (merge 42c456ff81 rs/mergesort later to maint). + (merge ad506e6780 tl/midx-docfix later to maint). + (merge bf5b83fd8a hk/ci-checkwhitespace-commentfix later to maint). + (merge 49f1eb3b34 jk/refs-g11-workaround later to maint). + (merge 7d3fc7df70 jt/midx-doc-fix later to maint). + (merge 7b089120d9 hn/create-reflog-simplify later to maint). + (merge 9e12400da8 cb/mingw-gmtime-r later to maint). + (merge 0bf0de6cc7 tb/pack-revindex-on-disk-cleanup later to maint). + (merge 2c68f577fc ew/cbtree-remove-unused-and-broken-cb-unlink later to maint). + (merge eafd6e7e55 ab/die-with-bug later to maint). + (merge 91028f7659 jc/grep-patterntype-default-doc later to maint). + (merge 47ca93d071 ds/repack-fixlets later to maint). + (merge e6a9bc0c60 rs/t4202-invert-grep-test-fix later to maint). + (merge deb5407a42 gh/gpg-doc-markup-fix later to maint). + (merge 999bba3e0b rs/daemon-plug-leak later to maint). + (merge 786eb1ba39 js/l10n-mention-ngettext-early-in-readme later to maint). + (merge 2f12b31b74 ab/makefile-msgfmt-wo-stats later to maint). diff --git a/mingw64/share/doc/git-doc/SubmittingPatches.html b/mingw64/share/doc/git-doc/SubmittingPatches.html index 0df69c1de89..217749a9660 100644 --- a/mingw64/share/doc/git-doc/SubmittingPatches.html +++ b/mingw64/share/doc/git-doc/SubmittingPatches.html @@ -464,8 +464,10 @@

Decide what to base your work on.

  • A new feature should be based on master in general. If the new -feature depends on a topic that is in seen, but not in master, -base your work on the tip of that topic.

    +feature depends on other topics that are in next, but not in +master, fork a branch from the tip of master, merge these topics +to the branch, and work on that branch. You can remind yourself of +how you prepared the base with git log --first-parent master...

  • Corrections and enhancements to a topic not yet in master should @@ -475,10 +477,10 @@

    Decide what to base your work on.

  • In the exceptional case that a new feature depends on several topics -not in master, start working on next or seen privately and send -out patches for discussion. Before the final merge, you may have to -wait until some of the dependent topics graduate to master, and -rebase your work.

    +not in master, start working on next or seen privately and +send out patches only for discussion. Once your new feature starts +to stabilize, you would have to rebase it (see the "depends on other +topics" above).

  • Some parts of the system have dedicated maintainers with their own @@ -526,8 +528,13 @@

    Make separate commits for logically separate changes.<

    When adding a new feature, make sure that you have new tests to show the feature triggers the new behavior when it should, and to show the -feature does not trigger when it shouldn’t. After any code change, make -sure that the entire test suite passes.

    +feature does not trigger when it shouldn’t. After any code change, +make sure that the entire test suite passes. When fixing a bug, make +sure you have new tests that break if somebody else breaks what you +fixed by accident to avoid regression. Also, try merging your work to +next and seen and make sure the tests still pass; topics by others +that are still in flight may have unexpected interactions with what +you are trying to do in your topic.

    Pushing to a fork of https://github.com/git/git will use their CI @@ -618,8 +625,28 @@

    Describe your changes well.

    archive, summarize the relevant points of the discussion.

    -

    If you want to reference a previous commit in the history of a stable -branch, use the format "abbreviated hash (subject, date)", like this:

    +

    There are a few reasons why you may want to refer to another commit in +the "more stable" part of the history (i.e. on branches like maint, +master, and next):

    +
    +
    +
      +
    1. +

      A commit that introduced the root cause of a bug you are fixing.

      +
    2. +
    3. +

      A commit that introduced a feature that you are enhancing.

      +
    4. +
    5. +

      A commit that conflicts with your work when you made a trial merge +of your work into next and seen for testing.

      +
    6. +
    +
    +
    +

    When you reference a commit on a more stable branch (like master, +maint and next), use the format "abbreviated hash (subject, +date)", like this:

    @@ -769,9 +796,10 @@

    Generate your patch using Git tools out of your commits.

    or include any extra files which do not relate to what your patch is trying to achieve. Make sure to review your patch after generating it, to ensure accuracy. Before -sending out, please make sure it cleanly applies to the master -branch head. If you are preparing a work based on "next" branch, -that is fine, but please mark it as such.

    +sending out, please make sure it cleanly applies to the base you +have chosen in the "Decide what to base your work on" section, +and unless it targets the master branch (which is the default), +mark your patches as such.

    @@ -893,7 +921,10 @@

    Sending your patches.

    Send your patch with "To:" set to the mailing list, with "cc:" listing people who are involved in the area you are touching (the git contacts command in contrib/contacts/ can help to -identify them), to solicit comments and reviews.

    +identify them), to solicit comments and reviews. Also, when you made +trial merges of your topic to next and seen, you may have noticed +work by others conflicting with your changes. There is a good possibility +that these people may know the area you are touching well.

    After the list reached a consensus that it is a good idea to apply the @@ -1184,7 +1215,7 @@

    Gnus

    diff --git a/mingw64/share/doc/git-doc/SubmittingPatches.txt b/mingw64/share/doc/git-doc/SubmittingPatches.txt index 11e03056f2e..92b80d94d48 100644 --- a/mingw64/share/doc/git-doc/SubmittingPatches.txt +++ b/mingw64/share/doc/git-doc/SubmittingPatches.txt @@ -19,8 +19,10 @@ change is relevant to. base your work on the tip of the topic. * A new feature should be based on `master` in general. If the new - feature depends on a topic that is in `seen`, but not in `master`, - base your work on the tip of that topic. + feature depends on other topics that are in `next`, but not in + `master`, fork a branch from the tip of `master`, merge these topics + to the branch, and work on that branch. You can remind yourself of + how you prepared the base with `git log --first-parent master..`. * Corrections and enhancements to a topic not yet in `master` should be based on the tip of that topic. If the topic has not been merged @@ -28,10 +30,10 @@ change is relevant to. into the series. * In the exceptional case that a new feature depends on several topics - not in `master`, start working on `next` or `seen` privately and send - out patches for discussion. Before the final merge, you may have to - wait until some of the dependent topics graduate to `master`, and - rebase your work. + not in `master`, start working on `next` or `seen` privately and + send out patches only for discussion. Once your new feature starts + to stabilize, you would have to rebase it (see the "depends on other + topics" above). * Some parts of the system have dedicated maintainers with their own repositories (see the section "Subsystems" below). Changes to @@ -71,8 +73,13 @@ Make sure that you have tests for the bug you are fixing. See [[tests]] When adding a new feature, make sure that you have new tests to show the feature triggers the new behavior when it should, and to show the -feature does not trigger when it shouldn't. After any code change, make -sure that the entire test suite passes. +feature does not trigger when it shouldn't. After any code change, +make sure that the entire test suite passes. When fixing a bug, make +sure you have new tests that break if somebody else breaks what you +fixed by accident to avoid regression. Also, try merging your work to +'next' and 'seen' and make sure the tests still pass; topics by others +that are still in flight may have unexpected interactions with what +you are trying to do in your topic. Pushing to a fork of https://github.com/git/git will use their CI integration to test your changes on Linux, Mac and Windows. See the @@ -144,8 +151,21 @@ without external resources. Instead of giving a URL to a mailing list archive, summarize the relevant points of the discussion. [[commit-reference]] -If you want to reference a previous commit in the history of a stable -branch, use the format "abbreviated hash (subject, date)", like this: + +There are a few reasons why you may want to refer to another commit in +the "more stable" part of the history (i.e. on branches like `maint`, +`master`, and `next`): + +. A commit that introduced the root cause of a bug you are fixing. + +. A commit that introduced a feature that you are enhancing. + +. A commit that conflicts with your work when you made a trial merge + of your work into `next` and `seen` for testing. + +When you reference a commit on a more stable branch (like `master`, +`maint` and `next`), use the format "abbreviated hash (subject, +date)", like this: .... Commit f86a374 (pack-bitmap.c: fix a memleak, 2015-03-30) @@ -259,9 +279,11 @@ Please make sure your patch does not add commented out debugging code, or include any extra files which do not relate to what your patch is trying to achieve. Make sure to review your patch after generating it, to ensure accuracy. Before -sending out, please make sure it cleanly applies to the `master` -branch head. If you are preparing a work based on "next" branch, -that is fine, but please mark it as such. +sending out, please make sure it cleanly applies to the base you +have chosen in the "Decide what to base your work on" section, +and unless it targets the `master` branch (which is the default), +mark your patches as such. + [[send-patches]] === Sending your patches. @@ -365,7 +387,10 @@ Security mailing list{security-ml-ref}. Send your patch with "To:" set to the mailing list, with "cc:" listing people who are involved in the area you are touching (the `git contacts` command in `contrib/contacts/` can help to -identify them), to solicit comments and reviews. +identify them), to solicit comments and reviews. Also, when you made +trial merges of your topic to `next` and `seen`, you may have noticed +work by others conflicting with your changes. There is a good possibility +that these people may know the area you are touching well. :current-maintainer: footnote:[The current maintainer: gitster@pobox.com] :git-ml: footnote:[The mailing list: git@vger.kernel.org] diff --git a/mingw64/share/doc/git-doc/config.txt b/mingw64/share/doc/git-doc/config.txt index ef2a30d9f30..26fedd40bf9 100644 --- a/mingw64/share/doc/git-doc/config.txt +++ b/mingw64/share/doc/git-doc/config.txt @@ -262,11 +262,19 @@ color:: colors (at most two, one for foreground and one for background) and attributes (as many as you want), separated by spaces. + -The basic colors accepted are `normal`, `black`, `red`, `green`, `yellow`, -`blue`, `magenta`, `cyan` and `white`. The first color given is the -foreground; the second is the background. All the basic colors except -`normal` have a bright variant that can be specified by prefixing the -color with `bright`, like `brightred`. +The basic colors accepted are `normal`, `black`, `red`, `green`, +`yellow`, `blue`, `magenta`, `cyan`, `white` and `default`. The first +color given is the foreground; the second is the background. All the +basic colors except `normal` and `default` have a bright variant that can +be specified by prefixing the color with `bright`, like `brightred`. ++ +The color `normal` makes no change to the color. It is the same as an +empty string, but can be used as the foreground color when specifying a +background color alone (for example, "normal red"). ++ +The color `default` explicitly resets the color to the terminal default, +for example to specify a cleared background. Although it varies between +terminals, this is usually not the same as setting to "white black". + Colors may also be given as numbers between 0 and 255; these use ANSI 256-color mode (but note that not all terminals may support this). If @@ -280,6 +288,11 @@ The position of any attributes with respect to the colors be turned off by prefixing them with `no` or `no-` (e.g., `noreverse`, `no-ul`, etc). + +The pseudo-attribute `reset` resets all colors and attributes before +applying the specified coloring. For example, `reset green` will result +in a green foreground and default background without any active +attributes. ++ An empty color string produces no color effect at all. This can be used to avoid coloring specific elements without disabling color entirely. + diff --git a/mingw64/share/doc/git-doc/date-formats.txt b/mingw64/share/doc/git-doc/date-formats.txt index 99c455f51c0..67645cae64f 100644 --- a/mingw64/share/doc/git-doc/date-formats.txt +++ b/mingw64/share/doc/git-doc/date-formats.txt @@ -5,9 +5,9 @@ The `GIT_AUTHOR_DATE` and `GIT_COMMITTER_DATE` environment variables support the following date formats: Git internal format:: - It is `

  • diff --git a/mingw64/share/doc/git-doc/git-add.html b/mingw64/share/doc/git-doc/git-add.html index f2a31accdb5..36230064a50 100644 --- a/mingw64/share/doc/git-doc/git-add.html +++ b/mingw64/share/doc/git-doc/git-add.html @@ -1000,7 +1000,7 @@

    GIT

    diff --git a/mingw64/share/doc/git-doc/git-am.html b/mingw64/share/doc/git-doc/git-am.html index 7df3cfedbee..0d73118c176 100644 --- a/mingw64/share/doc/git-doc/git-am.html +++ b/mingw64/share/doc/git-doc/git-am.html @@ -455,8 +455,9 @@

    SYNOPSIS

    [--exclude=<path>] [--include=<path>] [--reject] [-q | --quiet] [--[no-]scissors] [-S[<keyid>]] [--patch-format=<format>] [--quoted-cr=<action>] + [--empty=(stop|drop|keep)] [(<mbox> | <Maildir>)…​] -git am (--continue | --skip | --abort | --quit | --show-current-patch[=(diff|raw)]) +git am (--continue | --skip | --abort | --quit | --show-current-patch[=(diff|raw)] | --allow-empty)
    @@ -519,6 +520,15 @@

    OPTIONS

    This flag will be passed down to git mailinfo (see git-mailinfo(1)).

    +
    --empty=(stop|drop|keep)
    +
    +

    By default, or when the option is set to stop, the command +errors out on an input e-mail message lacking a patch +and stops into the middle of the current am session. When this +option is set to drop, skip such an e-mail message instead. +When this option is set to keep, create an empty commit, +recording the contents of the e-mail message as its log.

    +
    -m
    --message-id
    @@ -667,6 +677,12 @@

    OPTIONS

    the e-mail message; if diff, show the diff portion only. Defaults to raw.

    +
    --allow-empty
    +
    +

    After a patch failure on an input e-mail message lacking a patch, +create an empty commit with the contents of the e-mail message +as its log message.

    +
    @@ -775,7 +791,7 @@

    GIT

    diff --git a/mingw64/share/doc/git-doc/git-am.txt b/mingw64/share/doc/git-doc/git-am.txt index 0a4a984dfde..09107fb1067 100644 --- a/mingw64/share/doc/git-doc/git-am.txt +++ b/mingw64/share/doc/git-doc/git-am.txt @@ -16,8 +16,9 @@ SYNOPSIS [--exclude=] [--include=] [--reject] [-q | --quiet] [--[no-]scissors] [-S[]] [--patch-format=] [--quoted-cr=] + [--empty=(stop|drop|keep)] [( | )...] -'git am' (--continue | --skip | --abort | --quit | --show-current-patch[=(diff|raw)]) +'git am' (--continue | --skip | --abort | --quit | --show-current-patch[=(diff|raw)] | --allow-empty) DESCRIPTION ----------- @@ -63,6 +64,14 @@ OPTIONS --quoted-cr=:: This flag will be passed down to 'git mailinfo' (see linkgit:git-mailinfo[1]). +--empty=(stop|drop|keep):: + By default, or when the option is set to 'stop', the command + errors out on an input e-mail message lacking a patch + and stops into the middle of the current am session. When this + option is set to 'drop', skip such an e-mail message instead. + When this option is set to 'keep', create an empty commit, + recording the contents of the e-mail message as its log. + -m:: --message-id:: Pass the `-m` flag to 'git mailinfo' (see linkgit:git-mailinfo[1]), @@ -191,6 +200,11 @@ default. You can use `--no-utf8` to override this. the e-mail message; if `diff`, show the diff portion only. Defaults to `raw`. +--allow-empty:: + After a patch failure on an input e-mail message lacking a patch, + create an empty commit with the contents of the e-mail message + as its log message. + DISCUSSION ---------- diff --git a/mingw64/share/doc/git-doc/git-annotate.html b/mingw64/share/doc/git-doc/git-annotate.html index d7bb0984545..687bca03b4d 100644 --- a/mingw64/share/doc/git-doc/git-annotate.html +++ b/mingw64/share/doc/git-doc/git-annotate.html @@ -713,7 +713,7 @@

    GIT

    diff --git a/mingw64/share/doc/git-doc/git-apply.html b/mingw64/share/doc/git-doc/git-apply.html index 6a3d638d37e..35d179a1c60 100644 --- a/mingw64/share/doc/git-doc/git-apply.html +++ b/mingw64/share/doc/git-doc/git-apply.html @@ -455,7 +455,7 @@

    SYNOPSIS

    [--ignore-space-change | --ignore-whitespace] [--whitespace=(nowarn|warn|fix|error|error-all)] [--exclude=<path>] [--include=<path>] [--directory=<root>] - [--verbose] [--unsafe-paths] [<patch>…​] + [--verbose | --quiet] [--unsafe-paths] [--allow-empty] [<patch>…​] @@ -721,6 +721,12 @@

    OPTIONS

    current patch being applied will be printed. This option will cause additional information to be reported.

    +
    -q
    +
    --quiet
    +
    +

    Suppress stderr output. Messages about patch status and progress +will not be printed.

    +
    --recount

    Do not trust the line counts in the hunk headers, but infer them @@ -749,6 +755,11 @@

    OPTIONS

    has no effect when --index or --cached is in use.

    +
    --allow-empty
    +
    +

    Don’t return error for patches containing no diff. This includes +empty patches and patches with commit text only.

    +
    @@ -813,7 +824,7 @@

    GIT

    diff --git a/mingw64/share/doc/git-doc/git-apply.txt b/mingw64/share/doc/git-doc/git-apply.txt index aa1ae56a25e..b6d77f42068 100644 --- a/mingw64/share/doc/git-doc/git-apply.txt +++ b/mingw64/share/doc/git-doc/git-apply.txt @@ -16,7 +16,7 @@ SYNOPSIS [--ignore-space-change | --ignore-whitespace] [--whitespace=(nowarn|warn|fix|error|error-all)] [--exclude=] [--include=] [--directory=] - [--verbose] [--unsafe-paths] [...] + [--verbose | --quiet] [--unsafe-paths] [--allow-empty] [...] DESCRIPTION ----------- @@ -228,6 +228,11 @@ behavior: current patch being applied will be printed. This option will cause additional information to be reported. +-q:: +--quiet:: + Suppress stderr output. Messages about patch status and progress + will not be printed. + --recount:: Do not trust the line counts in the hunk headers, but infer them by inspecting the patch (e.g. after editing the patch without @@ -251,6 +256,10 @@ When `git apply` is used as a "better GNU patch", the user can pass the `--unsafe-paths` option to override this safety check. This option has no effect when `--index` or `--cached` is in use. +--allow-empty:: + Don't return error for patches containing no diff. This includes + empty patches and patches with commit text only. + CONFIGURATION ------------- diff --git a/mingw64/share/doc/git-doc/git-archimport.html b/mingw64/share/doc/git-doc/git-archimport.html index 7bdc26740f0..1e96f724a22 100644 --- a/mingw64/share/doc/git-doc/git-archimport.html +++ b/mingw64/share/doc/git-doc/git-archimport.html @@ -448,8 +448,8 @@

    NAME

    SYNOPSIS

    -
    git archimport [-h] [-v] [-o] [-a] [-f] [-T] [-D depth] [-t tempdir]
    -               <archive/branch>[:<git-branch>] …​
    +
    git archimport [-h] [-v] [-o] [-a] [-f] [-T] [-D <depth>] [-t <tempdir>]
    +               <archive>/<branch>[:<git-branch>]…​
    @@ -459,7 +459,7 @@

    DESCRIPTION

    Imports a project from one or more GNU Arch repositories. It will follow branches -and repositories within the namespaces defined by the <archive/branch> +and repositories within the namespaces defined by the <archive>/<branch> parameters supplied. If it cannot find the remote branch a merge comes from it will just import it as a regular commit. If it can find it, it will mark it as a merge whenever possible (see discussion below).

    @@ -472,7 +472,7 @@

    DESCRIPTION

    It expects to be dealing with one project only. If it sees branches that have different roots, it will refuse to run. In that case, -edit your <archive/branch> parameters to define clearly the scope of the +edit your <archive>/<branch> parameters to define clearly the scope of the import.

    @@ -490,7 +490,7 @@

    DESCRIPTION

    While git archimport will try to create sensible branch names for the archives that it imports, it is also possible to specify Git branch names -manually. To do so, write a Git branch name after each <archive/branch> +manually. To do so, write a Git branch name after each <archive>/<branch> parameter, separated by a colon. This way, you can shorten the Arch branch names and convert Arch jargon to Git jargon, for example mapping a "PROJECT--devo--VERSION" branch to "master".

    @@ -568,9 +568,9 @@

    OPTIONS

    Override the default tempdir.

    -
    <archive/branch>
    +
    <archive>/<branch>
    -

    Archive/branch identifier in a format that tla log understands.

    +

    <archive>/<branch> identifier in a format that tla log understands.

    @@ -587,7 +587,7 @@

    GIT

    diff --git a/mingw64/share/doc/git-doc/git-archimport.txt b/mingw64/share/doc/git-doc/git-archimport.txt index a595a0ffeee..847777fd172 100644 --- a/mingw64/share/doc/git-doc/git-archimport.txt +++ b/mingw64/share/doc/git-doc/git-archimport.txt @@ -9,14 +9,14 @@ git-archimport - Import a GNU Arch repository into Git SYNOPSIS -------- [verse] -'git archimport' [-h] [-v] [-o] [-a] [-f] [-T] [-D depth] [-t tempdir] - [:] ... +'git archimport' [-h] [-v] [-o] [-a] [-f] [-T] [-D ] [-t ] + /[:]... DESCRIPTION ----------- Imports a project from one or more GNU Arch repositories. It will follow branches -and repositories within the namespaces defined by the +and repositories within the namespaces defined by the / parameters supplied. If it cannot find the remote branch a merge comes from it will just import it as a regular commit. If it can find it, it will mark it as a merge whenever possible (see discussion below). @@ -27,7 +27,7 @@ import new branches within the provided roots. It expects to be dealing with one project only. If it sees branches that have different roots, it will refuse to run. In that case, -edit your parameters to define clearly the scope of the +edit your / parameters to define clearly the scope of the import. 'git archimport' uses `tla` extensively in the background to access the @@ -42,7 +42,7 @@ incremental imports. While 'git archimport' will try to create sensible branch names for the archives that it imports, it is also possible to specify Git branch names -manually. To do so, write a Git branch name after each +manually. To do so, write a Git branch name after each / parameter, separated by a colon. This way, you can shorten the Arch branch names and convert Arch jargon to Git jargon, for example mapping a "PROJECT{litdd}devo{litdd}VERSION" branch to "master". @@ -104,8 +104,8 @@ OPTIONS Override the default tempdir. -:: - Archive/branch identifier in a format that `tla log` understands. +/:: + / identifier in a format that `tla log` understands. GIT diff --git a/mingw64/share/doc/git-doc/git-archive.html b/mingw64/share/doc/git-doc/git-archive.html index e7609be1146..b6edc4853fb 100644 --- a/mingw64/share/doc/git-doc/git-archive.html +++ b/mingw64/share/doc/git-doc/git-archive.html @@ -722,7 +722,7 @@

    GIT

    diff --git a/mingw64/share/doc/git-doc/git-bash.html b/mingw64/share/doc/git-doc/git-bash.html index 5e39918c31a..adaf0f9adc9 100644 --- a/mingw64/share/doc/git-doc/git-bash.html +++ b/mingw64/share/doc/git-doc/git-bash.html @@ -575,7 +575,7 @@

    GIT

    diff --git a/mingw64/share/doc/git-doc/git-bisect-lk2009.html b/mingw64/share/doc/git-doc/git-bisect-lk2009.html index d2585e5a01c..61ff1f42219 100644 --- a/mingw64/share/doc/git-doc/git-bisect-lk2009.html +++ b/mingw64/share/doc/git-doc/git-bisect-lk2009.html @@ -2129,7 +2129,7 @@

    References

    diff --git a/mingw64/share/doc/git-doc/git-bisect.html b/mingw64/share/doc/git-doc/git-bisect.html index f375215e71b..d1d767636b4 100644 --- a/mingw64/share/doc/git-doc/git-bisect.html +++ b/mingw64/share/doc/git-doc/git-bisect.html @@ -1079,7 +1079,7 @@

    GIT

    diff --git a/mingw64/share/doc/git-doc/git-blame.html b/mingw64/share/doc/git-doc/git-blame.html index b096ef8f8a0..19beeb34435 100644 --- a/mingw64/share/doc/git-doc/git-blame.html +++ b/mingw64/share/doc/git-doc/git-blame.html @@ -1035,7 +1035,7 @@

    GIT

    diff --git a/mingw64/share/doc/git-doc/git-branch.html b/mingw64/share/doc/git-doc/git-branch.html index f3383602e15..e38f6b8eb0a 100644 --- a/mingw64/share/doc/git-doc/git-branch.html +++ b/mingw64/share/doc/git-doc/git-branch.html @@ -456,7 +456,7 @@

    SYNOPSIS

    [--points-at <object>] [--format=<format>] [(-r | --remotes) | (-a | --all)] [--list] [<pattern>…​] -git branch [--track | --no-track] [-f] <branchname> [<start-point>] +git branch [--track [direct|inherit] | --no-track] [-f] <branchname> [<start-point>] git branch (--set-upstream-to=<upstream> | -u <upstream>) [<branchname>] git branch --unset-upstream [<branchname>] git branch (-m | -M) [<oldbranch>] <newbranch> @@ -684,27 +684,39 @@

    OPTIONS

    Display the full sha1s in the output listing rather than abbreviating them.

    -t
    -
    --track
    +
    --track [inherit|direct]

    When creating a new branch, set up branch.<name>.remote and -branch.<name>.merge configuration entries to mark the -start-point branch as "upstream" from the new branch. This +branch.<name>.merge configuration entries to set "upstream" tracking +configuration for the new branch. This configuration will tell git to show the relationship between the two branches in git status and git branch -v. Furthermore, it directs git pull without arguments to pull from the upstream when the new branch is checked out.

    -

    This behavior is the default when the start point is a remote-tracking branch. +

    The exact upstream branch is chosen depending on the optional argument: +--track or --track direct means to use the start-point branch itself as the +upstream; --track inherit means to copy the upstream configuration of the +start-point branch.

    +
    +
    +

    --track direct is the default when the start point is a remote-tracking branch. Set the branch.autoSetupMerge configuration variable to false if you want git switch, git checkout and git branch to always behave as if --no-track were given. Set it to always if you want this behavior when the -start-point is either a local or remote-tracking branch.

    +start-point is either a local or remote-tracking branch. Set it to +inherit if you want to copy the tracking configuration from the +branch point.

    +
    +
    +

    See git-pull(1) and git-config(1) for additional discussion on +how the branch.<name>.remote and branch.<name>.merge options are used.

    --no-track

    Do not set up "upstream" configuration, even if the -branch.autoSetupMerge configuration variable is true.

    +branch.autoSetupMerge configuration variable is set.

    --set-upstream
    @@ -951,7 +963,7 @@

    GIT

    diff --git a/mingw64/share/doc/git-doc/git-branch.txt b/mingw64/share/doc/git-doc/git-branch.txt index 8af42eff895..2d52ae396b0 100644 --- a/mingw64/share/doc/git-doc/git-branch.txt +++ b/mingw64/share/doc/git-doc/git-branch.txt @@ -16,7 +16,7 @@ SYNOPSIS [--points-at ] [--format=] [(-r | --remotes) | (-a | --all)] [--list] [...] -'git branch' [--track | --no-track] [-f] [] +'git branch' [--track [direct|inherit] | --no-track] [-f] [] 'git branch' (--set-upstream-to= | -u ) [] 'git branch' --unset-upstream [] 'git branch' (-m | -M) [] @@ -206,24 +206,34 @@ This option is only applicable in non-verbose mode. Display the full sha1s in the output listing rather than abbreviating them. -t:: ---track:: +--track [inherit|direct]:: When creating a new branch, set up `branch..remote` and - `branch..merge` configuration entries to mark the - start-point branch as "upstream" from the new branch. This + `branch..merge` configuration entries to set "upstream" tracking + configuration for the new branch. This configuration will tell git to show the relationship between the two branches in `git status` and `git branch -v`. Furthermore, it directs `git pull` without arguments to pull from the upstream when the new branch is checked out. + -This behavior is the default when the start point is a remote-tracking branch. +The exact upstream branch is chosen depending on the optional argument: +`--track` or `--track direct` means to use the start-point branch itself as the +upstream; `--track inherit` means to copy the upstream configuration of the +start-point branch. ++ +`--track direct` is the default when the start point is a remote-tracking branch. Set the branch.autoSetupMerge configuration variable to `false` if you want `git switch`, `git checkout` and `git branch` to always behave as if `--no-track` were given. Set it to `always` if you want this behavior when the -start-point is either a local or remote-tracking branch. +start-point is either a local or remote-tracking branch. Set it to +`inherit` if you want to copy the tracking configuration from the +branch point. ++ +See linkgit:git-pull[1] and linkgit:git-config[1] for additional discussion on +how the `branch..remote` and `branch..merge` options are used. --no-track:: Do not set up "upstream" configuration, even if the - branch.autoSetupMerge configuration variable is true. + branch.autoSetupMerge configuration variable is set. --set-upstream:: As this option had confusing syntax, it is no longer supported. diff --git a/mingw64/share/doc/git-doc/git-bugreport.html b/mingw64/share/doc/git-doc/git-bugreport.html index cd74562ed37..d9bfa7e6f23 100644 --- a/mingw64/share/doc/git-doc/git-bugreport.html +++ b/mingw64/share/doc/git-doc/git-bugreport.html @@ -540,7 +540,7 @@

    GIT

    diff --git a/mingw64/share/doc/git-doc/git-bundle.html b/mingw64/share/doc/git-doc/git-bundle.html index a328a9ae925..6b9d37e50c4 100644 --- a/mingw64/share/doc/git-doc/git-bundle.html +++ b/mingw64/share/doc/git-doc/git-bundle.html @@ -865,7 +865,7 @@

    GIT

    diff --git a/mingw64/share/doc/git-doc/git-cat-file.html b/mingw64/share/doc/git-doc/git-cat-file.html index f430be15e16..cb98aecdcab 100644 --- a/mingw64/share/doc/git-doc/git-cat-file.html +++ b/mingw64/share/doc/git-doc/git-cat-file.html @@ -878,7 +878,7 @@

    GIT

    diff --git a/mingw64/share/doc/git-doc/git-check-attr.html b/mingw64/share/doc/git-doc/git-check-attr.html index 445b87cead9..1778ad73dfb 100644 --- a/mingw64/share/doc/git-doc/git-check-attr.html +++ b/mingw64/share/doc/git-doc/git-check-attr.html @@ -648,7 +648,7 @@

    GIT

    diff --git a/mingw64/share/doc/git-doc/git-check-ignore.html b/mingw64/share/doc/git-doc/git-check-ignore.html index df5aec5d183..2c871206cfc 100644 --- a/mingw64/share/doc/git-doc/git-check-ignore.html +++ b/mingw64/share/doc/git-doc/git-check-ignore.html @@ -614,7 +614,7 @@

    GIT

    diff --git a/mingw64/share/doc/git-doc/git-check-mailmap.html b/mingw64/share/doc/git-doc/git-check-mailmap.html index 6165bcdd952..a219baa8592 100644 --- a/mingw64/share/doc/git-doc/git-check-mailmap.html +++ b/mingw64/share/doc/git-doc/git-check-mailmap.html @@ -515,7 +515,7 @@

    GIT

    diff --git a/mingw64/share/doc/git-doc/git-check-ref-format.html b/mingw64/share/doc/git-doc/git-check-ref-format.html index 9a1c607b7aa..6c85fbf3a56 100644 --- a/mingw64/share/doc/git-doc/git-check-ref-format.html +++ b/mingw64/share/doc/git-doc/git-check-ref-format.html @@ -637,7 +637,7 @@

    GIT

    diff --git a/mingw64/share/doc/git-doc/git-checkout-index.html b/mingw64/share/doc/git-doc/git-checkout-index.html index 7a41401e506..b2d6dd0d9c8 100644 --- a/mingw64/share/doc/git-doc/git-checkout-index.html +++ b/mingw64/share/doc/git-doc/git-checkout-index.html @@ -682,7 +682,7 @@

    GIT

    diff --git a/mingw64/share/doc/git-doc/git-checkout.html b/mingw64/share/doc/git-doc/git-checkout.html index 7195ff9ca36..8514a0e701d 100644 --- a/mingw64/share/doc/git-doc/git-checkout.html +++ b/mingw64/share/doc/git-doc/git-checkout.html @@ -451,7 +451,7 @@

    SYNOPSIS

    git checkout [-q] [-f] [-m] [<branch>]
     git checkout [-q] [-f] [-m] --detach [<branch>]
     git checkout [-q] [-f] [-m] [--detach] <commit>
    -git checkout [-q] [-f] [-m] [[-b|-B|--orphan] <new_branch>] [<start_point>]
    +git checkout [-q] [-f] [-m] [[-b|-B|--orphan] <new-branch>] [<start-point>]
     git checkout [-f|--ours|--theirs|-m|--conflict=<style>] [<tree-ish>] [--] <pathspec>…​
     git checkout [-f|--ours|--theirs|-m|--conflict=<style>] [<tree-ish>] --pathspec-from-file=<file> [--pathspec-file-nul]
     git checkout (-p|--patch) [<tree-ish>] [--] [<pathspec>…​]
    @@ -493,7 +493,7 @@

    DESCRIPTION

    if exists, for the current branch.

    -
    git checkout -b|-B <new_branch> [<start point>]
    +
    git checkout -b|-B <new-branch> [<start-point>]

    Specifying -b causes a new branch to be created as if git-branch(1) were called and then checked out. In @@ -502,12 +502,12 @@

    DESCRIPTION

    --track without -b implies branch creation; see the description of --track below.

    -

    If -B is given, <new_branch> is created if it doesn’t exist; otherwise, it +

    If -B is given, <new-branch> is created if it doesn’t exist; otherwise, it is reset. This is the transactional equivalent of

    -
    $ git branch -f <branch> [<start point>]
    +
    $ git branch -f <branch> [<start-point>]
     $ git checkout <branch>
    @@ -616,20 +616,20 @@

    OPTIONS

    of it").

    -
    -b <new_branch>
    +
    -b <new-branch>
    -

    Create a new branch named <new_branch> and start it at -<start_point>; see git-branch(1) for details.

    +

    Create a new branch named <new-branch> and start it at +<start-point>; see git-branch(1) for details.

    -
    -B <new_branch>
    +
    -B <new-branch>
    -

    Creates the branch <new_branch> and start it at <start_point>; -if it already exists, then reset it to <start_point>. This is +

    Creates the branch <new-branch> and start it at <start-point>; +if it already exists, then reset it to <start-point>. This is equivalent to running "git branch" with "-f"; see git-branch(1) for details.

    -t
    -
    --track
    +
    --track [direct|inherit]

    When creating a new branch, set up "upstream" configuration. See "--track" in git-branch(1) for details.

    @@ -693,17 +693,17 @@

    OPTIONS

    <commit> is not a branch name. See the "DETACHED HEAD" section below for details.

    -
    --orphan <new_branch>
    +
    --orphan <new-branch>
    -

    Create a new orphan branch, named <new_branch>, started from -<start_point> and switch to it. The first commit made on this +

    Create a new orphan branch, named <new-branch>, started from +<start-point> and switch to it. The first commit made on this new branch will have no parents and it will be the root of a new history totally disconnected from all the other branches and commits.

    The index and the working tree are adjusted as if you had previously run -git checkout <start_point>. This allows you to start a new history -that records a set of paths similar to <start_point> by easily running +git checkout <start-point>. This allows you to start a new history +that records a set of paths similar to <start-point> by easily running git commit -a to make the root commit.

    @@ -715,7 +715,7 @@

    OPTIONS

    If you want to start a disconnected history that records a set of paths -that is totally different from the one of <start_point>, then you should +that is totally different from the one of <start-point>, then you should clear the index and the working tree right after creating the orphan branch by running git rm -rf . from the top level of the working tree. Afterwards you will be ready to prepare your new files, repopulating the @@ -759,8 +759,7 @@

    OPTIONS

    The same as --merge option above, but changes the way the conflicting hunks are presented, overriding the merge.conflictStyle configuration variable. Possible values are -"merge" (default) and "diff3" (in addition to what is shown by -"merge" style, shows the original contents).

    +"merge" (default), "diff3", and "zdiff3".

    -p
    --patch
    @@ -846,11 +845,11 @@

    OPTIONS

    leave out at most one of A and B, in which case it defaults to HEAD.

    -
    <new_branch>
    +
    <new-branch>

    Name for the new branch.

    -
    <start_point>
    +
    <start-point>

    The name of a commit at which to start the new branch; see git-branch(1) for details. Defaults to HEAD.

    @@ -1200,7 +1199,7 @@

    GIT

    diff --git a/mingw64/share/doc/git-doc/git-checkout.txt b/mingw64/share/doc/git-doc/git-checkout.txt index d473c9bf387..2a90ea6cd05 100644 --- a/mingw64/share/doc/git-doc/git-checkout.txt +++ b/mingw64/share/doc/git-doc/git-checkout.txt @@ -11,7 +11,7 @@ SYNOPSIS 'git checkout' [-q] [-f] [-m] [] 'git checkout' [-q] [-f] [-m] --detach [] 'git checkout' [-q] [-f] [-m] [--detach] -'git checkout' [-q] [-f] [-m] [[-b|-B|--orphan] ] [] +'git checkout' [-q] [-f] [-m] [[-b|-B|--orphan] ] [] 'git checkout' [-f|--ours|--theirs|-m|--conflict=