Closed Bug 590921 Opened 14 years ago Closed 8 years ago

Add git to the package

Categories

(Firefox Build System :: MozillaBuild, task)

x86
Windows 7
task
Not set
normal

Tracking

(Not tracked)

RESOLVED WONTFIX

People

(Reporter: kbrosnan, Unassigned)

References

Details

A number of web properties that Mozilla produces are in git repos. It would be nice to have git as part of Mozilla Build. There are several packages of git for Windows. One of the leading ones is msysGit but there are some issues with integrating it. msysGit uses a custom build of msys which poses a problem, http://groups.google.com/group/msysgit/browse_thread/thread/dbe50a1755c6000d/59e91763ef6bb69f I'm giving git# a try http://www.eqqon.com/index.php/GitSharp it looks like it could meet the needs of Mozilla Build.
Going to punt on this until 1.7.
No longer blocks: 631910
(In reply to Gary Kwong [:gkw, :nth10sd] from comment #2) > http://jbuckley.ca/2011/10/getting-git-working-in-mozilla-build/ shows a > workaround. Note that I also had to make this workaround: http://stackoverflow.com/questions/3431361/git-for-windows-the-program-cant-start-because-libiconv2-dll-is-missing#comment-7303677 "... had to copy the DLL to %WINDIR% (C:\windows) ..." (Credit jamiebarrow at StackOverflow)
I think msys git v1.7.7 (Git-1.7.7-preview20111014.exe) fixed this issue, as I didn't have to copy any dll files to get this workaround to work. I've updated my blog post with the minimum version required, thanks for the info!
(In reply to Jon Buckley from comment #4) > I think msys git v1.7.7 (Git-1.7.7-preview20111014.exe) fixed this issue, as > I didn't have to copy any dll files to get this workaround to work. I've > updated my blog post with the minimum version required, thanks for the info! Unfortunately I had used msys git 1.7.7, and the dll files I at least had to copy into C:\Windows in order to obtain a first clone were: libcrypto.dll libcurl-4.dll libiconv2.dll libiconv-2.dll libintl-8.dll libssl.dll Tested on MozillaBuild 1.5.1 on Windows 7 x64.
I presume that we should use whatever the latest release is (presumably 1.7.x) when we do this?
Also, what's the advantage of using msysgit vs. git for Windows?
Yeah, just use whatever the most current release is. I didn't even know that those two different packages existed, but the README on Github provides some clarification (https://github.com/msysgit/msysgit#the-relationship-between-msysgit-and-git-for-windows): > Git for Windows is the software package that installs a minimal environment to run Git on Windows. It comes with a Bash (a Unix-type shell), with a Perl interpreter and with the Git executable and its dependencies. > On the other hand, msysGit is the software package installing the build environment that can build Git for Windows. The easiest way is to install it via the net installer. Sounds like mozilla build wants Git for Windows.
This is a huge headache. I wouldn't recommend taking it on. I have a sort of idea of how to fix this, but it's probably involved. AIUI, "Git for Windows" ships an entire MSYS environment. We don't want that, as we have our own MSYS. I think the ideal solution would be to build a git against our existing MSYS and ship that. We build a few other bits of MSYS software as part of MozillaBuild, it should be doable.
I've been experimenting locally with MSYS 1.0.18 recently. I'm going to try to take things one step further by seeing if I can cherry-pick the git parts of the Git for Windows package on top of that. Might not work at all, but seems worth a shot.
Sadly, msysgit uses a custom-patched version of MSYS. I think this is going to have to wait until we can switch to msys2.
No longer blocks: MozillaBuild2.0
Depends on: 1100925
VS2015 community edition has git cli.
(In reply to Makoto Kato (:m_kato) from comment #16) > VS2015 community edition has git cli. What is the path to it? Is that the version we recommend people to install?
I'm not sure if the docs all say it, but I recommend people use VS Community edition.
(In reply to Armen Zambrano G. (:armenzg - Toronto) from comment #17) > (In reply to Makoto Kato (:m_kato) from comment #16) > > VS2015 community edition has git cli. > > What is the path to it? > Is that the version we recommend people to install? current RC has bugs that installing git to %TEMP%. There is an install option by custom install to install git cli on VS2015 community edition. There is no express edition on 2015, users will install community edition at least.
I installed the VS2015 community edition RC and it looks like git gets installed to program files as you'd expect: C:\Program Files (x86)\Git\cmd\git.exe It's just msys git, but if I do `export PATH=$PATH:/c/Program\ Files\ \(x86\)/Git/cmd/` in my MozillaBuild shell it works fine there, so we should probably just detect if it's installed and use that.
Also http://blogs.msdn.com/b/visualstudioalm/archive/2013/03/08/use-the-git-command-prompt-to-supplement-visual-studio.aspx indicates that you can optionally install it in 2013, so the right call here might be to just tell people to do that.
I followed the steps in the link in comment 21, poked around in MSVC 2013 (even had to first import a Git repo) and finally got the download link for the msysgitVS installation executable via the MSVC 2013 interface: http://go.microsoft.com/fwlink/?LinkId=278817 Using MozillaBuild 1.11.0, I was able to use git.exe via /c/Program\ Files\ \(x86\)/Git/bin/git.exe : $ /c/Program\ Files\ \(x86\)/Git/bin/git.exe --version git version 1.9.5.msysgit.0 Tested on Windows 7.
In my control panel, I see that I now have: Git version 1.9.5-preview20141217 installed. Contrast to the latest version from https://msysgit.github.io/ : Git-1.9.5-preview20150319
I feel it is increasingly important to include Git in MozillaBuild, or at least automatically detect any Git installed. Cloning CSSWG's test repo would crash the Mercurial if no Git is found in PATH...
See bug 1253212 for a patch that adds 32-bit Git detection support for MozillaBuild. You will first have to install 32-bit Git separately.
See Also: → 1253212
Another reason to do this is that the newer versions of Git for Windows apparently don't use MozillaBuild's ssh-agent process for authentication, so interacting with a git+ssh repository means re-entering your password every time you invoke a Git command.
Unfortunately, this isn't something the existing MozillaBuild is ever going to properly support, especially with the longer-term plan of moving to msys2 instead (where git Just Works). I don't have an ETA for when msys2 will be ready for production (maybe gps knows better), but leaving this bug open isn't going to accomplish anything since git support will come along for free with msys2.
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → WONTFIX

The WSL bug (bug 1311729) has been closed as WONTFIX. Is using WSL still the plan forward?

Flags: needinfo?(ryanvm)

That's a question for Kim's team.

Flags: needinfo?(ryanvm) → needinfo?(kmoir)

In response to comment #31, yes WSL is still the plan going forward

Our current build roadmap is here

https://docs.google.com/document/d/1YM8OJmdHqI64vuZ2Y1vQvz828HLmJ_CvvIG-W74BPjU/edit

Flags: needinfo?(kmoir)
Product: mozilla.org → Firefox Build System
You need to log in before you can comment on or make changes to this bug.