{"thread":{"id":"10384","subject":"Fourth incarnation of the msysGit herald","startedAt":"2007-10-19T23:25:49Z","lastAt":"2007-10-26T16:56:38Z","messageCount":9,"participants":["Johannes Schindelin","Jan Hudec","Steffen Prohaska","Pascal Obry"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"56642","messageId":"Pine.LNX.4.64.0710200024460.25221@racer.site","threadId":"10384","inReplyTo":null,"subject":"Fourth incarnation of the msysGit herald","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2007-10-19T23:25:49Z","receivedAt":"2007-10-19T23:25:49Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Good morning git land!\n\n20 years after the black monday, which happens to be exactly three days\nafter the 164th (official) birthday of the quaternions, is as good an\noccasion as any to bring to you the fourth incarnation of the msysGit\nHerald, the not-quite-biweekly news letter to keep you informed about\nmsysGit, the effort to bring one of the most powerful Source Code\nManagement systems to the poor souls stuck with Windows.\n\nThese are the covered topics:\n\n\tSpanking new Inno installer\n\n\tNew naming scheme & new release\n\n\tgit gui\n\n\tInterview with Steffen Prohaska\n\n\tCalling git from cmd.exe\n\n\tHistoric notes\n\n\nSpanking new Inno installer\n===========================\n\nAs mentioned in the last Herald, Sebastian Schuberth (with some help\nof Steffen Prohaska) started to replace the 7-Zip installer that I\nbuilt with my heart and soul.  I even came so far as to work around\nWindows' refusal to delete the uninstaller while that is running\n(which would usually be its last action on other platforms).\n\nIncidentally, this uninstaller was also a nice small example how to\nwrite an elegant Win32 program without bloat.  My opinion _might_ be\nbiased because I wrote it.\n\nBut I have to admit that the installer based on Inno looks sleeker,\nmore professional, and is easier to extend.\n\nIt uses the same LZMA compressor that 7-Zip used, so there is (almost)\nno downside regarding the size of the installer.\n\nThe usual options, such as adding a Start Menu, a Quick Launch item,\na Desktop item, a simple Explorer extension, and an uninstaller,\ncome basically for free with Inno.  Well, not exactly for free, but\nSebastian did all the hard work, so that we all could benefit.\n\n>From what I hear, this installer is also able to run on DOS based\nWindows such as Windows 95.  Yeah!\n\nThe downsides of using Inno that I have encountered so far are not\nimportant in comparison:\n\nYou can no longer just unzip the installer with 7-Zip.  But if that\nshould turn out to be a major problem for many people (which I doubt),\nwe can still just add one line to automatically generate a .7z file\nat the same time as the installer.  I came upon a little project\nnamed \"innounp\" (on sourceforge.net), though, which purportedly unpacks\ninstallers made with Inno Setup.  Maybe at some stage there is also\na 7-Zip plugin ;-)\n\nThe installer was easily built using Linux, by making a 7-Zip archive\nand prepending the self-extracting module and the config file.  Well,\nWine is not there yet, but hopefully it will soon.\n\nThe installer does not run under Wine.  But then, neither did the\n7-Zip based installer.\n\n\nNew naming scheme & new release\n===============================\n\nThere was a bit of a stir when we realised that not everybody\nunderstands the differences between GitMe, msysGit and WinGit.\n\nSo we sat down on the msysgit list and thought about it a bit.\n\nThere are basically two different projects: msysGit, which is the\ndevelopment environment which is needed to compile git and friends.\n\nAnd there is the installer which delivers the compiled programs to\nthose who do not want to work _on_, but _with_, git.  We used to\ncall this WinGit (I liked it very much because of the connotation\nof \"to wing it\").\n\nBut Steffen Prohaska pointed out, rightfully so, that it should be\nGit-<version-and-stuff>.exe.\n\nSince our current versions are not as smooth-running as git on\nPOSIX platforms, we decided to go with the \"preview\" postfix, until\nwe are reasonably comfortable to declare it \"beta\".  Note: in the\ngood tradition of Open Source, our \"preview\" versions are probably\nmore usable than some XP^WGolden versions of commercial software.\n\nThe version number will be that of the git release we are basing\nour installer on, and we plan to have indicators \"rc<n>\" once our\nproject is stable enough that we are reasonably certain that it\ndoes not have fatal flaws.  Also, the timestamp of its build will be\npart of the file name, and we will tag the exact state in msysgit.git\nwhich this build was based on.\n\nSo we now have the first official preview of Git on MSys.  By the old\nnaming scheme, this would have been \"WinGit 0.3 alpha\".\n\nIt was created with Inno (see previous story), and we expect the user\nexperience to be much smoother than with previous releases.  There is\none known issue, though: pull/fetch does not work in git gui (also see\nnext story).\n\n\ngit gui\n=======\n\ngit gui is a really nice program, and as I often said, I consider it\nmore porcelain than a gui, since it uses the git core directly, instead\nof wrapping around porcelain commands.\n\nThe user experience I had with git gui made me think that this should\nbe the primary interface Windows users should be confronted with, not\nthe command line.\n\nThe major problem we had in msysGit is that git-gui was to be launched\nfrom the Start Menu, or a QuickLaunch icon.  This is in contrast to\nthe shell, where you usually start git gui in a working directory.\n\nSo we needed some method to choose a working directory.  Mike Pape\nput some work into that, but got too much work to do with the day\njob.  While he was busy with non-gittish things, Shawn Pearce went\nbusy writing a wizard to select an existing directory, create a new\none, or clone a repository.\n\nOne issue we did not yet properly resolve is that fetch/pull does not\nwork from within git gui.  For the moment, you have to use the Git bash.\nI suspect that this issue will disappear automagically when we merge\nwith newer git which have the builtin fetch.\n\nSteffen Prohaska contributed the \"open recent\" feature, so there is\nnothing left preventing our taking over the (Windows-)world!\n\n\nInterview with Steffen Prohaska\n===============================\n\n> 1) How did you get involved with Git?\n\nI was looking for a simple version control system to handle my personal\nMac OS X documents. Mac OS X applications save data as directories\ncontaining related files that together form a document. A version\ncontrol system must not store data in such a directory.\n\nI worked with CVS, which I am still using on a daily basis, and tried\nsvn. But both need to store data in every subdirectory they manage.\n\nI stumbled over a couple of other systems, like monotone, arch, darcs,\nand finally git. Git was quite easy to install and did what I needed;\nwell, after I found out about\n\n    git-ls-files -z --others SomeBundle | \\\n\t\tgit-update-index --add -z --stdin\n    git-commit -a\t\n\nI created my first git repository around April 2006 and have these two\nlines in a script there. And I still use them to handle nearly all of\nmy documents.\n\n\n> 2) What were the reasons that you started working on Git?\n\nGit did always a great job managing my own documents. But two\ndeficiencies kept me for a long time from advertising it as a\nreplacement for our CVS: Git didn't work on Windows and git didn't\nprovide a mechanism that is today known as sub-modules.\n\nWhen it turned out that sub-modules will become available and Windows\nsupport (autocrlf) was introduced, I started to evaluate a migration\nof our development team from CVS to git. The need for a new system\nintensified after it became clear that we'll have to handle three\nsub-groups in the future with different release schedules.\n\nI was pretty convinced that git would be the right system. But Windows\nsupport was just not good enough. So I started to work on this.\nA bit earlier I needed to debug CVS import. If I remember correctly\nthe first patch I sent was on git-cvsexportcommit.\n\n\n> 3) What do you like most in Git?\n\nWhen I started I liked most the lightweight installation and easy\nsetup of fresh repositories.\n\nToday, I like most the great support for automatic merging, rerere,\nand git-mergetool.\n\n\n> 4) What do you hate most in Git?\n\nGit asks me two times for my password during 'git fetch' when I\nforgot to unlock my ssh-key. And I can't reasonably explain this\nfact to newbies.\n\nI often need to find small workarounds for minor deficiencies in\nthe user interface. Especially getting started with git is not as\neasy as it could be. git-* matches approximately 150 commands.\nThat's overwhelming.\n\n\n> 5) What was the most surprising moment when working with Git?\n\nWhen I learnt about rerere. It's magic.\n\n\n> 6) What was the most frustrating moment when working with Git?\n\nWhen I understood that git-cvsimport messes up CVS history and\ncannot be used for importing from CVS. It was really hard to find a\nworking alternative. The documentation didn't help much.\n\nI was also quite desperate when I understood that git will never\nrun in Cygwin's textmode.\n\n\n> 7) In what environment do you work?\n\nMac OS X, Linux (x86_64, i386, ia64), XP, XP64, Vista.\n\n\n> 8) What other hobbies do you have?\n\nbesides git? ... hmm ... maybe jogging counts as a hobby.\n\n\n> 9) What is your favourite movie?\n\nPulp Fiction.\n\n\n> 10) What are your visions for Git? (I.e. where do you want it to go?)\n\nI wish to see all core features with same quality on Windows as on Unix.\nIn addition, everything which is needed to support cross-platform  \nprojects that look on Windows as if they were pure Windows projects and\non  Unix as if they were pure Unix projects.\n\nA leaner user interface would be nice that is more focused on the  \nessential workflows and makes it easier to explain git. The average\ndeveloper shouldn't need to know too many details about git before he\nis able to participate in a shared repository workflow.\n\n\tSteffen\n\n\nCalling git from cmd.exe\n========================\n\nAs mentioned in the story \"The war between cmd and bash\" in the first\nissue of this little tabloid, some people prefer to avoid bash.\n\nThe simplest solution to allow this would be to add msysGit's bin/\nto the PATH.  Alas, it is not as easy as that.\n\nWindows has its own versions of \"sort\" and \"find\", and regular Windows\nusers' scripts might rely on finding those, while git relies on finding\nmore POSIXy versions of those programs.\n\nTherefore we have a cmd/ directory containing wrappers for git and gitk,\nand the new installer adds this directory to the PATH.  (Actually you\ncan choose between a few different options...)\n\nThat should make everybody happy.\n\n\nHistoric notes\n==============\n\nReading Jakub's results of the git survey instigated me to investigate\nwhen msysGit was born (under a different name...).  We had a tremendous\nprogress since, and it almost felt as two years had gone by since I\nstarted this thing.\n\nAlas, the first commit I ever made on my mingw branch was on\nTue Jun 20 19:13:02 2006 +0200\n\nA long time nevertheless.  From the commit messages I found that the\nfirst time I fixed a test -- which is my best indicator that I got\nsomething running; I did not manifest a \"Hooray, first time it\n_does_ something\" in any commit message -- was on\nTue Sep 19 15:11:29 2006 +0200\n\nSo it took me two months, on and off, to get it to run.  Of course, this\nversion was so lousy that it was only barely self-hosting.  Since I could\nnot get vi to run on my MinGW setup, I did the commits using -m.\n\nI also had not found out yet that bash in an Rxvt was not able to call\n\"less\" properly, and I had to pipe \"git log | less\" to stop the output\nfrom whizzing by as fast as Douglas Adams' deadlines.\n\nReading further in my logs, I stopped working on my mingw branch on\nWed Sep 20 17:38:35 2006 +0200, certainly because I did not feel the\nneed, and the major obstacles had been tackled, and I got bored with it.\nOr my boss made me work for a change.  Something along those lines.\n\nAll the better for the many eager Windows users that Hannes Sixt took\nup the ball, and committed his first version on Fri Dec 22 11:43:50\n2006 +0100, although you can see in the logs that it was recommitted\n(for the last time, I guess) on Fri Jan 19 16:21:41 2007 +0100.\n\nSince then, he made steady progress, with a few helpers helping out\nfrom time to time.\n\nThe next big turn was the kick off of the msysGit project... the rest\nis history.\n"},{"id":"56701","messageId":"20071020133359.GB19521@efreet.light.src","threadId":"10384","inReplyTo":"Pine.LNX.4.64.0710200024460.25221@racer.site","subject":"Re: Fourth incarnation of the msysGit herald","fromName":"Jan Hudec","fromEmail":"bulb@ucw.cz","sentAt":"2007-10-20T13:33:59Z","receivedAt":"2007-10-20T13:33:59Z","isPatch":false,"sender":{"key":"bulb@ucw.cz","avatar":null},"body":"On Sat, Oct 20, 2007 at 00:25:49 +0100, Johannes Schindelin wrote:\n> git gui\n> =======\n> \n> git gui is a really nice program, and as I often said, I consider it\n> more porcelain than a gui, since it uses the git core directly, instead\n> of wrapping around porcelain commands.\n> \n> The user experience I had with git gui made me think that this should\n> be the primary interface Windows users should be confronted with, not\n> the command line.\n> \n> The major problem we had in msysGit is that git-gui was to be launched\n> from the Start Menu, or a QuickLaunch icon.  This is in contrast to\n> the shell, where you usually start git gui in a working directory.\n\nIt would be nice to install an entry in the explorer menu to run git-gui in\na selected directory. It can be done by just writing something like to the\nregistry (completely untested -- I just looked it up on the internet):\n\n[HKEY_LOCAL_MACHINE\\SOFTWARE\\Classes\\Folder\\shell\\Git Gui]\n@=\"Git Gui\"\n\n[HKEY_LOCAL_MACHINE\\SOFTWARE\\Classes\\Folder\\shell\\Git Gui\\command]\n@=\"git --git-dir=%L gui\"\n\n(The directory is passed in %L, but git --git-gui=\"dir\" gui seems to work, at\nleast on Linux. It needs absolute path, but you'll have that.)\n\n-- \n\t\t\t\t\t\t Jan 'Bulb' Hudec <bulb@ucw.cz>\n"},{"id":"56714","messageId":"A24982F6-40B2-4897-904E-99A135EC9D41@zib.de","threadId":"10384","inReplyTo":"20071020133359.GB19521@efreet.light.src","subject":"Re: [msysGit] Re: Fourth incarnation of the msysGit herald","fromName":"Steffen Prohaska","fromEmail":"prohaska@zib.de","sentAt":"2007-10-20T18:04:20Z","receivedAt":"2007-10-20T18:04:20Z","isPatch":false,"sender":{"key":"prohaska@zib.de","avatar":"https://avatars.githubusercontent.com/u/217580?v=4"},"body":"\nOn Oct 20, 2007, at 3:33 PM, Jan Hudec wrote:\n\n> On Sat, Oct 20, 2007 at 00:25:49 +0100, Johannes Schindelin wrote:\n>> git gui\n>> =======\n>>\n>> git gui is a really nice program, and as I often said, I consider it\n>> more porcelain than a gui, since it uses the git core directly,  \n>> instead\n>> of wrapping around porcelain commands.\n>>\n>> The user experience I had with git gui made me think that this should\n>> be the primary interface Windows users should be confronted with, not\n>> the command line.\n>>\n>> The major problem we had in msysGit is that git-gui was to be  \n>> launched\n>> from the Start Menu, or a QuickLaunch icon.  This is in contrast to\n>> the shell, where you usually start git gui in a working directory.\n>\n> It would be nice to install an entry in the explorer menu to run  \n> git-gui in\n> a selected directory. It can be done by just writing something like  \n> to the\n> registry (completely untested -- I just looked it up on the internet):\n\nWhat you propose is already there!\n\nDid you try the most recent setup?\n\nhttp://msysgit.googlecode.com/files/Git-1.5.3-preview20071019.exe\n\n\tSteffen\n"},{"id":"56715","messageId":"20071020181925.GB8887@efreet.light.src","threadId":"10384","inReplyTo":"A24982F6-40B2-4897-904E-99A135EC9D41@zib.de","subject":"Re: [msysGit] Re: Fourth incarnation of the msysGit herald","fromName":"Jan Hudec","fromEmail":"bulb@ucw.cz","sentAt":"2007-10-20T18:19:26Z","receivedAt":"2007-10-20T18:19:26Z","isPatch":false,"sender":{"key":"bulb@ucw.cz","avatar":null},"body":"On Sat, Oct 20, 2007 at 20:04:20 +0200, Steffen Prohaska wrote:\n>\n> On Oct 20, 2007, at 3:33 PM, Jan Hudec wrote:\n>\n>> On Sat, Oct 20, 2007 at 00:25:49 +0100, Johannes Schindelin wrote:\n>>> git gui\n>>> =======\n>>>\n>>> git gui is a really nice program, and as I often said, I consider it\n>>> more porcelain than a gui, since it uses the git core directly, instead\n>>> of wrapping around porcelain commands.\n>>>\n>>> The user experience I had with git gui made me think that this should\n>>> be the primary interface Windows users should be confronted with, not\n>>> the command line.\n>>>\n>>> The major problem we had in msysGit is that git-gui was to be launched\n>>> from the Start Menu, or a QuickLaunch icon.  This is in contrast to\n>>> the shell, where you usually start git gui in a working directory.\n>>\n>> It would be nice to install an entry in the explorer menu to run git-gui \n>> in\n>> a selected directory. It can be done by just writing something like to the\n>> registry (completely untested -- I just looked it up on the internet):\n>\n> What you propose is already there!\n\nNice. Thanks. Unfortunately I didn't yet have time to try out, and I didn't\nsee it mentioned.\n\n> Did you try the most recent setup?\n>\n> http://msysgit.googlecode.com/files/Git-1.5.3-preview20071019.exe\n\nNo; I don't have loosedows here (at home), so I'll have to try it at work\nwhen I have a little time. I certainly will.\n\n-- \n\t\t\t\t\t\t Jan 'Bulb' Hudec <bulb@ucw.cz>\n"},{"id":"57281","messageId":"20071026152143.GB4819@efreet.light.src","threadId":"10384","inReplyTo":"A24982F6-40B2-4897-904E-99A135EC9D41@zib.de","subject":"Re: [msysGit] Re: Fourth incarnation of the msysGit herald","fromName":"Jan Hudec","fromEmail":"bulb@ucw.cz","sentAt":"2007-10-26T15:21:43Z","receivedAt":"2007-10-26T15:21:43Z","isPatch":false,"sender":{"key":"bulb@ucw.cz","avatar":null},"body":"On Sat, Oct 20, 2007 at 20:04:20 +0200, Steffen Prohaska wrote:\n> On Oct 20, 2007, at 3:33 PM, Jan Hudec wrote:\n>> It would be nice to install an entry in the explorer menu to run git-gui \n>> in\n>> a selected directory. It can be done by just writing something like to the\n>> registry (completely untested -- I just looked it up on the internet):\n>\n> What you propose is already there!\n>\n> Did you try the most recent setup?\n>\n> http://msysgit.googlecode.com/files/Git-1.5.3-preview20071019.exe\n\nI got (or rather made me) a little time to try out it at work this week and\nit looks really nice. Good job!\n\nRegards,\n\nJan\n\n-- \n\t\t\t\t\t\t Jan 'Bulb' Hudec <bulb@ucw.cz>\n"},{"id":"57285","messageId":"47220B54.60508@obry.net","threadId":"10384","inReplyTo":"20071026152143.GB4819@efreet.light.src","subject":"Re: [msysGit] Re: Fourth incarnation of the msysGit herald","fromName":"Pascal Obry","fromEmail":"pascal@obry.net","sentAt":"2007-10-26T15:44:20Z","receivedAt":"2007-10-26T15:44:20Z","isPatch":false,"sender":{"key":"pascal@obry.net","avatar":"https://avatars.githubusercontent.com/u/467069?v=4"},"body":"Jan Hudec a écrit :\n> I got (or rather made me) a little time to try out it at work this week and\n> it looks really nice. Good job!\n\nI tried it some time ago but there was no external module support. For\nexample git-svn is missing and looking at the missing feature on the Web\npage I won't use it at the moment...\n\nThe Cygwin/Git module is works very well. And Cygwin is definitely a\nnice toolset (X, bash, ssh, rsync, ...) when you are forced working on\nWindows :)\n\nPascal.\n\n-- \n\n--|------------------------------------------------------\n--| Pascal Obry                           Team-Ada Member\n--| 45, rue Gabriel Peri - 78114 Magny Les Hameaux FRANCE\n--|------------------------------------------------------\n--|              http://www.obry.net\n--| \"The best way to travel is by means of imagination\"\n--|\n--| gpg --keyserver wwwkeys.pgp.net --recv-key C1082595\n"},{"id":"57295","messageId":"7979C912-2EF7-4F90-86EA-40CC3B8070CC@zib.de","threadId":"10384","inReplyTo":"47220B54.60508@obry.net","subject":"Re: [msysGit] Re: Fourth incarnation of the msysGit herald","fromName":"Steffen Prohaska","fromEmail":"prohaska@zib.de","sentAt":"2007-10-26T16:34:18Z","receivedAt":"2007-10-26T16:34:18Z","isPatch":false,"sender":{"key":"prohaska@zib.de","avatar":"https://avatars.githubusercontent.com/u/217580?v=4"},"body":"\nOn Oct 26, 2007, at 5:44 PM, Pascal Obry wrote:\n\n> The Cygwin/Git module is works very well. And Cygwin is definitely a\n> nice toolset (X, bash, ssh, rsync, ...) when you are forced working on\n> Windows :)\n\nBut beware of the textmode.\n\n\tSteffen\n"},{"id":"57292","messageId":"Pine.LNX.4.64.0710261746380.4362@racer.site","threadId":"10384","inReplyTo":"47220B54.60508@obry.net","subject":"Re: [msysGit] Re: Fourth incarnation of the msysGit herald","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2007-10-26T16:47:26Z","receivedAt":"2007-10-26T16:47:26Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Fri, 26 Oct 2007, Pascal Obry wrote:\n\n> Jan Hudec a ?crit :\n> > I got (or rather made me) a little time to try out it at work this week and\n> > it looks really nice. Good job!\n> \n> I tried it some time ago but there was no external module support. For\n> example git-svn is missing and looking at the missing feature on the Web\n> page I won't use it at the moment...\n\ngit-svn has nothing to do with external module support.\n\nAnd remember, msysGit will fly sooner if people like _you_ help.\n\nCiao,\nDscho\n"},{"id":"57294","messageId":"47221C46.3040101@obry.net","threadId":"10384","inReplyTo":"Pine.LNX.4.64.0710261746380.4362@racer.site","subject":"Re: [msysGit] Re: Fourth incarnation of the msysGit herald","fromName":"Pascal Obry","fromEmail":"pascal@obry.net","sentAt":"2007-10-26T16:56:38Z","receivedAt":"2007-10-26T16:56:38Z","isPatch":false,"sender":{"key":"pascal@obry.net","avatar":"https://avatars.githubusercontent.com/u/467069?v=4"},"body":"Johannes Schindelin a écrit :\n> git-svn has nothing to do with external module support.\n\nOk, \"external module\" was not the proper term, sorry English is not my\nmain language. I should have said \"conduit for changesets between\nSubversion and Git\".\n\n> And remember, msysGit will fly sooner if people like _you_ help.\n\n:) Of course, but I'm already doing lot of Open Source development,\ncan't do everything :)\n\nPascal.\n\n-- \n\n--|------------------------------------------------------\n--| Pascal Obry                           Team-Ada Member\n--| 45, rue Gabriel Peri - 78114 Magny Les Hameaux FRANCE\n--|------------------------------------------------------\n--|              http://www.obry.net\n--| \"The best way to travel is by means of imagination\"\n--|\n--| gpg --keyserver wwwkeys.pgp.net --recv-key C1082595\n"}]}