Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
319 commits
Select commit Hold shift + click to select a range
185e4e7
serialize-status: serialize global and repo-local exclude file metadata
jeffhostetler Jul 20, 2018
ab6aaac
trace2: refactor setting process starting time
jeffhostetler Apr 15, 2019
1ae7a94
status: deserialization wait
jeffhostetler Jul 25, 2018
7cac489
trace2:gvfs:experiment: clear_ce_flags_1
jeffhostetler Apr 30, 2019
bfa7736
status: deserialize with -uno does not print correct hint
jeffhostetler Jun 25, 2019
db7a92d
trace2:gvfs:experiment: report_tracking
jeffhostetler Apr 30, 2019
e059869
fsmonitor: check CE_FSMONITOR_VALID in ce_uptodate
kewillford Nov 21, 2019
4b307ec
trace2:gvfs:experiment: read_cache: annotate thread usage in read-cache
jeffhostetler Jun 14, 2019
9e9d115
fsmonitor: add script for debugging and update script for tests
kewillford Nov 21, 2019
f9a0cc7
trace2:gvfs:experiment: read-cache: time read/write of cache-tree ext…
jeffhostetler Jul 9, 2019
eda895f
status: disable deserialize when verbose output requested.
jeffhostetler Apr 11, 2020
5ccc665
trace2:gvfs:experiment: add region to apply_virtualfilesystem()
jeffhostetler Jul 16, 2019
0ae8e59
t7524: add test for verbose status deserialzation
jeffhostetler Apr 11, 2020
a1c4e16
trace2:gvfs:experiment: add region around unpack_trees()
jeffhostetler Jul 16, 2019
ddea586
deserialize-status: silently fallback if we cannot read cache file
jeffhostetler May 13, 2020
c047e0a
credential: set trace2_child_class for credential manager children
jeffhostetler Oct 3, 2019
68b5bf2
sub-process: do not borrow cmd pointer from caller
jeffhostetler Sep 18, 2019
a36b94d
sub-process: add subprocess_start_argv()
jeffhostetler Sep 18, 2019
f1d57cc
sha1-file: add function to update existing loose object cache
jeffhostetler Sep 24, 2019
f431105
index-pack: avoid immediate object fetch while parsing packfile
dscho Apr 17, 2026
2467774
gvfs-helper: create tool to fetch objects using the GVFS Protocol
jeffhostetler Aug 13, 2019
5834c1e
sha1-file: create shared-cache directory if it doesn't exist
jeffhostetler Oct 7, 2019
0d8ca0d
gvfs-helper: better handling of network errors
jeffhostetler Oct 8, 2019
3844304
trace2:gvfs:experiment: add region to cache_tree_fully_valid()
jeffhostetler Jul 16, 2019
5a42fd6
gvfs-helper-client: properly update loose cache with fetched OID
jeffhostetler Oct 8, 2019
d2883d8
trace2:gvfs:experiment: add unpack_entry() counter to unpack_trees() …
jeffhostetler Jul 16, 2019
a4fa869
gvfs-helper: V2 robust retry and throttling
jeffhostetler Oct 10, 2019
c3f8841
trace2:gvfs:experiment: increase default event depth for unpack-tree …
jeffhostetler Jul 25, 2019
30cc86b
gvfs-helper: expose gvfs/objects GET and POST semantics
jeffhostetler Oct 21, 2019
654a504
trace2:gvfs:experiment: add data for check_updates() in unpack_trees()
jeffhostetler Jul 25, 2019
8f5bfd7
gvfs-helper: dramatically reduce progress noise
derrickstolee Oct 24, 2019
733d0f5
Trace2:gvfs:experiment: capture more 'tracking' details
jeffhostetler Jul 26, 2019
577aabd
gvfs-helper: add prefetch support
jeffhostetler Nov 11, 2019
3ff796a
gvfs-helper: add prefetch .keep file for last packfile
jeffhostetler Nov 26, 2019
7c13748
gvfs-helper: do one read in my_copy_fd_len_tail()
derrickstolee Dec 16, 2019
4c4dd7f
gvfs-helper: handle pack-file after single POST request
derrickstolee Nov 11, 2019
3fb8569
gvfs-helper: move content-type warning for prefetch packs
derrickstolee Dec 16, 2019
01b2f6c
test-gvfs-prococol, t5799: tests for gvfs-helper
jeffhostetler Oct 25, 2019
9e95b97
fetch: use gvfs-helper prefetch under config
derrickstolee Dec 17, 2019
aa254e6
gvfs-helper: move result-list construction into install functions
jeffhostetler Nov 13, 2019
c44a206
gvfs-helper: better support for concurrent packfile fetches
jeffhostetler Dec 18, 2019
22de5b3
t5799: add support for POST to return either a loose object or packfile
jeffhostetler Nov 13, 2019
01a538f
remote-curl: do not call fetch-pack when using gvfs-helper
derrickstolee Feb 3, 2020
693dcc9
t5799: cleanup wc-l and grep-c lines
jeffhostetler Nov 13, 2019
056bb72
fetch: reprepare packs before checking connectivity
derrickstolee Mar 12, 2020
38dc180
gvfs-helper: verify loose objects after write
derrickstolee Sep 18, 2020
af57ac7
gvfs-helper: retry when creating temp files
derrickstolee Dec 26, 2019
9bf8e27
gvfs-helper: add --max-retries to prefetch verb
jeffhostetler Apr 12, 2023
9ebc0f3
t7599: create corrupt blob test
jeffhostetler Sep 18, 2020
4742bc4
sparse: avoid warnings about known cURL issues in gvfs-helper.c
derrickstolee Aug 3, 2021
29c7f02
.github/actions/akv-secret: add action to get secrets
mjcheetham Apr 1, 2025
39fdcb5
release: create initial Windows installer build workflow
vdye Jul 16, 2021
8626621
t5799: explicitly test gvfs-helper --fallback and --no-fallback
jeffhostetler Jun 28, 2024
453f8c5
release: create initial Windows installer build workflow
mjcheetham Mar 21, 2025
91fbb99
gvfs-helper: don't fallback with new config
derrickstolee Jun 27, 2024
66ce629
help: special-case HOST_CPU `universal`
jeffhostetler Oct 17, 2023
cf9dee3
t5799: add tests to detect corrupt pack/idx files in prefetch
jeffhostetler Apr 13, 2023
51ffffe
test-gvfs-protocol: add cache_http_503 to mayhem
jeffhostetler Jun 28, 2024
4dde591
homebrew: add GitHub workflow to release Cask
mjcheetham Jul 24, 2020
b16eb3e
Disable the `monitor-components` workflow in msft-git
dscho May 13, 2022
3ba4ddb
release: add Mac OSX installer build
vdye Jul 16, 2021
6c82f84
gvfs-helper: ignore .idx files in prefetch multi-part responses
jeffhostetler Apr 13, 2023
ffed10f
t5799: add unit tests for new `gvfs.fallback` config setting
jeffhostetler Jun 28, 2024
135eb5d
maintenance: care about gvfs.sharedCache config
derrickstolee Dec 15, 2020
ed9fd0d
unpack-trees:virtualfilesystem: Improve efficiency of clear_ce_flags
neerajsi-msft2 Feb 6, 2021
b911fc3
Adding winget workflows
Apr 29, 2021
dcf7a55
.github: enable windows builds on microsoft fork
derrickstolee Mar 8, 2023
2c1973d
release: build unsigned Ubuntu .deb package
vdye Jul 16, 2021
a63e353
release: add signing step for .deb package
vdye Jul 16, 2021
bad6926
release: create draft GitHub release with packages & installers
vdye Jul 16, 2021
fb2ee4c
dist: archive HEAD instead of HEAD^{tree}
vdye Dec 2, 2021
4f9ca28
update-microsoft-git: create barebones builtin
derrickstolee Apr 29, 2021
6b1d000
build-git-installers: publish gpg public key
ldennington Oct 24, 2023
e107a79
release: include GIT_BUILT_FROM_COMMIT in MacOS build
vdye Dec 2, 2021
0656543
update-microsoft-git: Windows implementation
derrickstolee Apr 29, 2021
d49fbb9
.github: reinstate ISSUE_TEMPLATE.md for microsoft/git
derrickstolee Mar 16, 2022
9314704
release: continue pestering until user upgrades
derrickstolee Oct 6, 2021
8eba308
release: add installer validation
ldennington Aug 17, 2022
6fffe5a
update-microsoft-git: use brew on macOS
derrickstolee Apr 29, 2021
3fafd11
.github: update PULL_REQUEST_TEMPLATE.md
derrickstolee Mar 16, 2022
7cbeb9c
git_config_set_multivar_in_file_gently(): add a lock timeout
dscho May 18, 2021
268e680
Adjust README.md for microsoft/git
May 4, 2021
ef23cac
scalar: set the config write-lock timeout to 150ms
dscho May 18, 2021
3356b30
scalar: add docs from microsoft/scalar
derrickstolee Jun 16, 2021
9375f92
Merge branch 'scalar-gentler-config-locking'
dscho May 19, 2021
90d6107
Merge branch 'scalar-extra-docs'
dscho Nov 16, 2021
0cedb2b
scalar (Windows): use forward slashes as directory separators
dscho May 10, 2022
4d5f852
scalar: add retry logic to run_git()
derrickstolee Jun 17, 2021
3804a81
scalar: support the `config` command for backwards compatibility
dscho May 27, 2021
ad4bf2b
Merge branch 'microsoft/vfs-2.35.0'
dscho Oct 7, 2021
c23a0f1
scalar: implement a minimal JSON parser
dscho Apr 26, 2021
df42788
Merge branch 'scalar'
dscho Aug 24, 2021
657cebb
scalar clone: support GVFS-enabled remote repositories
dscho Aug 24, 2021
58da6b9
test-gvfs-protocol: also serve smart protocol
dscho Apr 16, 2021
cd9da9c
gvfs-helper: add the `endpoint` command
dscho Apr 26, 2021
d7c9693
dir_inside_of(): handle directory separators correctly
dscho May 14, 2021
7937a58
scalar: disable authentication in unattended mode
dscho May 6, 2021
4b26b6f
abspath: make strip_last_path_component() global
derrickstolee Oct 4, 2022
35d09df
scalar: do initialize `gvfs.sharedCache`
dscho May 3, 2021
290228b
scalar diagnose: include shared cache info
dscho Jun 1, 2021
62f99c5
scalar: only try GVFS protocol on https:// URLs
dscho Apr 28, 2021
4b56f3f
scalar: verify that we can use a GVFS-enabled repository
dscho Apr 16, 2021
baf31be
scalar: add the `cache-server` command
dscho Apr 23, 2021
6e44511
scalar: add a test toggle to skip accessing the vsts/info endpoint
dscho May 12, 2021
8b485bf
scalar: adjust documentation to the microsoft/git fork
dscho Jan 25, 2022
975b79e
scalar: enable untracked cache unconditionally
derrickstolee Jun 21, 2021
82508f4
scalar: parse `clone --no-fetch-commits-and-trees` for backwards comp…
dscho Aug 24, 2021
e56b327
scalar: make GVFS Protocol a forced choice
derrickstolee May 1, 2024
9878e92
scalar: work around GVFS Protocol HTTP/2 failures
Copilot May 22, 2025
3fabf95
scalar diagnose: accommodate Scalar's Functional Tests
dscho May 9, 2022
94a86dc
gvfs-helper-client: clean up server process(es)
derrickstolee May 23, 2025
166ed4d
ci: run Scalar's Functional Tests
dscho Jun 8, 2021
3a0f593
scalar: upgrade to newest FSMonitor config setting
vdye Apr 5, 2022
71ff936
Merge branch 'scalar-with-gvfs'
dscho May 3, 2021
0176b10
sparse-checkout: add config to disable deleting dirs
derrickstolee Aug 22, 2021
84836e5
Merge branch 'run-scalar-functional-tests'
dscho Nov 16, 2021
e70ed15
add/rm: allow adding sparse entries when virtual
derrickstolee Jun 29, 2021
16d9542
diff: ignore sparse paths in diffstat
derrickstolee Jul 26, 2021
34b71f5
repo-settings: enable sparse index by default
derrickstolee Jun 15, 2021
115268d
Merge branch 'scalar-reconfigure'
dscho Jun 1, 2021
5dffac7
Merge pull request #392: add: allow adding sparse entries when virtual
derrickstolee Jul 1, 2021
300984f
Merge pull request #410: Sparse Index: latest integrations
derrickstolee Aug 24, 2021
b56ca58
TO-UPSTREAM: sequencer: avoid progress when stderr is redirected
derrickstolee Sep 23, 2021
a8e1d6e
Merge pull request #414: Make sparse index the default
derrickstolee Aug 26, 2021
ba15888
sparse-index: add ensure_full_index_with_reason()
derrickstolee Sep 30, 2024
28b8b1f
treewide: add reasons for expanding index
derrickstolee Sep 30, 2024
0cba1c3
treewide: custom reasons for expanding index
derrickstolee Sep 30, 2024
095f791
sparse-index: add macro for unaudited expansions
derrickstolee Sep 30, 2024
87b4a62
TO-CHECK: t1092: use quiet mode for rebase tests
derrickstolee Oct 31, 2021
f234ddc
Docs: update sparse index plan with logging
derrickstolee Sep 30, 2024
51a3f58
reset: fix mixed reset when using virtual filesystem
Mar 15, 2017
8707609
Merge pull request #432: sequencer: avoid progress when stderr is red…
derrickstolee Sep 23, 2021
3df78f8
sparse-index: log failure to clear skip-worktree
derrickstolee Sep 30, 2024
0d4c9a9
diff(sparse-index): verify with partially-sparse
ldennington Sep 10, 2021
1e1c953
stash: expand testing for `git stash -u`
vdye Sep 22, 2021
a722477
Merge pull request #494: reset: fix mixed reset when using virtual fi…
derrickstolee Apr 4, 2022
a310bcc
stash: use -f in checkout-index child process
derrickstolee Sep 30, 2024
4fd7117
Merge pull request #419 from ldennington/sparse-index-diff
ldennington Sep 12, 2021
ed49c0e
sparse-index: do not copy hashtables during expansion
derrickstolee Sep 27, 2024
143e113
Merge pull request #430 from vdye/sparse-index/clean
vdye Sep 23, 2021
0885f7d
Fix rare segfault in sparse-index (#690)
dscho Oct 9, 2024
f5310c0
Merge core VFS features
dscho Jun 11, 2018
8a49ffd
Merge advanced VFS-specific features
dscho Jun 11, 2018
f399e09
Permit `repack` command in Scalar clones (#732)
mjcheetham Mar 31, 2025
72753f8
Merge virtualfilesystem hook
dscho Jun 11, 2018
7f49b3e
Merge updates to serialized status
dscho Jun 11, 2018
944d9c8
Merge trace2 experimental regions
jeffhostetler Apr 23, 2019
abc1e59
Merge first wave of gvfs-helper feature
jeffhostetler Nov 14, 2019
eb13b17
Merge gvfs-helper prefetch feature
derrickstolee Dec 17, 2019
0935e14
Harden gvfs-helper to validate the packfiles in a multipart prefetch …
jeffhostetler Apr 17, 2023
0262795
gvfs-helper: add gvfs.fallback and unit tests (#665)
dscho Jul 1, 2024
500a33c
Merge pull request #301: Update 'git maintenance' to match upstream
derrickstolee Dec 15, 2020
d01f50a
Merge pull request #315: unpack-trees:virtualfilesystem: Improve effi…
derrickstolee Feb 16, 2021
2673129
Merge branch 'add-workflows'
derrickstolee Apr 30, 2021
9ff2116
Merge branch 'adjust-g4w-workflows'
dscho May 13, 2022
b7c0851
Merge pull request #399 from vdye/feature/build-installers
vdye Jul 29, 2021
3a6314d
Merge pull request #472 from vdye/ms/macos-build-options
vdye Dec 6, 2021
7632ef3
Merge pull request #329: Add `git update-microsoft-git`
derrickstolee Apr 30, 2021
3169ba3
TO-UPSTREAM: sub-process: avoid leaking `cmd`
dscho Dec 18, 2024
7934d0a
Merge pull request #333: update microsoft/git README
derrickstolee May 17, 2021
2a0d73e
remote-curl: release filter options before re-setting them
dscho Dec 18, 2024
5621010
Merge pull request #371 from dscho/run-scalar-functional-tests-and-fi…
dscho Jun 9, 2021
20aaf05
transport: release object filter options
dscho Dec 18, 2024
0b6f7f3
Merge branch 'sparse-index-stuff'
dscho Jun 17, 2022
4a80493
Merge branch 'leak-fixes'
dscho Dec 18, 2024
e2d5332
hooks: add custom post-command hook config
derrickstolee Mar 25, 2025
67995b0
TO-UPSTREAM: Docs: fix asciidoc failures from short delimiters
derrickstolee Mar 25, 2025
a22c0b6
t7900-maintenance.sh: reset config between tests
mjcheetham Jan 22, 2025
1ef68d0
hooks: make hook logic memory-leak free
derrickstolee Mar 25, 2025
a3d92a3
maintenance: add cache-local-objects maintenance task
mjcheetham Jan 14, 2025
e129f43
push: don't reuse deltas with path walk
derrickstolee Nov 16, 2024
c18f47b
cat_one_file(): make it easy to see that the `size` variable is initi…
dscho Oct 27, 2022
f6bf764
t0401: test post-command for alias, version, typo
derrickstolee Nov 7, 2025
27b19a5
scalar.c: add cache-local-objects task
mjcheetham Jan 23, 2025
dd0c268
pack-objects: don't reuse deltas with path walk (#707)
dscho Dec 19, 2024
b7b0458
fsck: avoid using an uninitialized variable
dscho Dec 16, 2022
885c9c6
hooks: better handle config without gitdir
derrickstolee Nov 7, 2025
66f9265
maintenance: add new `cache-local-objects` maintenance task (#720)
mjcheetham Jan 31, 2025
09c8246
revision: defensive programming
dscho Dec 16, 2022
18eaf1a
get_parent(): defensive programming
dscho Dec 16, 2022
2e3161b
fetch-pack: defensive programming
dscho Dec 16, 2022
b7cd525
unparse_commit(): defensive programming
dscho Dec 16, 2022
5b2b925
verify_commit_graph(): defensive programming
dscho Dec 16, 2022
6ec7dc4
codeql: run static analysis as part of CI builds
dscho Aug 9, 2022
c559617
stash: defensive programming
dscho Dec 16, 2022
e149087
codeql: publish the sarif file as build artifact
dscho Mar 22, 2023
c43326c
stash: defensive programming
dscho Dec 16, 2022
3d1585f
fetch: silence a CodeQL alert about a local variable's address' use a…
dscho Dec 14, 2022
e277e03
codeql: disable a couple of non-critical queries for now
dscho Mar 21, 2025
4634cc6
push: defensive programming
dscho Dec 16, 2022
8eac178
test-tool repository: check return value of `lookup_commit()`
dscho Dec 16, 2022
ef097fa
date: help CodeQL understand that there are no leap-year issues here
dscho Jul 23, 2025
f38cce3
load_revindex_from_disk(): avoid accessing uninitialized data
dscho Dec 16, 2022
d0b514e
fetch: defensive programming
dscho Dec 16, 2022
61484c8
shallow: handle missing shallow commits gracefully
dscho Dec 16, 2022
c32c244
help: help CodeQL understand that consuming envvars is okay here
dscho Jul 23, 2025
6184a4d
load_pack_mtimes_file(): avoid accessing uninitialized data
dscho Dec 16, 2022
e98e25b
inherit_tracking(): defensive programming
dscho Dec 16, 2022
02dd28f
commit-graph: suppress warning about using a stale stack addresses
dscho Dec 17, 2022
29e8ee6
ctype: help CodeQL understand that `sane_istest()` does not access ar…
dscho Jul 23, 2025
ade505c
ctype: accommodate for CodeQL misinterpreting the `z` in `mallocz()`
dscho Jul 23, 2025
84c1b92
Merge branch 'uninitialized-variables'
dscho Oct 27, 2022
ced0669
strbuf_read: help with CodeQL misunderstanding that `strbuf_read()` d…
dscho Jul 23, 2025
5755e0d
Merge branch 'defensive-programming'
dscho Mar 21, 2025
6ea08af
codeql: also check JavaScript code
dscho Jul 24, 2025
993e0ee
Merge branch 'codeql-fixes'
dscho Mar 21, 2025
def14e5
Merge branch 'codeql'
dscho Mar 21, 2025
73d90d3
hooks: add custom post-command hook config (#736)
dscho Apr 7, 2025
a2a279e
Merge branch 'codeql'
dscho Mar 21, 2025
1fae09d
t5799: update cache-server methods for multiple instances
derrickstolee Jan 17, 2026
99f5a12
gvfs-helper: override cache server for prefetch
derrickstolee Jan 5, 2026
56827ed
gvfs-helper: override cache server for get
derrickstolee Jan 5, 2026
c55b37c
gvfs-helper: override cache server for post
derrickstolee Jan 5, 2026
9efd894
gvfs-helper: skip collision check for loose objects
derrickstolee Jan 8, 2026
079a4fd
scalar: add run_git_argv
mjcheetham Dec 17, 2025
6f88546
t5799: add test for all verb-specific cache-servers together
derrickstolee Jan 17, 2026
4fd0406
gvfs-helper: emit advice on transient errors
derrickstolee Jan 8, 2026
0be8fee
scalar: add --ref-format option to scalar clone
mjcheetham Dec 17, 2025
366d8b7
lib-gvfs-helper: create helper script for protocol tests
derrickstolee Jan 18, 2026
b73eb04
gvfs-helper: avoid collision check for packfiles
derrickstolee Jan 8, 2026
03f5a79
Add `--ref-format` option to scalar clone (port to `vfs-2.52.0`) (#832)
dscho Jan 8, 2026
f959aa2
t579*: split t5799 into several parts
derrickstolee Jan 18, 2026
e1d7d27
gvfs-helper: prevent and/or give advice on repeated downloads to shar…
dscho Jan 9, 2026
cc2c471
scalar: add --<verb>-cache-server-url options
derrickstolee Jan 23, 2026
81888ba
Restore previous errno after post command hook
tyrielv Feb 10, 2026
72c6576
gvfs-helper: add config to incrementally replace cache servers (#836)
derrickstolee Jan 22, 2026
df551f8
t9210: differentiate origin and cache servers
derrickstolee Jan 28, 2026
205d05e
Restore previous errno after post command hook (#860)
dscho Feb 10, 2026
79c62b2
gvfs-helper: send X-Session-Id headers
derrickstolee Mar 24, 2026
4866686
unpack-trees: skip lstats for deleted VFS entries in checkout
Mar 6, 2026
d7151b4
scalar: add --<verb>-cache-server-url options (#849)
dscho Feb 11, 2026
f4a85c5
worktree: conditionally allow worktree on VFS-enabled repos
Mar 26, 2026
7db55f9
gvfs-helper: create shared object cache if missing
derrickstolee Feb 12, 2026
caf4f51
gvfs: add gvfs.sessionKey config
derrickstolee Mar 24, 2026
6fb7bea
unpack-trees: skip lstats for deleted VFS entries in checkout (#865)
dscho Mar 26, 2026
1c62546
worktree: conditionally allow worktree on VFS-enabled repos (#868)
mjcheetham Mar 27, 2026
a5bb6a0
gvfs-helper: create shared object cache if missing (#861)
mjcheetham Mar 27, 2026
2a24af5
gvfs: clear DIE_IF_CORRUPT in streaming incore fallback
tyrielv Mar 27, 2026
ea94904
gvfs-helper: emit X-Session-Id headers for requests (#862)
mjcheetham Mar 27, 2026
1f90f17
workflow: add release-vfsforgit to automate VFS for Git updates
mjcheetham Mar 27, 2026
7376d73
gvfs: clear DIE_IF_CORRUPT in streaming incore fallback (#873)
dscho Mar 28, 2026
a485bab
worktree remove: use GVFS_SUPPORTS_WORKTREES for skip-clean-check gate
tyrielv Mar 30, 2026
16352aa
workflow: add release-vfsforgit to automate VFS for Git updates (#871)
mjcheetham Mar 31, 2026
b124df1
ci: add new VFS for Git functional tests workflow
mjcheetham Mar 30, 2026
4179aa5
worktree remove: use gvfs_config_is_set for skip-clean-check gate (#875)
mjcheetham Apr 2, 2026
3282678
azure-pipelines: add stub release pipeline for Azure
mjcheetham Apr 17, 2026
ebb56b0
Add VFS for Git functional tests workflow (#874)
mjcheetham Apr 2, 2026
ed5c15a
diff: add renameThreshold configuration option
tyrielv Apr 8, 2026
cb4c69b
azure-pipelines: add stub release pipeline for Azure (#886)
mjcheetham Apr 17, 2026
89cac7b
diff: add renameThreshold configuration option (#878)
dscho Apr 20, 2026
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
259 changes: 259 additions & 0 deletions .azure-pipelines/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,259 @@
name: $(Date:yyyyMMdd)$(Rev:.r)
trigger: none
pr: none

resources:
repositories:
- repository: 1ESPipelines
type: git
name: 1ESPipelineTemplates/1ESPipelineTemplates
ref: refs/tags/release

parameters:
- name: 'github'
type: boolean
default: false # TODO: change default to true after testing
displayName: 'Enable GitHub release publishing'

#
# 1ES Pipeline Templates do not allow using a matrix strategy so we create
# a YAML object parameter with and foreach to create jobs for each entry.
# Each OS has its own matrix object since their build steps differ.
#
- name: windows_matrix
type: object
default:
- id: windows_x64
jobName: 'Windows (x64)'
pool: GitClientPME-1ESHostedPool-intel-pc
image: win-x86_64-ado1es
os: windows
toolchain: x86_64
mingwprefix: mingw64

- id: windows_arm64
jobName: 'Windows (ARM64)'
pool: GitClientPME-1ESHostedPool-arm64-pc
image: win-arm64-ado1es
os: windows
toolchain: clang-aarch64
mingwprefix: clangarm64

# No matrix for macOS as we build both x64 and ARM64 in the same job
# and produce a universal binary.

- name: linux_matrix
type: object
default:
- id: linux_x64
jobName: 'Linux (x64)'
pool: GitClientPME-1ESHostedPool-intel-pc
image: ubuntu-x86_64-ado1es
os: linux
cc_arch: x86_64
deb_arch: amd64

- id: linux_arm64
jobName: 'Linux (ARM64)'
pool: GitClientPME-1ESHostedPool-arm64-pc
image: ubuntu-arm64-ado1es
os: linux
cc_arch: aarch64
deb_arch: arm64

variables:
- name: 'githubConnectionName'
value: 'GitHub-MicrosoftGit'

extends:
template: v1/1ES.Official.PipelineTemplate.yml@1ESPipelines
parameters:
sdl:
# SDL source analysis tasks only run on Windows images
sourceAnalysisPool:
name: GitClientPME-1ESHostedPool-intel-pc
image: win-x86_64-ado1es
os: windows
stages:
- stage: prereqs
displayName: 'Prerequisites'
jobs:
- job: prebuild
displayName: 'Pre-build validation'
pool:
name: GitClientPME-1ESHostedPool-intel-pc
image: ubuntu-x86_64-ado1es
os: linux
steps:
- task: Bash@3
displayName: 'Resolve version and tag information'
name: info
inputs:
targetType: inline
script: |
# TODO: determine git_version, tag_name, and tag_sha
# TODO: error if the current commit is not an annotated tag
git_version=TODO_GITVER
tag_name=TODO_TAGNAME
tag_sha=TODO_TAGSHA
echo "##vso[task.setvariable variable=git_version;isOutput=true;isReadOnly=true]$git_version"
echo "##vso[task.setvariable variable=tag_name;isOutput=true;isReadOnly=true]$tag_name"
echo "##vso[task.setvariable variable=tag_sha;isOutput=true;isReadOnly=true]$tag_sha"

- stage: build
displayName: 'Build'
dependsOn: [prereqs]
jobs:
#
# Windows build jobs
#
- ${{ each dim in parameters.windows_matrix }}:
- job: ${{ dim.id }}
displayName: ${{ dim.jobName }}
pool:
name: ${{ dim.pool }}
image: ${{ dim.image }}
os: ${{ dim.os }}
variables:
tag_name: $[stageDependencies.prereqs.prebuild.outputs['info.tag_name']]
tag_sha: $[stageDependencies.prereqs.prebuild.outputs['info.tag_sha']]
git_version: $[stageDependencies.prereqs.prebuild.outputs['info.git_version']]
toolchain: ${{ dim.toolchain }}
mingwprefix: ${{ dim.mingwprefix }}
templateContext:
outputs:
- output: pipelineArtifact
targetPath: '$(Build.ArtifactStagingDirectory)/_final'
artifactName: '${{ dim.id }}'
steps:
- checkout: self
# TODO: add tasks to set up Git for Windows SDK
# TODO: add tasks to build Git and installers
- script: |
echo $(mingwprefix)
echo $(toolchain)
displayName: 'Dummy build'
# TODO: put final artifacts under $(Build.ArtifactStagingDirectory)/_final
- script: |
echo "TODO" > $(Build.ArtifactStagingDirectory)/_final/placeholder.txt

#
# macOS build job (universal)
#
- job: macos_universal
displayName: 'macOS (x64 + ARM64)'
pool:
name: 'Azure Pipelines'
image: macOS-latest
os: macos
variables:
tag_name: $[stageDependencies.prereqs.prebuild.outputs['info.tag_name']]
tag_sha: $[stageDependencies.prereqs.prebuild.outputs['info.tag_sha']]
git_version: $[stageDependencies.prereqs.prebuild.outputs['info.git_version']]
templateContext:
outputs:
- output: pipelineArtifact
targetPath: '$(Build.ArtifactStagingDirectory)/_final'
artifactName: 'macos_universal'
steps:
- checkout: self
# TODO: add tasks to set up build environment
# TODO: add tasks to build Git and installers
- script: |
echo "Hello, Mac!"
displayName: 'Dummy build'
# TODO: put final artifacts under $(Build.ArtifactStagingDirectory)/_final
- script: |
echo "TODO" > $(Build.ArtifactStagingDirectory)/_final/placeholder.txt

#
# Linux build jobs
#
- ${{ each dim in parameters.linux_matrix }}:
- job: ${{ dim.id }}
displayName: ${{ dim.jobName }}
pool:
name: ${{ dim.pool }}
image: ${{ dim.image }}
os: ${{ dim.os }}
variables:
tag_name: $[stageDependencies.prereqs.prebuild.outputs['info.tag_name']]
tag_sha: $[stageDependencies.prereqs.prebuild.outputs['info.tag_sha']]
git_version: $[stageDependencies.prereqs.prebuild.outputs['info.git_version']]
cc_arch: ${{ dim.cc_arch }}
deb_arch: ${{ dim.deb_arch }}
templateContext:
outputs:
- output: pipelineArtifact
targetPath: '$(Build.ArtifactStagingDirectory)/_final'
artifactName: '${{ dim.id }}'
steps:
- checkout: self
# TODO: add tasks to set up build environment
# TODO: add tasks to build Git and installers
- script: |
echo $(cc_arch)
echo $(deb_arch)
displayName: 'Dummy build'
# TODO: put final artifacts under $(Build.ArtifactStagingDirectory)/_final
- script: |
echo "TODO" > $(Build.ArtifactStagingDirectory)/_final/placeholder.txt

- stage: release
displayName: 'Release'
dependsOn: [prereqs, build]
jobs:
- job: github
displayName: 'Publish GitHub release'
condition: and(succeeded(), eq('${{ parameters.github }}', true))
pool:
name: GitClientPME-1ESHostedPool-intel-pc
image: ubuntu-x86_64-ado1es
os: linux
variables:
tag_name: $[stageDependencies.prereqs.prebuild.outputs['info.tag_name']]
tag_sha: $[stageDependencies.prereqs.prebuild.outputs['info.tag_sha']]
git_version: $[stageDependencies.prereqs.prebuild.outputs['info.git_version']]
templateContext:
type: releaseJob
isProduction: true
inputs:
- input: pipelineArtifact
artifactName: 'windows_x64'
targetPath: $(Pipeline.Workspace)/assets/windows_x64
- input: pipelineArtifact
artifactName: 'windows_arm64'
targetPath: $(Pipeline.Workspace)/assets/windows_arm64
- input: pipelineArtifact
artifactName: 'macos_universal'
targetPath: $(Pipeline.Workspace)/assets/macos_universal
- input: pipelineArtifact
artifactName: 'linux_x64'
targetPath: $(Pipeline.Workspace)/assets/linux_x64
- input: pipelineArtifact
artifactName: 'linux_arm64'
targetPath: $(Pipeline.Workspace)/assets/linux_arm64
steps:
- task: GitHubRelease@1
displayName: 'Create Draft GitHub Release'
inputs:
gitHubConnection: $(githubConnectionName)
repositoryName: microsoft/git
tag: '$(tag_name)'
tagSource: userSpecifiedTag
target: '$(tag_sha)'
title: '$(tag_name)'
isDraft: true
addChangeLog: true
assets: |
$(Pipeline.Workspace)/assets/windows_x64/*.exe
$(Pipeline.Workspace)/assets/windows_x64/*.zip
$(Pipeline.Workspace)/assets/windows_arm64/*.exe
$(Pipeline.Workspace)/assets/windows_arm64/*.zip
$(Pipeline.Workspace)/assets/macos_universal/*.pkg
$(Pipeline.Workspace)/assets/macos_universal/*.dmg
$(Pipeline.Workspace)/assets/macos_universal/*.tar.gz
$(Pipeline.Workspace)/assets/linux_x64/*.deb
$(Pipeline.Workspace)/assets/linux_x64/*.tar.gz
$(Pipeline.Workspace)/assets/linux_arm64/*.deb
$(Pipeline.Workspace)/assets/linux_arm64/*.tar.gz
68 changes: 68 additions & 0 deletions .github/ISSUE_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
- [ ] I was not able to find an [open](https://github.com/microsoft/git/issues?q=is%3Aopen)
or [closed](https://github.com/microsoft/git/issues?q=is%3Aclosed) issue matching
what I'm seeing, including in [the `git-for-windows/git` tracker](https://github.com/git-for-windows/git/issues).

### Setup

- Which version of `microsoft/git` are you using? Is it 32-bit or 64-bit?

```
$ git --version --build-options

** insert your machine's response here **
```

Are you using Scalar or VFS for Git?

** insert your answer here **

If VFS for Git, then what version?

```
$ gvfs version

** insert your machine's response here **
```

- Which version of Windows are you running? Vista, 7, 8, 10? Is it 32-bit or 64-bit?

```
$ cmd.exe /c ver

** insert your machine's response here **
```

- Any other interesting things about your environment that might be related
to the issue you're seeing?

** insert your response here **

### Details

- Which terminal/shell are you running Git from? e.g Bash/CMD/PowerShell/other

** insert your response here **

- What commands did you run to trigger this issue? If you can provide a
[Minimal, Complete, and Verifiable example](http://stackoverflow.com/help/mcve)
this will help us understand the issue.

```
** insert your commands here **
```
- What did you expect to occur after running these commands?

** insert here **

- What actually happened instead?

** insert here **

- If the problem was occurring with a specific repository, can you specify
the repository?

* [ ] Public repo: **insert URL here**
* [ ] Windows monorepo
* [ ] Office monorepo
* [ ] Other Microsoft-internal repo: **insert name here**
* [ ] Other internal repo.
Loading
Loading