# [ANNOUNCE] qgit4 aka qgit ported to Windows

13 messages from 2007-01-09 to 2007-01-11. Participants: Marco Costalba, Josef Weidendorfer, Yann Dirson, Martin Langhoff, Johannes Schindelin, Johannes Sixt, Andreas Ericsson.
Thread: https://gitlist.dev/t/6318

## Marco Costalba, 2007-01-09 21:14

Subject: [ANNOUNCE] qgit4 aka qgit ported to Windows
Message-ID: <e5bfff550701091314k71e282e8x125db65d5c287a94@mail.gmail.com>
URL: https://gitlist.dev/e/e5bfff550701091314k71e282e8x125db65d5c287a94%40mail.gmail.com

```
I have setup, (thanks Pasky) the repository

     git://repo.or.cz/qgit4.git


With an experimental version of qgit, called qgit4.

Features are the same of qgit-1.5.4  release but has been ported under
Qt4.2 libraries from Qt3, this means that could be compiled and run as
a Windows native application.

Qt4.2 is available as GPL for non commercial purposes also for Windows platform.

So what you need is:

1) Qt4.2 already packaged with MinGW for windows
(http://www.trolltech.com/developer/downloads/qt/windows)

2) Cygwin with git files

3) qgit sources from the above public repository

4) Compile using qmake that will build proper Makefile for you

    - qmake qgit.pro
    - make
    - (make install is supported only under Linux at the moment)

5) Open a terminal with cmd.exe, add Qt and MinGW bin dirs to PATH
(already added if you run the ready to use Qt command prompt menu that
comes with Qt installation), add cygwin bin directory to PATH,
something like:

               set PATH=%PATH%;C:\cygwin\bin\directory


6) Start qgit.exe

7) Have fun

NOTE NOTE: DO NOT RUN from a cygwin terminal, as I said qgit it's a
*native* Windows application when compiled with Qt4.2 so you don't
need that.

Well, I have tried to run from a cygwin terminal and it works almost
the same (of course you need to add Qt and MinGW bin dirs to path as
always) but it's much slower and has some little issues with the
different paths conventions.

NOTE: This is 'alpha' quality software, not all features are already
working so be prepared to few surprises.

Marco

P.S: Of course the same sources work (better) also under Linux.

```

## Josef Weidendorfer, 2007-01-09 21:55

Subject: Re: [ANNOUNCE] qgit4 aka qgit ported to Windows
Message-ID: <200701092255.17091.Josef.Weidendorfer@gmx.de>
URL: https://gitlist.dev/e/200701092255.17091.Josef.Weidendorfer%40gmx.de
In-Reply-To: <e5bfff550701091314k71e282e8x125db65d5c287a94@mail.gmail.com>

```
On Tuesday 09 January 2007 22:14, Marco Costalba wrote:
> I have setup, (thanks Pasky) the repository
> 
>      git://repo.or.cz/qgit4.git
> 
> 
> With an experimental version of qgit, called qgit4.

Nice.

Why not as branch in the original qgit repository?
You are losing all your history this way.

Josef

```

## Marco Costalba, 2007-01-09 22:30

Subject: Re: [ANNOUNCE] qgit4 aka qgit ported to Windows
Message-ID: <e5bfff550701091430r759c083bse99bd79046f3205f@mail.gmail.com>
URL: https://gitlist.dev/e/e5bfff550701091430r759c083bse99bd79046f3205f%40mail.gmail.com
In-Reply-To: <200701092255.17091.Josef.Weidendorfer@gmx.de>

```
On 1/9/07, Josef Weidendorfer <Josef.Weidendorfer@gmx.de> wrote:
> On Tuesday 09 January 2007 22:14, Marco Costalba wrote:
> > I have setup, (thanks Pasky) the repository
> >
> >      git://repo.or.cz/qgit4.git
> >
> >
> > With an experimental version of qgit, called qgit4.
>
> Nice.
>
> Why not as branch in the original qgit repository?
> You are losing all your history this way.
>

Well, Qt4 it's completely different from Qt3, porting it's a nice way
to say rewrite. So moving patches between the two branches it's very
difficult already now and it will be impossible in a near future not
because of development forking, but because of API. This means two
different and *not mergeable* branches.

Being not mergeable they lose the main motivation to be in the same
repository IMHO. Also I would like to continue to support and improve
the stable and proven Qt3 version on kernel.org that is and will be
the main version.

Perhaps when qgit4 will be stable enough I will ask to move to
kernel.org but now, for easier development I asked to Pasky, that
kindly accepted, to host this repo.

Marco

```

