Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrate the wiki pages #59

Merged
merged 626 commits into from
Mar 17, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
626 commits
Select commit Hold shift + click to select a range
969aae5
Rephrase the sentence about versions that fixed bugs, to avoid confus…
dscho Sep 13, 2019
639d64e
Created Install or update inside Msys2, Cygwin or Git-for-windows its…
sinloss Nov 6, 2019
079969d
Updated Install or update inside Msys2, Cygwin or Git for windows its…
sinloss Nov 6, 2019
4742b1a
Updated Install or update inside Msys2, Cygwin or Git for windows its…
sinloss Nov 6, 2019
e82b64f
added new page index
PhilipOakley Nov 6, 2019
5a632e7
Use MSYS2 instead of Msys2
dscho Nov 6, 2019
bd1a763
Updated Install or update inside MSYS2, Cygwin or Git for windows its…
sinloss Nov 8, 2019
14ec52e
Fix factual mistakes, explain more some bits
elieux Nov 9, 2019
f9f05a9
Fix typo
elieux Nov 9, 2019
b222d3c
Fix capitalization
elieux Nov 9, 2019
4a1e09b
Fix idiom
elieux Nov 10, 2019
e86130b
Updated Install or update inside MSYS2, Cygwin or Git for windows its…
sinloss Nov 11, 2019
9ee359a
Use proper names, especially "Git for Windows"
elieux Nov 11, 2019
bc85d2d
Fix formatting
elieux Nov 11, 2019
0bd3d10
Rename a document so that it can be checked out on Windows
dscho Nov 29, 2019
3b9d0ac
As pointed out by @Osse, this use case is not supported by Git for Wi…
dscho Dec 3, 2019
4de6958
Initial draft for testing
PhilipOakley Dec 3, 2019
d816d5f
tweaks
PhilipOakley Dec 3, 2019
6735973
added extra page
PhilipOakley Dec 3, 2019
c124a2c
added Sourcetrail link
PhilipOakley Dec 3, 2019
83c2b5f
corrected c99 and corrected some of sequence
PhilipOakley Dec 3, 2019
b79c426
Recommend updating to v2.24.1(2)
dscho Dec 10, 2019
2edf0bd
FIX: Substitutes an idiomatic positive emphasis, rather than a contra…
BR-Nicholas-Prado Jan 13, 2020
6f8b453
Clarify first paragraph (pointed out by @elieux)
dscho Jan 29, 2020
1643bd5
Package management: Correct names
elieux Jan 29, 2020
0a68a03
Package management: Include bash in MSYS2 core upgrade instructions
elieux Jan 29, 2020
fc53b51
Package management: Fix MSYS2 wiki link
elieux Jan 29, 2020
e1ca8c0
Package management: Forget BinTray and manual package uploads
elieux Jan 29, 2020
e24a1f9
Add an introductory summary
dscho Jan 30, 2020
96bb563
Add some detail about the built-in commands and their `.exe` files
dscho Feb 23, 2020
c5b343a
Updated Updating your SDK (markdown)
PhilipOakley Mar 8, 2020
ffe90e6
Describe the `Cwd.dll` problem and workaround
dscho Mar 26, 2020
3c1c674
The latest vulnerabilities were fixed in v2.26.1
dscho Apr 15, 2020
1fa6b78
Fix formatting
elieux Apr 19, 2020
f437e15
Improve formatting and typography
elieux Apr 19, 2020
6f09d13
Fix typo
elieux Apr 19, 2020
1875221
Fix some little things
elieux Apr 19, 2020
fd4aace
Fix title
elieux Apr 19, 2020
2b5549a
Correct misconceptions
elieux Apr 19, 2020
342c2f9
Remove extraneous title
elieux Apr 19, 2020
f906bad
Recommend a MINGW shell for mingw-w64 packages
elieux Apr 20, 2020
aadcdeb
Updated Symbolic Links (markdown)
lubas569 Apr 28, 2020
e526747
use https
vszakats May 3, 2020
0e98afe
Expand and clarify the review of the updates when the batch file is run.
PhilipOakley May 12, 2020
6eb897b
extra notes on the .bat update process
PhilipOakley Jun 13, 2020
184f5f2
Updated Install inside MSYS2 proper (markdown)
suntong Jun 17, 2020
b358d13
Updated Install inside MSYS2 proper (markdown)
suntong Jun 17, 2020
cf67193
remove (this step may have to be repeated occasionally until https://…
suntong Jun 17, 2020
532d05b
Updated Install inside MSYS2 proper (markdown)
suntong Jun 17, 2020
b2f4a75
Use links referring to the default branch in a generic way
dscho Jun 17, 2020
999817d
Adjust for the currently-used main branch name
dscho Jun 17, 2020
40efc18
Replace pacboy commands with pacman
elieux Jun 19, 2020
b76ebd7
Changed `-Syu` to `-Syyu`; not sure if needed, but it one report sugg…
elieux Jun 21, 2020
ab6260a
Open a MINGW64 shell as a separate step
elieux Jun 21, 2020
a51f932
Change `-u` to `-uu` to enable downgrades
elieux Jun 21, 2020
7259685
Fix indentation of step 2
elieux Jun 21, 2020
4395438
Provide support for the installation steps
elieux Jun 21, 2020
89160be
At long last, taking some time to write all of this down
dscho Jun 30, 2020
1c3b090
Document Git for Windows' snapshots
dscho Jul 2, 2020
31525f7
Explain the role of the "Git wrapper"
dscho Jul 3, 2020
257aaab
Start documenting how Git for Windows' components are upgraded to new…
dscho Jul 6, 2020
95e1408
Document the main challenge with the `perl` package
dscho Jul 7, 2020
4a49184
Link the two new pages that go into further detail
dscho Jul 7, 2020
56a862f
Add the motivation for keeping Perl up to date
dscho Jul 7, 2020
c3ae3f1
Mention that the DLL file name has to be upgraded manually (don't ask…
dscho Jul 7, 2020
c975f2e
Explain how to deal with no-longer-applicable patches
dscho Jul 7, 2020
9f3b627
typo with link
derrickstolee Jul 7, 2020
59a2f28
Mention a work-around for broken git-add--interactive
elieux Sep 10, 2020
e118ff4
Updated Issue reporting guidelines (markdown)
Affaway Oct 14, 2020
71c4a99
add Building-new-package-versions
PhilipOakley Oct 19, 2020
5997f57
add exec()-semantics
PhilipOakley Oct 19, 2020
0bb5098
added Git-for-Windows' "snapshots"
PhilipOakley Oct 19, 2020
75c5030
added Technical-overview
PhilipOakley Oct 19, 2020
de84069
added The "Git-wrapper"
PhilipOakley Oct 19, 2020
47b7efd
added Upgrading the 'perl' component
PhilipOakley Oct 19, 2020
12b66f3
removed fork(), exec(), CreateProcess(): Windows vs Linux - Now simpl…
PhilipOakley Oct 19, 2020
714cb33
Mention that Git for Windows older than v2.29.2(2) is vulnerable (due…
dscho Nov 5, 2020
2aa80e2
Touch up the recent edits
dscho Nov 5, 2020
44e374d
Good commits: fix link to ablogaboutcode article
phil-blain Dec 3, 2020
34747f2
Mention that v2.29.2(3) also is one of those versions with critical s…
dscho Dec 8, 2020
39625d1
Describe Git for Windows' versioning scheme
dscho Dec 9, 2020
5b231f1
Rename the ``Git-for-Windows' "snapshots"´´ page
dscho Dec 18, 2020
9faaa4c
Rename the ``The "Git-wrapper"´´ page
dscho Dec 18, 2020
5714005
Releasing Git for Windows: explain how to integrate last-minute chang…
dscho Dec 19, 2020
ca955c8
Fix whitespace issues
dscho Dec 19, 2020
4c6aa47
Releasing Git for Windows: fix scriptlet
dscho Dec 19, 2020
c4cf775
Releasing Git for Windows: describe a convenient alias
dscho Dec 19, 2020
e650d70
How to recover from empty clone
danmoseley Dec 27, 2020
83ae4ef
Mention that 2.30.0(2) fixes a vulnerability
dscho Jan 14, 2021
6f34d18
192.168.1.2
VUTHANHTUNG512 Jan 19, 2021
3bdc09f
Destroyed https: www.example.com (rest)
rimrul Jan 28, 2021
47e94b9
Warn less strongly against using symlinks
dscho Feb 25, 2021
eae7324
in #7: git-extra doesn't seem to exist, probably git-extras was intended
xko Mar 3, 2021
0b80677
reverting previous edit, was based on wrong assumption. sorry..
xko Mar 3, 2021
b1b4bc3
Emacs Windows path should have forward slashes
dennisameling Mar 6, 2021
a06adc4
Updated FAQ (markdown)
Jokerok50 Mar 8, 2021
47ee459
v2.30.2 fixes CVE-2021-21300
dscho Mar 10, 2021
8a00e89
Updated Symbolic Links (markdown)
joblo2021 Mar 17, 2021
ac40418
'mail', like 'stuff' and 'traffic', doesn't get an 's' like countable…
bish0polis Mar 20, 2021
c2ece3c
Revert "'mail', like 'stuff' and 'traffic', doesn't get an 's' like c…
dscho Apr 8, 2021
1d282bf
Created _Sidebar (markdown)
DarkSnowBallz618 Apr 11, 2021
8edd79b
Updated introductory paragraph (1/2) to match the retirement of `vs/m…
PhilipOakley Apr 22, 2021
0cb55c7
Destroyed FAQ (markdown)
cc520743 Apr 23, 2021
26d9ae6
Created Domande frequenti (markdown)
ema367 Apr 29, 2021
331562d
Destroyed Domande frequenti (markdown)
ema367 Apr 29, 2021
c479b23
Destroyed _Sidebar (markdown)
rimrul Apr 30, 2021
ef07d88
Revert 8edd79bd30233ff21b7b783879f540d397bc1b67...0cb55c7bb422c0c42b8…
rimrul Apr 30, 2021
d909cdf
Updated _Footer (markdown)
NoLuvLost7687 Apr 30, 2021
010c5e6
Remove explicit mingw-w64-x86_64-curl installation, it's a dependency
elieux May 22, 2021
f5af33f
Streamline steps
elieux May 22, 2021
ec1aed1
Note that msys2-runtime can be kept
elieux May 22, 2021
0a7da4f
Run Git from outside the shells
elieux May 22, 2021
2ecf412
Explain downgraded packages better
elieux May 22, 2021
030ac2b
Let's talk about git-extra
elieux May 22, 2021
b503154
Updated Install inside MSYS2 proper (markdown)
elieux May 25, 2021
8d474ed
Add mention of the git-credential-manager package
Geoffrey-A Jun 18, 2021
8e48ccd
Add how to get `git help` work with man pages
Geoffrey-A Jun 18, 2021
dcf0577
Git Credential Manager for Windows is no longer being maintained. The…
okrc Jul 30, 2021
3f46361
Updated Building msys2 runtime (markdown)
TaleTN Aug 18, 2021
5aba120
Updated Building msys2 runtime (markdown)
TaleTN Aug 18, 2021
08ad440
add method to the update section
DavidBruchmann Aug 26, 2021
4449936
Updated Updating your SDK (markdown)
DavidBruchmann Aug 26, 2021
e2f09d8
Revert 5aba1208f2a900b5f539d3507df3d7a93a9475cb...4449936fb80b8ece0a0…
rimrul Aug 27, 2021
c6cf1ca
Destroyed FAQ (markdown)
Beltran1161 Aug 30, 2021
0574720
Revert e2f09d84c7e05bb849f37ea2b8c5e424d7afd9cc...c6cf1caed952197b505…
rimrul Sep 1, 2021
a0abaca
Created article. It provides a brief overview & explains how to confi…
Sophismata Oct 5, 2021
ca5efc0
Updated to provide more specific instructions and correct some wording.
Sophismata Oct 5, 2021
7d7be5f
Slight correction to wording
Sophismata Oct 5, 2021
c72a1ea
no more `git relink` since 9dec2c652f (Merge branch 'js/retire-relink…
carenas Oct 7, 2021
9922c53
Updated Install inside MSYS2 proper (markdown)
elieux Oct 16, 2021
88a05e2
Detail an 'in-place method for retaining existing git repos, while re…
PhilipOakley Nov 2, 2021
d7b265b
Update the MSYS2 documentation link.
BasixKOR Nov 4, 2021
7e5d974
Add back Git for Windows' take on Cygwin <-> MSYS2
dscho Nov 4, 2021
3352a84
Lead with the simplest way to build the installer
dscho Nov 17, 2021
3313feb
Destroyed MinGit (markdown)
elyan7946 Nov 18, 2021
6bc375d
Revert 3352a84f165cce69f8844327f85c7bbb97dc9dab...3313feb9f624aed52e0…
rimrul Nov 19, 2021
f78f47b
Updated Rebasing Git for Windows (markdown)
immki Nov 25, 2021
63110b9
Revert 6bc375d65c6983672ad577f16d309e20efe537f2...f78f47bf7d63af2da82…
rimrul Nov 25, 2021
1caccbe
We just switched from an Azure Pipeline synchronizing the git-sdk-* r…
dscho Dec 6, 2021
be134a6
Updated Install inside MSYS2 proper (markdown)
Dec 24, 2021
032d298
Put a letter uncapitalised
JoseDeFreitas Feb 4, 2022
450efb1
Updated Symbolic Links (markdown)
tobiasheilmannn Feb 12, 2022
1d98017
merge-conflicts: format "From the git List" links as a list
phil-blain Feb 14, 2022
3b61fe1
point mintty link to GitHub pages The link to mintty currently point…
dacodas Feb 17, 2022
a3b0396
Add info about `git update-git-for-windows` command
SamB Feb 18, 2022
d8d076c
Add a link
dscho Mar 15, 2022
37812b9
typo
dymil Mar 23, 2022
1b06a66
debugging-git: add note on Pygments for source code highlighting
phil-blain May 3, 2022
b639d70
Mention that Git for Windows v2.36.0 is required to stay safe, for now
dscho May 4, 2022
63a33b3
Updated File names, Branch names, Path quotation, Executable bit and …
PhilipOakley May 21, 2022
3b1c69b
I met an signature not trust error later without these patch. see htt…
shukebeta May 23, 2022
b2c3f2d
Updated Install inside MSYS2 proper (markdown)
shukebeta May 23, 2022
54a8ea9
Updated Install inside MSYS2 proper (markdown)
shukebeta May 23, 2022
ed71a04
Updated Install inside MSYS2 proper (markdown)
shukebeta May 23, 2022
60bd6dc
Releasing Git for Windows: We no longer use `git-sdk-*-extra-artifacts`
dscho Jun 17, 2022
86a41d5
Releasing Git for Windows: link to the "new git version" issue
dscho Jun 17, 2022
d892aa4
Releasing Git for Windows: note that Pacman takes a long time
dscho Jun 17, 2022
0454987
Releasing Git for Windows: we do push to `main` more quickly, nowadays
dscho Jun 17, 2022
6e16b01
There is not actually any "th" sound in "GitHub"
dscho Jul 12, 2022
d345460
Git for Windows v2.37.1 is the latest security bug fix release
dscho Jul 12, 2022
4c978c2
Updated FAQ (markdown)
rimrul Jul 27, 2022
e1ce019
Add a page explaining why Git for Windows does not work with Mandator…
dscho Jul 28, 2022
bbc5544
Rename the page to allow cloning on Windows (question marks are not p…
dscho Jul 28, 2022
13f3486
生的 责备
maiyazfc Aug 8, 2022
e97bfee
Revert "生的 责备"
dscho Aug 10, 2022
37363ba
Changes discussed in issue #4016
2bam Sep 21, 2022
cc4d914
Mention that Git for Windows v2.38.1 is required to stay safe, for now
dscho Oct 18, 2022
fbcfbf1
Document how to backport git.git patches
dscho Nov 14, 2022
2137746
Explain how to develop the installer's pages efficiently
dscho Nov 20, 2022
2ba8cbf
wiki: rename git-extra to mingw-w64-git-extra
dennisameling Dec 27, 2022
09742a6
Updated Home (markdown)
bakree25 Dec 29, 2022
8b48b28
Fix malformed repository links
ParkerM Jan 9, 2023
c3f0ffd
Mention that Git for Windows v2.39.1 is required to stay safe, for now
dscho Jan 23, 2023
c98e0d7
Replace `git-extra` with `mingw-w64-git-extra`
dscho Jan 24, 2023
7147a12
Updated FAQ (markdown)
derrickstolee Feb 14, 2023
849fba1
Merge remote-tracking branch 'origin/update-git-extra-docs'
dscho Feb 14, 2023
21bbbe4
Added more fat warnings.
DavyLandman Mar 14, 2023
f713029
Updated Install inside MSYS2 proper (markdown)
DavyLandman Mar 14, 2023
90f9837
Mention steps to fix DLL issues; merge all notes into one section as …
elieux Mar 15, 2023
6ad6704
Note that the guide should be read completely first
elieux Mar 15, 2023
6f5dd32
Add missing mingw64/
elieux Apr 3, 2023
61e96a4
Add recommendation to upgrade to security release v2.40.1
vdye Apr 25, 2023
af14829
file path limit consistent with https://github.com/git-for-windows/gi…
wangyoutian Jun 24, 2023
3caea0a
Make silent or unattended installation guide more comprehensive based…
Okeanos Oct 17, 2023
d45329e
Improve wording for saving options to file
Okeanos Oct 17, 2023
e65a12c
Code formatting added.
SetTrend Nov 3, 2023
f7b3363
Updated Silent or Unattended Installation (markdown)
SetTrend Nov 3, 2023
a2a2e5b
Updated Silent or Unattended Installation (markdown)
SetTrend Nov 3, 2023
e7ff259
Updated Silent or Unattended Installation (markdown)
SetTrend Nov 3, 2023
62622ff
Updated Silent or Unattended Installation (markdown)
SetTrend Nov 3, 2023
f81a44b
Updated Silent or Unattended Installation (markdown)
SetTrend Nov 3, 2023
d736982
Updated Silent or Unattended Installation (markdown)
SetTrend Nov 3, 2023
45170ba
Updated Silent or Unattended Installation (markdown)
SetTrend Nov 3, 2023
61d258c
Page created explaining the mapping between Git Installer GUI setting…
SetTrend Nov 3, 2023
dd0393e
Updated Mapping between Git Installer GUI Settings And Command Line A…
SetTrend Nov 3, 2023
c1e17b6
Updated Mapping between Git Installer GUI Settings And Command Line A…
SetTrend Nov 3, 2023
894b91a
Updated Mapping between Git Installer GUI Settings And Command Line A…
SetTrend Nov 3, 2023
fc7d946
Updated 0. Index (markdown)
SetTrend Nov 3, 2023
42388fa
Make 0.Index alphabetically sorted again
dscho Nov 3, 2023
f692f1c
Updated Mapping between Git Installer GUI Settings And Command Line A…
SetTrend Nov 6, 2023
aed1d9a
Add deprecation warning. It may help new people (like me) avoid looki…
domsleee Nov 11, 2023
0df6633
Redirect broken link to the correct one
Chand-ra Dec 16, 2023
5753fb6
Created Dibujante_de_autocad (markdown)
Multiservicios2023 Jan 10, 2024
e278ce4
Revert 0df663304bce986da6571cca48b34508d4823a11...5753fb6fab9899da20f…
rimrul Jan 11, 2024
e477c93
Fixed the link to getgit script
arisudesu Jan 15, 2024
0298fb6
Updated _Footer (markdown)
Chirriz Feb 1, 2024
3985d12
Revert ca955c8fd2837496fedc31d557ec0f983be99034...0298fb627f6054db3fd…
MarijnS95 Feb 1, 2024
9398d90
Adjust the documentation to how things are done now using the GitForW…
dscho Feb 10, 2024
8c33978
Whoops, forgot to adjust some parts the the new lay of the land.
dscho Feb 10, 2024
6ffc9b1
Bring the "Why, How, What" of the updates in continuity
goyalyashpal Feb 27, 2024
325fc9b
Destroyed FAQ (markdown)
SnoopdougyDoug May 11, 2024
38518ab
Revert 6ffc9b132e445d74bfeb9c286eacb2db1d94e81c...325fc9b01f16aac3fd3…
rimrul May 12, 2024
22f4e6a
Mention the newest security bug-fix release
dscho May 15, 2024
9738b66
Updated FAQ (markdown)
hoangngoc50 Sep 15, 2024
778a0e5
Note that 32-bit versions do not enjoy full support anymore, and Wind…
dscho Oct 8, 2024
11e6855
Update the note clarifying that we're following Cygwin in dropping su…
dscho Oct 8, 2024
ed85cfd
add a link to Victoria Dye's excellent blog post
phil-blain Oct 15, 2024
33d2257
Updated FAQ (markdown)
hamad350 Jan 3, 2025
2e6ae67
Clarify that ReFS supports symbolic links
dscho Jan 9, 2025
88bf0c6
Dev Drives are probably the most commonly used ReFS drives, so much s…
dscho Jan 9, 2025
d84d8a6
Mention the latest security release
dscho Jan 15, 2025
d50eed1
Clarify that there is limited support for aliases and hooks
dscho Jan 16, 2025
479cd6e
Do suggest to upgrade to at least 2.47.1(2)
dscho Jan 28, 2025
2e299b9
Improve markup of the initial notices
dscho Jan 28, 2025
5a5d8d0
Updated Git cannot create a file or directory with a long path (markd…
jtnord Mar 5, 2025
6bd107b
Updated Git cannot create a file or directory with a long path (markd…
jtnord Mar 5, 2025
21a499b
Revert "Updated Git cannot create a file or directory with a long pat…
dscho Mar 6, 2025
7f2fcdc
Revert "Updated Git cannot create a file or directory with a long pat…
dscho Mar 6, 2025
0a6533b
Stop referring to the Google Group; It was shut down.
dscho Mar 11, 2025
79e4d9d
Merge https://github.com/git-for-windows/git.wiki
dscho Mar 11, 2025
10c86c2
Add a site map
dscho Mar 12, 2025
a103b8c
Footer: add a link back to "Home"
dscho Mar 12, 2025
c45fb63
Drop some wiki pages
dscho Mar 11, 2025
e03bcc4
templates: drop trailing empty lines
dscho Mar 12, 2025
c2b2054
Move wiki pages into place
dscho Mar 11, 2025
20ff271
Fix two protocol-less links
dscho Mar 12, 2025
f930e60
Running Git's regression tests: adjust a file name a little
dscho Mar 12, 2025
21ce97e
Adjust the style so that the former wiki pages look less awful
dscho Mar 11, 2025
6d37921
Adjust the sole image link of the former wiki pages
dscho Mar 11, 2025
b262811
Set the title according to the front matter (if it is set there)
dscho Mar 12, 2025
3ed136b
Render the `![IMPORTANT]` messages similar to GitHub
dscho Mar 12, 2025
221daed
Offer anchors for the headings
dscho Mar 12, 2025
1662525
Ensure that there is at most one top-level header
dscho Mar 12, 2025
2ac1dfd
Transmogrify the original wiki home page
dscho Mar 12, 2025
1f0187c
continuous-integration: replace completely outdated information
dscho Mar 12, 2025
6a3f882
Avoid a semi-clash between the two "32-bit" pages
dscho Mar 12, 2025
7ad0570
Stop recommending to edit the wiki
dscho Mar 12, 2025
a5b9303
Replace all links to the wiki with relative links
dscho Mar 12, 2025
100b4e4
Fix all broken links
dscho Mar 12, 2025
a0ce3c0
Avoid DOS line endings
dscho Mar 13, 2025
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
28 changes: 22 additions & 6 deletions assets/sass/style.scss
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,6 @@ html {
font: 16px/1 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
}

li a {
font-size: .875em;
}

a {
color: #4B8CD2;
text-decoration: none;
Expand Down Expand Up @@ -247,7 +243,7 @@ div.version {
margin-top: 0;
}

.details p a:not(.button) {
.details a:not(.button) {
color: #A3CFFF;
text-decoration: underline;
}
Expand Down Expand Up @@ -307,6 +303,10 @@ div.version {
text-shadow: 0 -1px rgba(0, 0, 0, 0.35);
}

.details :is(h3, h4, p) + p {
margin-top: 1em;
}

.details .vcentercontainer:first-child {
margin-right: 5%;
}
Expand Down Expand Up @@ -356,9 +356,25 @@ body.page {
text-align: center;
}

article p,h3,ul {
article > :not(h1, h2),h3,ul {
margin-left: auto;
margin-right: auto;
width: 65%;
}
}
.markdown-important::before {
content:url('img/important.svg');
padding-left: 0.6em;
padding-right: 0.2em;
}
.markdown-important {
border-left: .25em solid #f34f29;
}
.anchor {
transform: translateX(-80%) scale(.6);
position: absolute;
}

:is(h1, h2, h3, h4):not(:hover) .anchor {
display: none;
}
4 changes: 2 additions & 2 deletions content/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ Simply right-click on a folder in Windows Explorer to access the BASH or GUI.
<div class="vcentercontainer detailstext">
<div>

As an open source project, Git for Windows benefits greatly from both the volunteer work of helpful developers and [good bug reports](https://github.com/git-for-windows/git/wiki/Issue-reporting-guidelines) made by Git for Windows' users.
As an open source project, Git for Windows benefits greatly from both the volunteer work of helpful developers and [good bug reports](./issue-reporting-guidelines.html) made by Git for Windows' users.

### Governance Model

Expand All @@ -72,7 +72,7 @@ If you've noticed a bug or simply have an idea that you'd like to see become rea

The _Git for Windows SDK_ is a build environment that includes all the tools necessary for developers who want to contribute by writing code for Git for Windows.

Please look at the [technical overview](https://github.com/git-for-windows/git/wiki/Technical-overview) of the Git for Windows packaging and how to include your changes in your own custom installer.
Please look at the [technical overview](./technical-overview.html) of the Git for Windows packaging and how to include your changes in your own custom installer.

<a name="download-sdk" /><a class="button" href="https://github.com/git-for-windows/build-extra/releases/latest" target="_blank">Download <span class="gittext">Git for Windows SDK</span></a>

Expand Down
49 changes: 49 additions & 0 deletions content/adding-regression-tests.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
---
title: "Adding regression tests"
aliases:
- "Adding-regression-tests"
---
Git comes with an extensive regression test suite. It lives in the [`t/` subdirectory](https://github.com/git/git/tree/HEAD/t) of the source code repository and is organized into test scripts, e.g. `t8002-blame.sh`, which contain multiple test cases. The test scripts themselves are shell scripts.

The best documentation how to add tests is the test suite itself, by example.

# Adding test cases

You will want to add test cases either to demonstrate bugs, or to ensure that certain operations work as expected (e.g. when you just implemented such an operation or fixed a bug).

In the most common case, you will want to add your test case to an existing test script. Use the file name and `git grep`'s output as an indicator which script is the best one to which to add your test case.

Each test case is written in the form

```sh
test_expect_success 'title' '
# Here come the shell script statements
'
```

If you want to demonstrate a breakage, use `test_expect_failure` instead, and write the rest of the test case as if the bug was fixed, i.e. the way you want to see it succeed.

Inside the script part, you need to connect everything into an ‘&&’ chain, i.e.

```sh
test_commit this-will-write-a-file-and-commit &&
echo New file >new-file.txt &&
git status --porcelain --verbose --verbose >output &&
grep new-file.txt output
```

If you need to test anything Windows-specific, you can put `MINGW` before the case’s title, as a prerequisite. Likewise, you can use `!MINGW` to test only on non-Windows.

Every script creates a test repository with a test working tree in a new directory called `t/trash directory.<basename>`, e.g. `t/trash directory.t8002-blame/`.

Traditionally, the first “test case” is the setup, where you set up files and commits common to multiple test cases in the same script.

There are a bunch of really useful functions for use in test scripts, e.g. `test_commit`, which not only abbreviates the common “write a file, add it, commit it, tag the commit” stanza, but also increments the timestamp from a fixed first timestamp, so that the commits are reproducible (read: so you can reliably debug even if the bug depends on some side effect of some compression or some such). You will find a comprehensive list in [`t/README`](https://github.com/git/git/blob/HEAD/t/README) under the “Test harness library” heading.

There are also a bunch of useful test helpers in `t/helper/` (automatically added to the `PATH`) e.g. `test-chmtime`. If you need to test native functions, you can introduce a new test helper, or piggy-back onto an existing one.

As you will most likely add a test case to an existing script, you can use whatever the test repository’s current state is. To find out, just run the script with the `-d` option, which will leave the trash directory behind instead of removing it after a successful conclusion of the script: `cd t && sh t8002-blame.sh -d`.

In addition to `-d`, I found the options `-i` (stop upon first failing test case), `-x` (show the tests’ commands before they are executed) and `-v` (show the entire output instead of suppressing it) useful.

If you want to use `-x`, it is best to run through bash instead of sh, as some tests require a bash feature where the trace is printed to a different file descriptor than stderr, although in Git for Windows’ SDK, sh still refers to bash, so it is the same.
37 changes: 37 additions & 0 deletions content/auto-launching-ssh-agent-when-git-starts.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
---
title: "Auto launching ssh agent when git starts"
aliases:
- "Auto-launching-ssh-agent-when-git-starts"
---
If you want your passphrase to be 'remembered' for a session (or configurable timeout period) you will need to setup an ssh-agent process to handle this key.

Recent versions of git for windows 2.x come with an ssh agent startup script and the installer also checks if an ssh agent is currently running and asks you to kill this process.

Run the ssh agent:

start-ssh-agent.cmd

This should work both in a `cmd` and `bash` shell and can be included in `~/.profile` or `~/.bashrc`.

The [GitHub instructions](https://help.github.com/articles/working-with-ssh-key-passphrases/#auto-launching-ssh-agent-on-msysgit) are still valid but not needed anymore.

## Manually

To launch, put in `~/.profile` or `~/.bashrc`:

```bash
# ssh-agent auto-launch (0 = agent running with key; 1 = w/o key; 2 = not run.)
agent_run_state=$(ssh-add -l >| /dev/null 2>&1; echo $?)
if [ $agent_run_state = 2 ]; then
eval $(ssh-agent -s)
ssh-add ~/.ssh/id_rsa
elif [ $agent_run_state = 1 ]; then
ssh-add ~/.ssh/id_rsa
fi
```

To close on shell exit, put in `~/.bash_logout`:

```bash
ssh-agent -k
```
63 changes: 63 additions & 0 deletions content/backporting-upstream-git-patches.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
---
title: "Backporting upstream Git patches"
aliases:
- "Backporting-upstream-Git-patches"
---
# How to backport a patch (series) that was contributed to upstream Git

Git for Windows' [release cadence](https://github.com/git-for-windows/git/security/policy#supported-versions) closely follows the [release cycle of the "upstream" Git project](https://tinyurl.com/gitcal).

Sometimes patches that already made it into upstream Git, but that have not been released as part of an official version, are important enough for Git for Windows that they need to be "backported", i.e. they to be integrated into Git for Windows' `main` branch.

Contributions to the upstream Git project [are only accepted in the form of patches or patch series sent via mail to the Git mailing list](https://git-scm.com/docs/SubmittingPatches#send-patches). This makes backporting them a bit more challenging than if regular Git tools like `git pull` could be used.

## GitGitGadget contributions

If the contribution was sent to the mailing list via [GitGitGadget](https://gitgitgadget.github.io/) (which is a tool allowing to send GitHub PRs to the Git mailing list without having to fiddle with mail programs until they send the contribution in the precise form that the Git project wants them), the backporting process is comparatively hassle-free: GitGitGadget contributions have a fetch'able Git branch and the PRs contain other relevant information such as the date and the commit which integrated the patches into Git's main branch.

Take for example [the "ci: use a newer `github-script` version" patch that avoids warnings in CI runs about using deprecated Actions/node.js versions](https://lore.kernel.org/git/[email protected]/): That mail contains the information in the footer from which PR it originated (in this example, [`gitgitgadget/git#1387`](https://github.com/gitgitgadget/git/pull/1387)). That PR receives labels depending on the contribution process: `seen` if it was integrated into the daily hodgepodge branch of Git, `next` once the contribution advanced to the "let's cook this for a bit" stage, and `master` once the contribution has been slated for the next official Git version.

That PR also receives a comment once the patches have been integrated into a tentative topic branch, in this example ["js/ci-set-output"](https://github.com/gitgitgadget/git/pull/1387#issuecomment-1307968188). Following the [`js/ci-set-output` link](https://github.com/gitgitgadget/git/commits/js/ci-set-output), you can see the Git commits of the topic branch in which for upstream Git tracks the patches. You can also see the original shape of the contribution by clicking on the link to the PR branch at the top of the PR page.

When backporting patches, the Git for Windows project typically prefers the shape that was already accepted upstream, i.e. once it made it into `next`, we backport the _upstream topic branch_'s commits.

The typical way to backport such a branch is to first see whether it needs to be rebased at all, i.e. if there are any additional commits between Git for Windows' `main` branch and that topic branch. The quickest way is to direct a web browser to a URL like this: https://github.com/git-for-windows/git/compare/main...gitgitgadget:next (replace `gitgitgadget:next` with your own fork and branch).

### Scenario: The upstream topic branch can be used as-is

If that comparison only shows the commits of the contribution, we're almost done: hit the "Create pull request" button on that page and populate the PR description with [informative, enjoyable content](https://github.blog/2022-06-30-write-better-commits-build-better-projects/), i.e. providing enough context and motivation to understand why the patches need to be backported, enough detail to understand the contribution, how it solves the issue(s) at hand and what other impact the patches have, and of course add links to the relevant discussions such as the Git mailing list thread, the relevant Git for Windows tickets (if any), etc

### Scenario: The upstream topic branch _cannot_ be used as-is

There seems to be little rhyme nor reason on top of which commit, precisely, the Git maintainer decides to apply the patches received via the Git mailing list. At times it seems rather arbitrary and is not always conducive to using the upstream topic branch in Git for Windows as-is. In the example mentioned above, the comparison between Git for Windows' `main` branch and the topic branch showed 386 commits instead of the single desired one, at the time of writing.

In such scenarios, a backport involves creating a local branch from the upstream topic branch, rebasing the patch on top of a more suitable base commit (typically, a Git tag, or a Git for Windows tag if necessary to avoid merge conflicts, falling back to the tip of Git for Windows' `main` branch), then pushing the result and opening a PR from that. In the example above:

1. `git fetch https://github.com/gitgitgadget/git js/ci-set-output`
2. `git switch -c js/ci-set-output FETCH_HEAD`
3. `git rebase -i --onto v2.38.0 HEAD~1 # increase 1 accordingly for multiple patches`
4. `git push <personal-fork> HEAD`

After that, as detailed above, open a PR with an [informative, enjoyable description](https://github.blog/2022-06-30-write-better-commits-build-better-projects/), i.e. providing enough context and motivation to understand why the patches need to be backported, enough detail to understand the contribution, how it solves the issue(s) at hand and what other impact the patches have, and of course add links to the relevant discussions such as the Git mailing list thread, the relevant Git for Windows tickets (if any), etc

## Non-GitGitGadget contributions

If the contribution that needs to be backported did _not_ use GitGitGadget, it can become a bit more daunting, in particular when going off of a bug report on the Git mailing list. The first step, then, is to find the relevant topic branch (if any).

### If there is not even an upstream topic branch yet

The most challenging scenario is when there exists a patch that needs to be backported but it has not been integrated into Git yet (not even into the `seen` branch), and all one has to go for is a thread on the Git mailing list (or even just a Message-Id, which can be turned into a link to the Git mailing list archive via https://lore.kernel.org/git/<message-id>).

The first order of business is to find the mail containing the patch. Often, these mails have either been linked to from a reply to the bug report, or they are sent as replies directly, with the mail's subject line starting with `[PATCH]`. If that is not the case, the mail containing the patch can be identified by scrolling all the way to the beginning of the mail thread at the bottom of the lore.kernel.org page that has the bug report, then click the "nested" link so that all mails in the thread are shown, and then using the browser's "Find" functionality to search for the needle "diff --git".

Once the mail containing the patch was found, the [`apply-from-lore.sh` script](https://github.com/git-for-windows/build-extra/blob/HEAD/apply-from-lore.sh) can be used with the mail's permalink to apply it to a local branch in a checkout of [the `git-for-windows/git` repository](https://github.com/git-for-windows/git/).

Then, continue as detailed in the first sections above.

### If there _is_ an upstream topic branch

Sometimes, contributors are asked to backport patches that have made it into upstream Git. If it is already clear what name the Git maintainer gave the topic branch, continue as outlined in the corresponding subsection of [the "GitGitGadget" section](#gitgitgadget-contributions) above.

If it is unclear what the name of that topic branch is, search for the first line of a commit message ("commit subject" or "oneline") of that contribution in the [What's cooking mail](https://github.com/git/git/blob/todo/whats-cooking.txt); The name of the topic branch will be mentioned above the line mentioning the commit subject.

If all else fails, you can also try to fetch the `seen` branch and search for the topic branch via `git show FETCH_HEAD^{/<regex>}` where the regular expression matches the commit subject in question.
62 changes: 62 additions & 0 deletions content/building-git.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
---
title: "Building Git"
aliases:
- "Building-Git"
---
# Building Git on Windows

We build Git for Windows using an [MSYS2](https://msys2.github.io/) based *Git for Windows SDK*. This SDK can be installed via the [SDK installer](https://gitforwindows.org/#download-sdk)

## Installing a build environment

1. Just run the [SDK installer](https://gitforwindows.org/#download-sdk).

## Build Git

1. An initial `git clone` and `make` should have already occurred when running the [SDK installer](https://gitforwindows.org/#download-sdk).

2. Open the *Git for Windows SDK* *MinGW* shell by double clicking either the Shortcut on the desktop `Git SDK 32-bit.lnk` or by double clicking `mingw32_shell.bat` in the install folder. That is `Git SDK 64-bit.lnk` and `mingw64_shell.bat` for the `64bit` [SDK installer](https://gitforwindows.org/#download-sdk).

2. Change directory to the initial clone: `cd /usr/src/git`. If the directory is empty you may have the `master` branch checked out: `git checkout main`.

4. (Optional) build Git: `make install`

5. Run the test suite: `make test`. If you are a fan of statistics, you can use the following `prove` invocation to run the testsuite. But first we have to change to the test directory with the command `cd t`. After that you can issue `/usr/bin/time prove -j 15 --state=failed,save ./t[0-9]*.sh`. If *15* threads are too many for your system, you can provide the number of threads via the `-j <num>` (j for jobs) parameter.

## Build Git from a Pull Request or another branch

Once the SDK built Git, it is *very* easy to build another revision of Git, such as per a different branch or Pull Request.

1. open the Git Bash of the SDK unless it is still open: execute the `git-bash.exe` binary in the top-level directory of the SDK,
2. switch the working directory: `cd /usr/src/git`,
3. fetch the Pull Request's revision or the branch:
1. if you want to test a Pull Request, call `git fetch origin refs/pull/<id>/head`, where `<id>` is the number of the Pull Request (e.g. if you want to test Pull Request #606, you would call `git fetch origin refs/pull/606/head`),
2. if you want to test a custom branch, call `git fetch <url> <branch>` instead, where `<url>` is the URL of the repository and `<branch>` is the name of the branch to test (e.g. if you wanted to test @dscho's `cool-new-feature` branch, you would call `git fetch https://github.com/dscho/git cool-new-feature`),
4. check out the revision that was just fetched: `git checkout FETCH_HEAD`,
5. continue as [above](./building-git.html#build-git) either by `make install` or `make test`.

## Updating to the newest Git for Windows version

```bash
cd /usr/src/git
git pull
make -j15 install install-html
```

## Testing the new Git version

As before:

```bash
cd /usr/src/git/t
/usr/bin/time prove -j 5 --state=failed,save ./t[0-9]*.sh
```

## See also Regression Testing

Single tests, block of tests, or the whole test suite can be run, as detailed in
[Running Git's regression-tests](./running-gits-regression-tests.html)


---
TODO: mention good practices to develop using Eclipse, MSVC
Loading