+
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 17 additions & 12 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,8 @@ test:linux:
artifacts:
paths:
- t/failed-test-artifacts
reports:
junit: build/meson-logs/testlog.junit.xml
when: on_failure

test:osx:
Expand Down Expand Up @@ -110,16 +112,24 @@ test:osx:
artifacts:
paths:
- t/failed-test-artifacts
reports:
junit: build/meson-logs/testlog.junit.xml
when: on_failure

.windows_before_script: &windows_before_script
# Disabling realtime monitoring fails on some of the runners, but it
# significantly speeds up test execution in the case where it works. We thus
# try our luck, but ignore any failures.
- Set-MpPreference -DisableRealtimeMonitoring $true; $true

build:mingw64:
stage: build
tags:
- saas-windows-medium-amd64
variables:
NO_PERL: 1
before_script:
- Set-MpPreference -DisableRealtimeMonitoring $true
- *windows_before_script
- ./ci/install-sdk.ps1 -directory "git-sdk"
script:
- git-sdk/usr/bin/bash.exe -l -c 'ci/make-test-artifacts.sh artifacts'
Expand All @@ -136,7 +146,7 @@ test:mingw64:
- job: "build:mingw64"
artifacts: true
before_script:
- Set-MpPreference -DisableRealtimeMonitoring $true
- *windows_before_script
- git-sdk/usr/bin/bash.exe -l -c 'tar xf artifacts/artifacts.tar.gz'
- New-Item -Path .git/info -ItemType Directory
- New-Item .git/info/exclude -ItemType File -Value "/git-sdk"
Expand All @@ -150,18 +160,10 @@ test:mingw64:
tags:
- saas-windows-medium-amd64
before_script:
- Set-MpPreference -DisableRealtimeMonitoring $true
- choco install -y git meson ninja openssl
- *windows_before_script
- choco install -y git meson ninja
- Import-Module $env:ChocolateyInstall\helpers\chocolateyProfile.psm1
- refreshenv
# The certificate store for Python on Windows is broken and fails to fetch
# certificates, see https://bugs.python.org/issue36011. This seems to
# mostly be an issue with how the GitLab image is set up as it is a
# non-issue on GitHub Actions. Work around the issue by importing
# cetrificates manually.
- Invoke-WebRequest https://curl.haxx.se/ca/cacert.pem -OutFile cacert.pem
- openssl pkcs12 -export -nokeys -in cacert.pem -out certs.pfx -passout "pass:"
- Import-PfxCertificate -CertStoreLocation Cert:\LocalMachine\Root -FilePath certs.pfx

build:msvc-meson:
extends: .msvc-meson
Expand All @@ -183,6 +185,9 @@ test:msvc-meson:
script:
- meson test -C build --no-rebuild --print-errorlogs --slice $Env:CI_NODE_INDEX/$Env:CI_NODE_TOTAL
parallel: 10
artifacts:
reports:
junit: build/meson-logs/testlog.junit.xml

test:fuzz-smoke-tests:
image: ubuntu:latest
Expand Down
8 changes: 8 additions & 0 deletions Documentation/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -119,18 +119,26 @@ TECH_DOCS += ToolsForGit
TECH_DOCS += technical/bitmap-format
TECH_DOCS += technical/build-systems
TECH_DOCS += technical/bundle-uri
TECH_DOCS += technical/commit-graph
TECH_DOCS += technical/directory-rename-detection
TECH_DOCS += technical/hash-function-transition
TECH_DOCS += technical/long-running-process-protocol
TECH_DOCS += technical/multi-pack-index
TECH_DOCS += technical/packfile-uri
TECH_DOCS += technical/pack-heuristics
TECH_DOCS += technical/parallel-checkout
TECH_DOCS += technical/partial-clone
TECH_DOCS += technical/platform-support
TECH_DOCS += technical/racy-git
TECH_DOCS += technical/reftable
TECH_DOCS += technical/remembering-renames
TECH_DOCS += technical/repository-version
TECH_DOCS += technical/rerere
TECH_DOCS += technical/scalar
TECH_DOCS += technical/send-pack-pipeline
TECH_DOCS += technical/shallow
TECH_DOCS += technical/sparse-checkout
TECH_DOCS += technical/sparse-index
TECH_DOCS += technical/trivial-merge
TECH_DOCS += technical/unit-tests
SP_ARTICLES += $(TECH_DOCS)
Expand Down
1 change: 1 addition & 0 deletions Documentation/RelNotes/2.52.0.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -325,3 +325,4 @@ including security updates, are included in this release.
(merge a66fc22bf9 rs/get-oid-with-flags-cleanup later to maint).
(merge e1d062e8ba ps/odb-clean-stale-wrappers later to maint).
(merge fdd21ba116 mh/doc-credential-url-prefix later to maint).
(merge 1c573a3451 en/doc-merge-tree-describe-merge-base later to maint).
14 changes: 10 additions & 4 deletions Documentation/git-merge-tree.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -79,11 +79,17 @@ OPTIONS

--merge-base=<tree-ish>::
Instead of finding the merge-bases for <branch1> and <branch2>,
specify a merge-base for the merge, and specifying multiple bases is
currently not supported. This option is incompatible with `--stdin`.
specify a merge-base for the merge. This option is incompatible with
`--stdin`.
+
As the merge-base is provided directly, <branch1> and <branch2> do not need
to specify commits; trees are enough.
Specifying multiple bases is currently not supported, which means that when
merging two branches with more than one merge-base, using this option may
cause merge results to differ from what `git merge` would compute. This
can include potentially losing some changes made on one side of the history
in the resulting merge.
+
With this option, since the merge-base is provided directly, <branch1> and
<branch2> do not need to specify commits; trees are enough.

-X<option>::
--strategy-option=<option>::
Expand Down
34 changes: 19 additions & 15 deletions t/t8020-last-modified.sh
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ check_last_modified() {
done &&

cat >expect &&
test_when_finished "rm -f tmp.*" &&
git ${indir:+-C "$indir"} last-modified "$@" >tmp.1 &&
git name-rev --annotate-stdin --name-only --tags \
<tmp.1 >tmp.2 &&
Expand Down Expand Up @@ -128,20 +127,25 @@ test_expect_success 'only last-modified files in the current tree' '
EOF
'

test_expect_success 'last-modified with subdir and criss-cross merge' '
git checkout -b branch-k1 1 &&
mkdir -p a k &&
test_commit k1 a/file2 &&
git checkout -b branch-k2 &&
test_commit k2 k/file2 &&
git checkout branch-k1 &&
test_merge km2 branch-k2 &&
test_merge km3 3 &&
check_last_modified <<-\EOF
km3 a
k2 k
1 file
EOF
test_expect_success 'subdirectory modified via merge' '
test_when_finished rm -rf repo &&
git init repo &&
(
cd repo &&
test_commit base &&
git switch --create left &&
mkdir subdir &&
test_commit left subdir/left &&
git switch --create right base &&
mkdir subdir &&
test_commit right subdir/right &&
git switch - &&
test_merge merge right &&
check_last_modified <<-\EOF
merge subdir
base base.t
EOF
)
'

test_expect_success 'cross merge boundaries in blaming' '
Expand Down
Loading
点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载