## Yann Dirson, 2007-01-09 22:47

Subject: Re: [ANNOUNCE] qgit4 aka qgit ported to Windows
Message-ID: <20070109224723.GG17093@nan92-1-81-57-214-146.fbx.proxad.net>
URL: https://gitlist.dev/e/20070109224723.GG17093%40nan92-1-81-57-214-146.fbx.proxad.net
In-Reply-To: <e5bfff550701091430r759c083bse99bd79046f3205f@mail.gmail.com>

```
On Tue, Jan 09, 2007 at 11:30:34PM +0100, Marco Costalba wrote:
> Being not mergeable they lose the main motivation to be in the same
> repository IMHO.

Well, this also means you lose the history trail of you project.  Just
suppose one day you'll face a piece of your code which you don't
understand any more (face it, we all have that strange "did *I* write
that ?" feeling some day ;).  Being able to hunt it down is nice - and
grafting the qt3-based repo will only be useful it you know precisely
where to put the graft...

Best regards,
-- 
Yann.

```

## Martin Langhoff, 2007-01-10 23:17

Subject: Re: [ANNOUNCE] qgit4 aka qgit ported to Windows
Message-ID: <46a038f90701101517s1d5e818eq2fba220d17a6aa03@mail.gmail.com>
URL: https://gitlist.dev/e/46a038f90701101517s1d5e818eq2fba220d17a6aa03%40mail.gmail.com
In-Reply-To: <e5bfff550701091314k71e282e8x125db65d5c287a94@mail.gmail.com>

```
On 1/10/07, Marco Costalba <mcostalba@gmail.com> wrote:
> 6) Start qgit.exe
> 7) Have fun

Great!

How much does qgit4 depend on using commandline git? IOWs, how far
from not needing cygwin+git, and shipping a git+qgit compiled against
the MinGW that QT4 has?

cheers,


martin

```

## Johannes Schindelin, 2007-01-11 08:47

Subject: Re: [ANNOUNCE] qgit4 aka qgit ported to Windows
Message-ID: <Pine.LNX.4.63.0701110944420.22628@wbgn013.biozentrum.uni-wuerzburg.de>
URL: https://gitlist.dev/e/Pine.LNX.4.63.0701110944420.22628%40wbgn013.biozentrum.uni-wuerzburg.de
In-Reply-To: <46a038f90701101517s1d5e818eq2fba220d17a6aa03@mail.gmail.com>

```
Hi,

On Thu, 11 Jan 2007, Martin Langhoff wrote:

> On 1/10/07, Marco Costalba <mcostalba@gmail.com> wrote:
> > 6) Start qgit.exe
> > 7) Have fun
> 
> Great!
> 
> How much does qgit4 depend on using commandline git? IOWs, how far
> > from not needing cygwin+git, and shipping a git+qgit compiled against
> the MinGW that QT4 has?

I do not understand what QT4 has to do with git compiling against MinGW. 
It is a totally different kind of kettle.

I outlined the difficulties with MinGW already, see 
e.g.http://article.gmane.org/gmane.comp.version-control.git/14047

Ciao,
Dscho

```

## Johannes Sixt, 2007-01-11 09:35

Subject: MinGW port (was: Re: [ANNOUNCE] qgit4 aka qgit ported to Windows)
Message-ID: <45A604ED.5EF73A1E@eudaptics.com>
URL: https://gitlist.dev/e/45A604ED.5EF73A1E%40eudaptics.com
In-Reply-To: <46a038f90701101517s1d5e818eq2fba220d17a6aa03@mail.gmail.com>

