forked from Richasy/Bili.Uwp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
updateSubModules.ps1
59 lines (49 loc) · 2.25 KB
/
updateSubModules.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<#
.Synopsis
Update the git submodule repos with their latest version.
.Description
submodule repos:
documentation
prototypes
To target the repos latest version, we need to update the targeted version of the submodules.
We will retrieve the latest version of the remote master branch, get it, and point to it through a detached commit.
- If one submodule is checked out on a specific branch **without** pending modifications, after script execution, you will be pointing to the remote master head (through a detached commit), as expected.
- If one submodule is checked out on a specific branch **with** pending modifications, script execution will fail with an error message if your pending modifications are conflicting with master head.
In any case, the script won't change your local branch content/state.
.Link
https://git-scm.com/book/en/v2/Git-Tools-Submodules
.Parameter help
Displays this message.
#>
[CmdletBinding()]
Param(
[alias("h")]
[switch]$help = $False
)
if($help)
{
Get-Help $PSScriptRoot\updateSubModules
return
}
Write-Host -Background green -Foreground black -NoNewline ">> "
Write-Output "Submodule summary before update:"
git submodule summary -n 2
Write-Host -Background green -Foreground black -NoNewline ">> "
Write-Output "Start update..."
git submodule update --init --remote
if ($LASTEXITCODE -eq 0)
{
Write-Host -Background green -Foreground black ">> Update succeeded"
Write-Host -Background green -Foreground black -NoNewline ">> "
Write-Host 'Documentation repo is now updated to its remote master branch head content as a detached commit. (https://git-scm.com/docs/git-submodule/ - update section)';
Write-Host 'Prototypes repo is now updated to its remote master branch head content as a detached commit. (https://git-scm.com/docs/git-submodule/ - update section)';
Write-Host -Background yellow -Foreground black "WARNING: " -NoNewLine
Write-Output "We didn't update your local master branch. Proceed as you like to update it whenever you want."
}
else
{
Write-Host -Background red -Foreground black 'Update FAILED.'
}
Write-Host -Background green -Foreground black -NoNewline ">> "
Write-Output "Submodule summary after update:"
git submodule summary -n 2