22 echo "Usage: $0 [-f] [-n] <version>" >&2
28 # change directory to msysGit root
29 cd "$(dirname "$0")"/..
/.. ||
{
30 echo "Could not change directory to msysGit root" >&2
37 echo "If that is okay, please call '$0 -f $version'" >&2
42 git update-index
--refresh &&
43 git diff-files
--quiet &&
44 git diff-index
--cached HEAD
--) ||
45 die
"Git submodule has dirty files"
46 (git update-index
--refresh &&
47 git diff-files
--quiet &&
48 git diff-index
--cached HEAD
--) ||
49 die
"msysGit super project not up-to-date"
52 create_msysgit_tag
() {
54 tag
=$
(git describe HEAD | cut
-d- -f1) &&
55 tag
=${tag%.msysgit.*} &&
56 while ! git tag
-a -m "Git for Windows $1" $tag.msysgit.
$i
62 # compile everything needed for standard setup
63 test "$do_compile" && {
64 wordpad
share
/WinGit
/ReleaseNotes.rtf
&& {
65 ( # create a commit if ReleaseNotes changed
66 if test ! -z "$(git diff share/WinGit/ReleaseNotes.rtf)"
68 git add
share
/WinGit
/ReleaseNotes.rtf
&&
69 git commit
-m "Git for Windows $version"
72 create_msysgit_tag
$version &&
74 (cd src
/git-cheetah
/explorer
/ && make)
81 echo "If that is okay, please call '$0 -f $version'" >&2
86 git update-index
--refresh &&
87 git diff-files
--quiet &&
88 git diff-index
--cached HEAD
--) ||
89 die
"Git submodule has dirty files"
91 test git.exe
= $
((printf 'git.exe\0'; git ls-files
-z) |
xargs --null ls -t 2>/dev
/null|
head -1)) ||
92 die
"Git's git.exe is not up-to-date (run 'cd /git && make' to fix)"
93 for f
in bin
/git
* libexec
/git-core
/git
*
100 basename=gitk-git
/gitk
102 */git-citool|
*/git-gui
)
103 basename=git-gui
/git-gui
105 */git-gui--askpass|
*/git-gui--askyesno|
*/git-gui.tcl
)
106 basename=git-gui
/$
(basename "$f")
109 basename=$
(basename "$f")
112 cmp "$f" "git/$basename" ||
113 die
"Installed Git disagrees with contents of /git/ ($f)"
115 (git update-index
--refresh &&
116 git diff-files
--quiet &&
117 git diff-index
--cached HEAD
--) ||
118 die
"msysGit super project not up-to-date"
120 test ! -z "$(git tag --contains HEAD)") ||
121 die
"Git's HEAD is untagged"
125 unset DONT_REMOVE_BUILTINS
127 share
/WinGit
/copy-files.sh
$TMPDIR &&
128 sed -e '/share\/msysGit/d' -e "s/msysGit/Git (version $version)/" \
129 < etc
/motd
> $TMPDIR/etc
/motd
&&
130 cp share
/resources
/gpl-2.0.rtf
share
/resources
/git.bmp
share
/resources
/gitsmall.bmp
$TMPDIR &&
131 sed -e "s/%APPVERSION%/$version/" \
132 < share
/WinGit
/install.iss
> $TMPDIR/install.iss
&&
133 cp share
/WinGit
/*.inc.iss
$TMPDIR &&
134 echo "Launching Inno Setup compiler ..." &&
135 (share
/InnoSetup
/ISCC.exe
"$TMPDIR/install.iss" -q > /tmp
/install.out
;
136 echo $?
> /tmp
/install.status
) &&
137 (grep -Ev "\s*Reading|\s*Compressing" < /tmp
/install.out
;
138 test 0 = "$(cat /tmp/install.status)") &&
139 git tag
-a -m "Git for Windows $1" Git-
$1 &&
140 echo "Installer is available as $HOME/Git-$version.exe"