```
Martin Langhoff wrote:
> How much does qgit4 depend on using commandline git? IOWs, how far
> from not needing cygwin+git, and shipping a git+qgit compiled against
> the MinGW that QT4 has?

FWIW, I'm slowly working on a MinGW port of git, based on Dscho's
initial work.

Currently, the tool set passes about 60-70% of the tests.

This works: The tools that you commonly need to work on a local repo,
except merges ([*]): commit, rebase, reset, log, diff and their
plumbing.

This does not work: pull, fetch, clone; mostly due to fork()
difficulties in their plumbing (fetch-pack, send-pack, etc.)

[*] because shell scripts like merge-one-file can't be invoked from an
exe like merge-index, yet. Fortunately this looks like the easiest part
to solve.

-- Hannes

```

## Johannes Schindelin, 2007-01-11 09:39

Subject: Re: MinGW port (was: Re: [ANNOUNCE] qgit4 aka qgit ported to Windows)
Message-ID: <Pine.LNX.4.63.0701111037330.22628@wbgn013.biozentrum.uni-wuerzburg.de>
URL: https://gitlist.dev/e/Pine.LNX.4.63.0701111037330.22628%40wbgn013.biozentrum.uni-wuerzburg.de
In-Reply-To: <45A604ED.5EF73A1E@eudaptics.com>

```
Hi,

On Thu, 11 Jan 2007, Johannes Sixt wrote:

> This works: The tools that you commonly need to work on a local repo,
> except merges ([*]): commit, rebase, reset, log, diff and their
> plumbing.
> 
> [...]
> 
> [*] because shell scripts like merge-one-file can't be invoked from an 
> exe like merge-index, yet. Fortunately this looks like the easiest part 
> to solve.

Exactly. Just build-in merge-one-file. This has the further benefit that 
we (finally) can use the inbuilt xdl_merge() without a fork()!

And then, we'll get Alex' merge under 1 minute.

Ciao,
Dscho

```

## Marco Costalba, 2007-01-11 12:19

Subject: Re: [ANNOUNCE] qgit4 aka qgit ported to Windows
Message-ID: <e5bfff550701110419v3508e9d5gbc206b7d0fa320ae@mail.gmail.com>
URL: https://gitlist.dev/e/e5bfff550701110419v3508e9d5gbc206b7d0fa320ae%40mail.gmail.com
In-Reply-To: <46a038f90701101517s1d5e818eq2fba220d17a6aa03@mail.gmail.com>

```
On 1/11/07, Martin Langhoff <martin.langhoff@gmail.com> wrote:
> On 1/10/07, Marco Costalba <mcostalba@gmail.com> wrote:
> > 6) Start qgit.exe
> > 7) Have fun
>
> Great!
>
> How much does qgit4 depend on using commandline git? IOWs, how far
> from not needing cygwin+git, and shipping a git+qgit compiled against
> the MinGW that QT4 has?
>

qgit4 does not depends on  commandline git environment at all. You can
start qgit4 also without a git installation, also without a cygwin
installation either. Of course it's not useful in that cases.

I had no time to fix some rogh edges regarding launching qgit4 with
proper paths set. What I plan to do this week end is to find an 'easy
to use recipe' to start qgit4 from cmd.exe, from desktop icon and also
from cygwin shell.

I need to experiment a little bit with this but I would like to add
internal automatic recognizing of environment at least for cmd.exe vs
cygwin shell launching case so to let user have a nice experience in
both cases.

  Marco

```

## Andreas Ericsson, 2007-01-11 12:27

Subject: Re: [ANNOUNCE] qgit4 aka qgit ported to Windows
Message-ID: <45A62D40.5040707@op5.se>
URL: https://gitlist.dev/e/45A62D40.5040707%40op5.se
In-Reply-To: <e5bfff550701110419v3508e9d5gbc206b7d0fa320ae@mail.gmail.com>

```
Marco Costalba wrote:
> On 1/11/07, Martin Langhoff <martin.langhoff@gmail.com> wrote:
>> On 1/10/07, Marco Costalba <mcostalba@gmail.com> wrote:
>> > 6) Start qgit.exe
>> > 7) Have fun
>>
>> Great!
>>
>> How much does qgit4 depend on using commandline git? IOWs, how far
>> from not needing cygwin+git, and shipping a git+qgit compiled against
>> the MinGW that QT4 has?
>>
> 
> qgit4 does not depends on  commandline git environment at all. You can
> start qgit4 also without a git installation, also without a cygwin
> installation either. Of course it's not useful in that cases.
> 

Huh? Does qgit4 have all the git plumbing built in?

-- 
Andreas Ericsson                   andreas.ericsson@op5.se
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231

```

