From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Re: PROPOSAL: Move to git, now that bzr is no longer a req. Date: Fri, 03 Jan 2014 17:55:38 +0200 Message-ID: <83r48pvz45.fsf@gnu.org> References: <20140102095347.6834E381D0C@snark.thyrsus.com> <87fvp6bdd9.fsf_-_@ktab.red-bean.com> <83wqiixqbb.fsf@gnu.org> <20140102172804.GB13245@thyrsus.com> <83vby2xo6x.fsf@gnu.org> <83r48qxg6e.fsf@gnu.org> <87y52y5bau.fsf@wanadoo.es> <83iou1y06o.fsf@gnu.org> <87ha9l5d82.fsf@wanadoo.es> <83txdlw1aw.fsf@gnu.org> <871u0p5bdt.fsf@wanadoo.es> Reply-To: Eli Zaretskii NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: QUOTED-PRINTABLE X-Trace: ger.gmane.org 1388764555 4399 80.91.229.3 (3 Jan 2014 15:55:55 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 3 Jan 2014 15:55:55 +0000 (UTC) Cc: emacs-devel@gnu.org To: =?iso-8859-1?Q?=D3scar?= Fuentes Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri Jan 03 16:55:59 2014 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1Vz76K-0001LA-I7 for ged-emacs-devel@m.gmane.org; Fri, 03 Jan 2014 16:55:56 +0100 Original-Received: from localhost ([::1]:50433 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Vz76K-0003pP-8k for ged-emacs-devel@m.gmane.org; Fri, 03 Jan 2014 10:55:56 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:36668) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Vz76B-0003p2-GV for emacs-devel@gnu.org; Fri, 03 Jan 2014 10:55:52 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Vz766-0003uf-4Z for emacs-devel@gnu.org; Fri, 03 Jan 2014 10:55:47 -0500 Original-Received: from mtaout23.012.net.il ([80.179.55.175]:61481) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Vz765-0003uZ-Q1 for emacs-devel@gnu.org; Fri, 03 Jan 2014 10:55:42 -0500 Original-Received: from conversion-daemon.a-mtaout23.012.net.il by a-mtaout23.012.net.il (HyperSendmail v2007.08) id <0MYU00C001JJRJ00@a-mtaout23.012.net.il> for emacs-devel@gnu.org; Fri, 03 Jan 2014 17:55:40 +0200 (IST) Original-Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout23.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0MYU00CCO1KRG090@a-mtaout23.012.net.il>; Fri, 03 Jan 2014 17:55:40 +0200 (IST) In-reply-to: <871u0p5bdt.fsf@wanadoo.es> X-012-Sender: halo1@inter.net.il X-detected-operating-system: by eggs.gnu.org: Solaris 10 X-Received-From: 80.179.55.175 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:167180 Archived-At: > From: =D3scar Fuentes > Date: Fri, 03 Jan 2014 16:32:46 +0100 >=20 > Eli Zaretskii writes: >=20 > >> git.cmd can be used from the command line. > > > > Did you actually try that, for real? git.cmd sets PATH to includ= e > > git's binaries, which include MSYS DLL. This means you cannot us= e in > > the same session any commands that might conflict. E.g., conside= r > > what would happen if you invoke git.cmd from a Makefile, or the o= ther > > way around. I tried that, and got stuck and crashing programs. = No, > > thanks. >=20 > git.cmd is not meant to permanently set any variable. It is invoked= from > a shell as >=20 > `git ' >=20 > Whatever environment variables it sets are effective only until the > command finishes, and for that sole command. Yes, and what happens if that command then invokes something that is not in the git's bin directory? > As previously mentioned, there is no git.cmd anymore but a git.exe = that > knows where the other commands are located. I still have git.cmd after installing the latest msysgit, FWIW. Not that I'm using it. > >> > No, but some git commands need Bash and shell scripts, and thu= s invoke > >> > MSYS programs that do need the MSYS DLL. > >>=20 > >> You don't need MSYS on the PATH, so whatever those commands use = is an > >> interal implementation detail. > > > > No, it isn't. When MSYS DLL is loaded, any other program that is > > linked to that DLL will try to use it -- and will fail if it need= s an > > incompatible version of that DLL. Therefore, you can't invoke, s= ay, > > the MSYS 'make' from the Git Bash shell, or from any Git command. >=20 > Are you sure about this? Windows allows multiple DLLs with the same > names and every application will load one of them as per the effect= ive > environment when the application is launched. Not if they have the same name. An application that was linked against FOO.DLL will ask the OS to load the first FOO.DLL on the DLL search path. If a DLL with the same base name is already in memory, Windows doesn't look for it, it just uses what's already in memory. See this page for the details: http://msdn.microsoft.com/en-us/library/windows/desktop/ms682586%28= v=3Dvs.85%29.aspx You _can_ have different DLLs with the same functionality, but they must have different names, as in libpng13.dll and libpng16.dll, and each executable should specify the name it wants in its import table. When you install both msysgit and MSYS that uses a different MSYS DLL= , you have a small DLL hell on your hands. That's why I keep them separate: to avoid that. > A different history is if you invoke an MSYS (or Cygwin) executable > from MSYSGit, or vice-versa, but that is an improbable scenario > (please keep in mind that git.exe is not a MSYS binary, so invoking > it from Cygwin/MSYS shouldn't be problematic, at least for the usua= l > git commands.) Well, I run git from Bash, so an MSYS binary is already in the air when I invoke any git commands.