Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
317 commits
Select commit Hold shift + click to select a range
c99d01e
Merge branch 'defensive-programming'
dscho Mar 21, 2025
469be00
Merge branch 'codeql-fixes'
dscho Mar 21, 2025
14e3cbf
Merge branch 'codeql'
dscho Mar 21, 2025
6c5c7d9
gvfs: optionally skip reachability checks/upload pack during fetch
May 30, 2016
8f8e4a9
gvfs: ensure all filters and EOL conversions are blocked
Jun 15, 2016
3b3c29f
gvfs: allow "virtualizing" objects
Jan 10, 2017
db094aa
Hydrate missing loose objects in check_and_freshen()
Mar 15, 2017
0ecac98
sha1_file: when writing objects, skip the read_object_hook
dscho Sep 8, 2017
6096a76
gvfs: add global command pre and post hook procs
May 24, 2016
6af73d5
t0400: verify that the hook is called correctly from a subdirectory
dscho Mar 16, 2017
bf3a5ff
t0400: verify core.hooksPath is respected by pre-command
mjcheetham Mar 12, 2025
8a38f28
Pass PID of git process to hooks.
alepauly Apr 10, 2017
cb18230
sparse-checkout: make sure to update files with a modify/delete conflict
Feb 22, 2017
e459ab2
worktree: allow in Scalar repositories
derrickstolee Sep 30, 2022
0682d47
sparse-checkout: avoid writing entries with the skip-worktree bit
Mar 1, 2017
1cad0d4
Do not remove files outside the sparse-checkout
Apr 5, 2017
694a097
send-pack: do not check for sha1 file when GVFS_MISSING_OK set
Nov 16, 2018
5ba0910
gvfs: allow corrupt objects to be re-downloaded
dscho Aug 13, 2025
588b661
git.c: add VFS enabled cmd blocking
mjcheetham Mar 6, 2025
6602ef5
cache-tree: remove use of strbuf_addf in update_one
Jul 3, 2017
5556af7
git.c: permit repack cmd in Scalar repos
mjcheetham Mar 6, 2025
6bfef91
gvfs: block unsupported commands when running in a GVFS repo
benpeart Dec 6, 2018
000c192
git.c: permit fsck cmd in Scalar repos
mjcheetham Mar 13, 2025
4577d0b
gvfs: allow overriding core.gvfs
derrickstolee Apr 15, 2020
6cd4041
git.c: permit prune cmd in Scalar repos
mjcheetham Mar 13, 2025
80db01c
BRANCHES.md: Add explanation of branches and using forks
Jul 27, 2018
8642204
Add virtual file system settings and hook proc
benpeart Jan 11, 2018
8d21b0a
virtualfilesystem: don't run the virtual file system hook if the inde…
benpeart Aug 1, 2018
c302d0d
virtualfilesystem: check if directory is included
Oct 9, 2018
78255c5
worktree: remove special case GVFS cmd blocking
mjcheetham Mar 6, 2025
4301484
backwards-compatibility: support the post-indexchanged hook
dscho May 28, 2019
2bc2bf0
builtin/repack.c: emit warning when shared cache is present
mjcheetham Mar 26, 2025
f1e5fdf
status: add status serialization mechanism
jeffhostetler Aug 22, 2017
42dda07
Teach ahead-behind and serialized status to play nicely together
jamill Jan 10, 2018
e2476d7
status: serialize to path
jeffhostetler Feb 2, 2018
336c021
status: reject deserialize in V2 and conflicts
jeffhostetler Feb 7, 2018
2fe9f7e
gvfs: verify that the built-in FSMonitor is disabled
dscho Jun 18, 2021
51b28b1
serialize-status: serialize global and repo-local exclude file metadata
jeffhostetler Jul 20, 2018
061c21a
wt-status: add trace2 data for sparse-checkout percentage
jeffhostetler Jun 21, 2024
f2e8e52
status: deserialization wait
jeffhostetler Jul 25, 2018
1f45fda
status: deserialize with -uno does not print correct hint
jeffhostetler Jun 25, 2019
17b1fe2
fsmonitor: check CE_FSMONITOR_VALID in ce_uptodate
kewillford Nov 21, 2019
12b3942
fsmonitor: add script for debugging and update script for tests
kewillford Nov 21, 2019
01a4a16
status: disable deserialize when verbose output requested.
jeffhostetler Apr 11, 2020
2a97d15
t7524: add test for verbose status deserialzation
jeffhostetler Apr 11, 2020
e66373a
deserialize-status: silently fallback if we cannot read cache file
jeffhostetler May 13, 2020
0aee816
gvfs:trace2:data: add trace2 tracing around read_object_process
jeffhostetler Sep 26, 2018
ee278a1
gvfs:trace2:data: status deserialization information
jeffhostetler Sep 26, 2018
bdd02dd
gvfs:trace2:data: status serialization
jeffhostetler Jan 7, 2019
693e7f0
gvfs:trace2:data: add vfs stats
jeffhostetler Nov 19, 2018
f206888
trace2: refactor setting process starting time
jeffhostetler Apr 15, 2019
984bacb
trace2:gvfs:experiment: clear_ce_flags_1
jeffhostetler Apr 30, 2019
ca649da
trace2:gvfs:experiment: report_tracking
jeffhostetler Apr 30, 2019
354d2e7
trace2:gvfs:experiment: read_cache: annotate thread usage in read-cache
jeffhostetler Jun 14, 2019
3e21ca0
trace2:gvfs:experiment: read-cache: time read/write of cache-tree ext…
jeffhostetler Jul 9, 2019
18fa0c1
trace2:gvfs:experiment: add region to apply_virtualfilesystem()
jeffhostetler Jul 16, 2019
a77f91f
trace2:gvfs:experiment: add region around unpack_trees()
jeffhostetler Jul 16, 2019
f72701a
trace2:gvfs:experiment: add region to cache_tree_fully_valid()
jeffhostetler Jul 16, 2019
ded032c
trace2:gvfs:experiment: add unpack_entry() counter to unpack_trees() …
jeffhostetler Jul 16, 2019
1141617
credential: set trace2_child_class for credential manager children
jeffhostetler Oct 3, 2019
c13e45c
trace2:gvfs:experiment: increase default event depth for unpack-tree …
jeffhostetler Jul 25, 2019
37ef52b
sub-process: do not borrow cmd pointer from caller
jeffhostetler Sep 18, 2019
053fa03
trace2:gvfs:experiment: add data for check_updates() in unpack_trees()
jeffhostetler Jul 25, 2019
16e6fb6
sub-process: add subprocess_start_argv()
jeffhostetler Sep 18, 2019
9aa2717
Trace2:gvfs:experiment: capture more 'tracking' details
jeffhostetler Jul 26, 2019
a8fea04
sha1-file: add function to update existing loose object cache
jeffhostetler Sep 24, 2019
ca951d0
index-pack: avoid immediate object fetch while parsing packfile
dscho Apr 17, 2026
7930a81
gvfs-helper: create tool to fetch objects using the GVFS Protocol
jeffhostetler Aug 13, 2019
c22235a
sha1-file: create shared-cache directory if it doesn't exist
jeffhostetler Oct 7, 2019
a1d7ed5
gvfs-helper: better handling of network errors
jeffhostetler Oct 8, 2019
4869384
gvfs-helper-client: properly update loose cache with fetched OID
jeffhostetler Oct 8, 2019
659aa92
gvfs-helper: V2 robust retry and throttling
jeffhostetler Oct 10, 2019
7d0b0aa
gvfs-helper: expose gvfs/objects GET and POST semantics
jeffhostetler Oct 21, 2019
e95e585
gvfs-helper: dramatically reduce progress noise
derrickstolee Oct 24, 2019
3eb677d
gvfs-helper: handle pack-file after single POST request
derrickstolee Nov 11, 2019
bee254b
test-gvfs-prococol, t5799: tests for gvfs-helper
jeffhostetler Oct 25, 2019
75e734c
gvfs-helper: move result-list construction into install functions
jeffhostetler Nov 13, 2019
18d2344
t5799: add support for POST to return either a loose object or packfile
jeffhostetler Nov 13, 2019
5004665
t5799: cleanup wc-l and grep-c lines
jeffhostetler Nov 13, 2019
d6fc107
gvfs-helper: verify loose objects after write
derrickstolee Sep 18, 2020
6b7d23b
t7599: create corrupt blob test
jeffhostetler Sep 18, 2020
0331552
gvfs-helper: add prefetch support
jeffhostetler Nov 11, 2019
5e2a48f
gvfs-helper: add prefetch .keep file for last packfile
jeffhostetler Nov 26, 2019
a0ae34a
gvfs-helper: do one read in my_copy_fd_len_tail()
derrickstolee Dec 16, 2019
ed044ca
gvfs-helper: move content-type warning for prefetch packs
derrickstolee Dec 16, 2019
debafa8
fetch: use gvfs-helper prefetch under config
derrickstolee Dec 17, 2019
0e612e8
gvfs-helper: better support for concurrent packfile fetches
jeffhostetler Dec 18, 2019
379563f
remote-curl: do not call fetch-pack when using gvfs-helper
derrickstolee Feb 3, 2020
533015f
fetch: reprepare packs before checking connectivity
derrickstolee Mar 12, 2020
f8e06d3
gvfs-helper: add --max-retries to prefetch verb
jeffhostetler Apr 12, 2023
3193c2b
gvfs-helper: retry when creating temp files
derrickstolee Dec 26, 2019
70438b1
t5799: add tests to detect corrupt pack/idx files in prefetch
jeffhostetler Apr 13, 2023
8ff6c73
sparse: avoid warnings about known cURL issues in gvfs-helper.c
derrickstolee Aug 3, 2021
d87df12
gvfs-helper: ignore .idx files in prefetch multi-part responses
jeffhostetler Apr 13, 2023
8bcc637
t5799: explicitly test gvfs-helper --fallback and --no-fallback
jeffhostetler Jun 28, 2024
a5c0dfb
gvfs-helper: don't fallback with new config
derrickstolee Jun 27, 2024
13639f5
test-gvfs-protocol: add cache_http_503 to mayhem
jeffhostetler Jun 28, 2024
655bc3c
t5799: add unit tests for new `gvfs.fallback` config setting
jeffhostetler Jun 28, 2024
613e283
maintenance: care about gvfs.sharedCache config
derrickstolee Dec 15, 2020
024adf4
unpack-trees:virtualfilesystem: Improve efficiency of clear_ce_flags
neerajsi-msft2 Feb 6, 2021
d742689
.github/actions/akv-secret: add action to get secrets
mjcheetham Apr 1, 2025
4d5e7f7
release: create initial Windows installer build workflow
vdye Jul 16, 2021
34c1bab
release: create initial Windows installer build workflow
mjcheetham Mar 21, 2025
c65584a
homebrew: add GitHub workflow to release Cask
mjcheetham Jul 24, 2020
87bc2a7
Disable the `monitor-components` workflow in msft-git
dscho May 13, 2022
8e968b6
help: special-case HOST_CPU `universal`
jeffhostetler Oct 17, 2023
00ce441
Adding winget workflows
Apr 29, 2021
3ae75dd
.github: enable windows builds on microsoft fork
derrickstolee Mar 8, 2023
f51d65e
release: add Mac OSX installer build
vdye Jul 16, 2021
5880c53
release: build unsigned Ubuntu .deb package
vdye Jul 16, 2021
72e968e
release: add signing step for .deb package
vdye Jul 16, 2021
72ceaaa
release: create draft GitHub release with packages & installers
vdye Jul 16, 2021
6868500
dist: archive HEAD instead of HEAD^{tree}
vdye Dec 2, 2021
ec9ce46
build-git-installers: publish gpg public key
ldennington Oct 24, 2023
1ee1067
release: include GIT_BUILT_FROM_COMMIT in MacOS build
vdye Dec 2, 2021
4869097
release: continue pestering until user upgrades
derrickstolee Oct 6, 2021
75b7152
update-microsoft-git: create barebones builtin
derrickstolee Apr 29, 2021
232f425
.github: reinstate ISSUE_TEMPLATE.md for microsoft/git
derrickstolee Mar 16, 2022
2f4ddf2
update-microsoft-git: Windows implementation
derrickstolee Apr 29, 2021
37c7c01
.github: update PULL_REQUEST_TEMPLATE.md
derrickstolee Mar 16, 2022
7a62ba8
release: add installer validation
ldennington Aug 17, 2022
c91eb29
update-microsoft-git: use brew on macOS
derrickstolee Apr 29, 2021
0113f6b
Adjust README.md for microsoft/git
May 4, 2021
4f86ec6
scalar: implement a minimal JSON parser
dscho Apr 26, 2021
5179969
scalar clone: support GVFS-enabled remote repositories
dscho Aug 24, 2021
7e58fa7
Merge branch 'microsoft/vfs-2.35.0'
dscho Oct 7, 2021
fd16a9d
test-gvfs-protocol: also serve smart protocol
dscho Apr 16, 2021
0d5ed3f
Merge branch 'scalar'
dscho Aug 24, 2021
779f19d
gvfs-helper: add the `endpoint` command
dscho Apr 26, 2021
34543fd
dir_inside_of(): handle directory separators correctly
dscho May 14, 2021
202f1bb
scalar: disable authentication in unattended mode
dscho May 6, 2021
54a4c83
abspath: make strip_last_path_component() global
derrickstolee Oct 4, 2022
2398696
scalar: do initialize `gvfs.sharedCache`
dscho May 3, 2021
c006788
scalar diagnose: include shared cache info
dscho Jun 1, 2021
727fe21
scalar: only try GVFS protocol on https:// URLs
dscho Apr 28, 2021
71e01d8
scalar: verify that we can use a GVFS-enabled repository
dscho Apr 16, 2021
5d0b827
scalar: add the `cache-server` command
dscho Apr 23, 2021
2d92f15
scalar: add a test toggle to skip accessing the vsts/info endpoint
dscho May 12, 2021
c2549ba
scalar: adjust documentation to the microsoft/git fork
dscho Jan 25, 2022
77c8e46
scalar: enable untracked cache unconditionally
derrickstolee Jun 21, 2021
b68b878
scalar: parse `clone --no-fetch-commits-and-trees` for backwards comp…
dscho Aug 24, 2021
0a8b91a
scalar: make GVFS Protocol a forced choice
derrickstolee May 1, 2024
cc07369
scalar: work around GVFS Protocol HTTP/2 failures
Copilot May 22, 2025
01a353e
scalar diagnose: accommodate Scalar's Functional Tests
dscho May 9, 2022
ff53a8f
gvfs-helper-client: clean up server process(es)
derrickstolee May 23, 2025
1ec4708
ci: run Scalar's Functional Tests
dscho Jun 8, 2021
440bd43
Merge branch 'scalar-with-gvfs'
dscho May 3, 2021
1efaeac
scalar: upgrade to newest FSMonitor config setting
vdye Apr 5, 2022
3d788d9
Merge branch 'run-scalar-functional-tests'
dscho Nov 16, 2021
df70c2c
add/rm: allow adding sparse entries when virtual
derrickstolee Jun 29, 2021
bce39d3
Merge branch 'scalar-reconfigure'
dscho Jun 1, 2021
be1b2dc
sparse-checkout: add config to disable deleting dirs
derrickstolee Aug 22, 2021
2b1218c
diff: ignore sparse paths in diffstat
derrickstolee Jul 26, 2021
0aadd34
repo-settings: enable sparse index by default
derrickstolee Jun 15, 2021
17ec818
Merge pull request #392: add: allow adding sparse entries when virtual
derrickstolee Jul 1, 2021
6caa707
Merge pull request #410: Sparse Index: latest integrations
derrickstolee Aug 24, 2021
4fbc4a1
Merge pull request #414: Make sparse index the default
derrickstolee Aug 26, 2021
cfc3ea0
TO-CHECK: t1092: use quiet mode for rebase tests
derrickstolee Oct 31, 2021
9e2f292
reset: fix mixed reset when using virtual filesystem
Mar 15, 2017
6563757
Merge pull request #432: sequencer: avoid progress when stderr is red…
derrickstolee Sep 23, 2021
7a6d276
diff(sparse-index): verify with partially-sparse
ldennington Sep 10, 2021
d38ec9d
stash: expand testing for `git stash -u`
vdye Sep 22, 2021
6347ba3
sparse-index: add ensure_full_index_with_reason()
derrickstolee Sep 30, 2024
b74342e
treewide: add reasons for expanding index
derrickstolee Sep 30, 2024
c9b36c8
treewide: custom reasons for expanding index
derrickstolee Sep 30, 2024
6026407
sparse-index: add macro for unaudited expansions
derrickstolee Sep 30, 2024
f7dc244
Docs: update sparse index plan with logging
derrickstolee Sep 30, 2024
391ffd8
sparse-index: log failure to clear skip-worktree
derrickstolee Sep 30, 2024
3e5ad36
stash: use -f in checkout-index child process
derrickstolee Sep 30, 2024
8bad9a2
Merge pull request #494: reset: fix mixed reset when using virtual fi…
derrickstolee Apr 4, 2022
793e5de
Merge pull request #419 from ldennington/sparse-index-diff
ldennington Sep 12, 2021
2d63f06
sparse-index: do not copy hashtables during expansion
derrickstolee Sep 27, 2024
866bf54
Merge pull request #430 from vdye/sparse-index/clean
vdye Sep 23, 2021
4d55b75
Fix rare segfault in sparse-index (#690)
dscho Oct 9, 2024
808b30f
Merge core VFS features
dscho Jun 11, 2018
8439f07
Merge advanced VFS-specific features
dscho Jun 11, 2018
fd4e472
Permit `repack` command in Scalar clones (#732)
mjcheetham Mar 31, 2025
b764739
Merge virtualfilesystem hook
dscho Jun 11, 2018
c69af16
Merge updates to serialized status
dscho Jun 11, 2018
28d5314
Merge trace2 experimental regions
jeffhostetler Apr 23, 2019
20412e5
Merge first wave of gvfs-helper feature
jeffhostetler Nov 14, 2019
adc85f7
Merge gvfs-helper prefetch feature
derrickstolee Dec 17, 2019
d5a2e9d
Harden gvfs-helper to validate the packfiles in a multipart prefetch …
jeffhostetler Apr 17, 2023
016582d
gvfs-helper: add gvfs.fallback and unit tests (#665)
dscho Jul 1, 2024
b2358d1
Merge pull request #301: Update 'git maintenance' to match upstream
derrickstolee Dec 15, 2020
0b5e0cc
Merge pull request #315: unpack-trees:virtualfilesystem: Improve effi…
derrickstolee Feb 16, 2021
86f69a1
Merge branch 'add-workflows'
derrickstolee Apr 30, 2021
689f1d7
Merge branch 'adjust-g4w-workflows'
dscho May 13, 2022
d3e91ab
Merge pull request #399 from vdye/feature/build-installers
vdye Jul 29, 2021
37168b9
Merge pull request #472 from vdye/ms/macos-build-options
vdye Dec 6, 2021
d1c264a
Merge pull request #329: Add `git update-microsoft-git`
derrickstolee Apr 30, 2021
5bf8233
Merge pull request #333: update microsoft/git README
derrickstolee May 17, 2021
071d81f
Merge pull request #371 from dscho/run-scalar-functional-tests-and-fi…
dscho Jun 9, 2021
b74a9e8
TO-UPSTREAM: sub-process: avoid leaking `cmd`
dscho Dec 18, 2024
18f20c3
remote-curl: release filter options before re-setting them
dscho Dec 18, 2024
b82e8a4
Merge branch 'sparse-index-stuff'
dscho Jun 17, 2022
6ecceb2
transport: release object filter options
dscho Dec 18, 2024
dcfe688
Merge branch 'leak-fixes'
dscho Dec 18, 2024
1757cdf
push: don't reuse deltas with path walk
derrickstolee Nov 16, 2024
ed1c142
pack-objects: don't reuse deltas with path walk (#707)
dscho Dec 19, 2024
5331de0
t7900-maintenance.sh: reset config between tests
mjcheetham Jan 22, 2025
c028362
maintenance: add cache-local-objects maintenance task
mjcheetham Jan 14, 2025
6606734
scalar.c: add cache-local-objects task
mjcheetham Jan 23, 2025
c098ba7
maintenance: add new `cache-local-objects` maintenance task (#720)
mjcheetham Jan 31, 2025
dc7bda7
hooks: add custom post-command hook config
derrickstolee Mar 25, 2025
3905835
TO-UPSTREAM: Docs: fix asciidoc failures from short delimiters
derrickstolee Mar 25, 2025
465b077
hooks: make hook logic memory-leak free
derrickstolee Mar 25, 2025
a316af6
t0401: test post-command for alias, version, typo
derrickstolee Nov 7, 2025
b09c1b1
hooks: better handle config without gitdir
derrickstolee Nov 7, 2025
5391bde
hooks: add custom post-command hook config (#736)
dscho Apr 7, 2025
a99343a
scalar: add run_git_argv
mjcheetham Dec 17, 2025
48363e5
scalar: add --ref-format option to scalar clone
mjcheetham Dec 17, 2025
9df7abb
Merge branch 'codeql'
dscho Mar 21, 2025
0d74324
gvfs-helper: skip collision check for loose objects
derrickstolee Jan 8, 2026
f3b5a2c
gvfs-helper: emit advice on transient errors
derrickstolee Jan 8, 2026
a98b0c2
Add `--ref-format` option to scalar clone (port to `vfs-2.52.0`) (#832)
dscho Jan 8, 2026
c6ac1f6
gvfs-helper: avoid collision check for packfiles
derrickstolee Jan 8, 2026
c30da60
gvfs-helper: prevent and/or give advice on repeated downloads to shar…
dscho Jan 9, 2026
507b0e6
t5799: update cache-server methods for multiple instances
derrickstolee Jan 17, 2026
eda63b8
gvfs-helper: override cache server for prefetch
derrickstolee Jan 5, 2026
987daa9
gvfs-helper: override cache server for get
derrickstolee Jan 5, 2026
adc9bb8
gvfs-helper: override cache server for post
derrickstolee Jan 5, 2026
69e4d23
t5799: add test for all verb-specific cache-servers together
derrickstolee Jan 17, 2026
b238540
lib-gvfs-helper: create helper script for protocol tests
derrickstolee Jan 18, 2026
ae537c5
t579*: split t5799 into several parts
derrickstolee Jan 18, 2026
dde68fd
gvfs-helper: add config to incrementally replace cache servers (#836)
derrickstolee Jan 22, 2026
d3d250d
scalar: add --<verb>-cache-server-url options
derrickstolee Jan 23, 2026
c4897c6
Restore previous errno after post command hook
tyrielv Feb 10, 2026
d2dc844
t9210: differentiate origin and cache servers
derrickstolee Jan 28, 2026
3dee212
Restore previous errno after post command hook (#860)
dscho Feb 10, 2026
a0dd493
scalar: add --<verb>-cache-server-url options (#849)
dscho Feb 11, 2026
c6d35dd
unpack-trees: skip lstats for deleted VFS entries in checkout
Mar 6, 2026
8336758
worktree: conditionally allow worktree on VFS-enabled repos
Mar 26, 2026
eb2ebda
gvfs-helper: create shared object cache if missing
derrickstolee Feb 12, 2026
6f1a0fe
gvfs-helper: send X-Session-Id headers
derrickstolee Mar 24, 2026
844a185
unpack-trees: skip lstats for deleted VFS entries in checkout (#865)
dscho Mar 26, 2026
a7bda18
gvfs: add gvfs.sessionKey config
derrickstolee Mar 24, 2026
f2adce8
worktree: conditionally allow worktree on VFS-enabled repos (#868)
mjcheetham Mar 27, 2026
1ba8961
gvfs-helper: create shared object cache if missing (#861)
mjcheetham Mar 27, 2026
0fd48b3
gvfs: clear DIE_IF_CORRUPT in streaming incore fallback
tyrielv Mar 27, 2026
b36fad3
gvfs-helper: emit X-Session-Id headers for requests (#862)
mjcheetham Mar 27, 2026
1093e72
workflow: add release-vfsforgit to automate VFS for Git updates
mjcheetham Mar 27, 2026
efe5d34
gvfs: clear DIE_IF_CORRUPT in streaming incore fallback (#873)
dscho Mar 28, 2026
a6551e1
worktree remove: use GVFS_SUPPORTS_WORKTREES for skip-clean-check gate
tyrielv Mar 30, 2026
756066c
workflow: add release-vfsforgit to automate VFS for Git updates (#871)
mjcheetham Mar 31, 2026
30ff6c8
ci: add new VFS for Git functional tests workflow
mjcheetham Mar 30, 2026
32e552e
worktree remove: use gvfs_config_is_set for skip-clean-check gate (#875)
mjcheetham Apr 2, 2026
a9c6288
azure-pipelines: add stub release pipeline for Azure
mjcheetham Apr 17, 2026
8e6b7fb
Add VFS for Git functional tests workflow (#874)
mjcheetham Apr 2, 2026
2e91db5
azure-pipelines: add stub release pipeline for Azure (#886)
mjcheetham Apr 17, 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