## Marco Costalba, 2007-01-11 12:49

Subject: Re: [ANNOUNCE] qgit4 aka qgit ported to Windows
Message-ID: <e5bfff550701110449j4feceb4fi42809bbbecde9ad6@mail.gmail.com>
URL: https://gitlist.dev/e/e5bfff550701110449j4feceb4fi42809bbbecde9ad6%40mail.gmail.com
In-Reply-To: <45A62D40.5040707@op5.se>

```
On 1/11/07, Andreas Ericsson <ae@op5.se> wrote:
> Marco Costalba wrote:
> > On 1/11/07, Martin Langhoff <martin.langhoff@gmail.com> wrote:
> >> On 1/10/07, Marco Costalba <mcostalba@gmail.com> wrote:
> >> > 6) Start qgit.exe
> >> > 7) Have fun
> >>
> >> Great!
> >>
> >> How much does qgit4 depend on using commandline git? IOWs, how far
> >> from not needing cygwin+git, and shipping a git+qgit compiled against
> >> the MinGW that QT4 has?
> >>
> >
> > qgit4 does not depends on  commandline git environment at all. You can
> > start qgit4 also without a git installation, also without a cygwin
> > installation either. Of course it's not useful in that cases.
> >
>
> Huh? Does qgit4 have all the git plumbing built in?
>

No. It's absolutely not useful without git (but compiles and runs
anyway). What I mean is that beign a native windows application it
does not need cygwin. The latter is needed only by git.

```

## Marco Costalba, 2007-01-11 12:56

Subject: Re: MinGW port (was: Re: [ANNOUNCE] qgit4 aka qgit ported to Windows)
Message-ID: <e5bfff550701110456y51b8b678s59974cc1d8655a90@mail.gmail.com>
URL: https://gitlist.dev/e/e5bfff550701110456y51b8b678s59974cc1d8655a90%40mail.gmail.com
In-Reply-To: <Pine.LNX.4.63.0701111037330.22628@wbgn013.biozentrum.uni-wuerzburg.de>

```
On 1/11/07, Johannes Schindelin <Johannes.Schindelin@gmx.de> wrote:
> Hi,
>
> On Thu, 11 Jan 2007, Johannes Sixt wrote:
>
> > This works: The tools that you commonly need to work on a local repo,
> > except merges ([*]): commit, rebase, reset, log, diff and their
> > plumbing.
> >
> > [...]
> >
> > [*] because shell scripts like merge-one-file can't be invoked from an
> > exe like merge-index, yet. Fortunately this looks like the easiest part
> > to solve.
>

>From an exe you could run:

     cmd.exe /c  <script with arguments>

Of course the problem is that the content of the script should be
understandable by cmd.exe windows interpreter.

```

## Johannes Sixt, 2007-01-11 13:24

Subject: Re: MinGW port (was: Re: [ANNOUNCE] qgit4 aka qgit ported to Windows)
Message-ID: <45A63A97.E160751F@eudaptics.com>
URL: https://gitlist.dev/e/45A63A97.E160751F%40eudaptics.com
In-Reply-To: <e5bfff550701110456y51b8b678s59974cc1d8655a90@mail.gmail.com>

```
Marco Costalba wrote:
> > On Thu, 11 Jan 2007, Johannes Sixt wrote:
> > > [*] because shell scripts like merge-one-file can't be invoked from an
> > > exe like merge-index, yet. Fortunately this looks like the easiest part
> > > to solve.
> >
> 
> >From an exe you could run:
> 
>      cmd.exe /c  <script with arguments>
> 
> Of course the problem is that the content of the script should be
> understandable by cmd.exe windows interpreter.

We are talking about git's own scripts, which are (ba)sh and perl.

The route I'm going is to do the path lookup manually (if necessary),
then look at the first few bytes of the file for the interpreter, then
something like

 spawnvp(<interpreter-w/o-path>, <full-path-of-script plus args>)

-- Hannes

```
