{"thread":{"id":"20246","subject":"The 10th copy of the msysGit Herald","startedAt":"2009-07-27T17:23:11Z","lastAt":"2009-07-27T17:23:11Z","messageCount":1,"participants":["Johannes Schindelin"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"118882","messageId":"alpine.DEB.1.00.0907271922310.6883@intel-tinevez-2-302","threadId":"20246","inReplyTo":null,"subject":"The 10th copy of the msysGit Herald","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2009-07-27T17:23:11Z","receivedAt":"2009-07-27T17:23:11Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Good morning git land!\n\nA warm and sunny Monday afternoon is as good an occasion as any to \noffer to you the 10th copy of the msysGit Herald, the quite irregular \nnews letter to keep you informed about msysGit, the effort to bring \none of the most powerful Source Code Management systems to the \nOperating System known as Windows. \n\nThese are the covered topics:\n\n\tUpcoming branch layout of 4msysgit\n\n\tUsing pthreads\n\n\tOpenSSL & cURL\n\n\tSubversion 1.6.3\n\n\tMoving Perl to MinGW32\n\n\tFixes to the \"full installer\"\n\n\tInterview with Erik Faye-Lund\n\n\n\nIf things had continued as this developer expected, this issue would \nnot be due for another year. As things turned out, though, there \nappeared some very interested and capable developers out of the blue, \nand msysGit is moving again! \n\n\nUpcoming branch layout of 4msysgit\n==================================\n\nSince the last Herald, there have been quite a few infrastructure \nchanges in msysGit, such as making it detectable if your Git runs in \nmsysGit or in an installed Git for Windows, or improvements in the \ninstaller-making procedure (see also the story \"Fixes to the 'full \ninstaller'\" in this Herald). \n\nBut there has been also quite some work, primarily by Johannes Sixt \nand Steffen Prohaska, to minimize the differences between git.git and \n4msysgit.git. Soon, we will be able to follow git.git much more \nclosely than now. \n\nSo the plan is to follow git.git's 'maint', 'master' and 'next' \nbranches, and rebase to git.git's branches whenever a new Git version \ncomes out. \n\nThe temporary branches will still be called 'work/<branch>' for \nbranches that are rebased often, and '<nick>/<branch>' for branches \nthat a certain developer wants to work on alone. \n\nWhenever something was merged into 'next', the corresponding work \nbranch will be removed. \n\n\nUsing pthreads\n==============\n\nAs more and more Windows machines have multiple cores or even CPUs, we \nnow have our own pthreads library, to make use of the machine's \ncapabilities when compressing the database. \n\n\nOpenSSL & cURL\n==============\n\nMany people think our issue tracker is something like a list for Santa \nClause or something. Many even just dump their (sometimtes \nunreasonable) ideas there and never come back. I made it a habit of \nbeing joyful when clicking on the \"Invalid\" link to move such issues \nout of the list of open issues. \n\nOne of these wishes was not too unreasonable, but I knew that it would \nnot happen: in my experience, Windows users are very happy to ask for \nthings, but they almost feel insulted when you ask them for help. \n\nBut I was wrong: the wish was to have an SSL-aware version of cURL, to \nbe able to clone repositories from https:// URLs. And one guy, an \nhonest-to-God Windows lover even, volunteered to work on this issue \n(see also the interview at the end). \n\nIt was not smooth sailing, but Erik continued to work on the issue, \nand with a little cooperation, we got something to compile. \n\nThe result is not only the addition of two new, shiny .dll files, but \ntwo shell scripts (\"recipes\") that can download, compile, install and \ncommit the files. This helps not only with upgrading to newer \nversions, but also with upgrading our Subversion (see next story). \n\n\nSubversion 1.6.3\n================\n\nSimilarly to OpenSSL & cURL, there was a wish on the issue tracker \nthat we should upgrade our Subversion, which is quite old by now. \n\nHowever, I vividly remember how difficult it was to get the initial \ngit-svn support working (albeit very slowly), and how many people and \ntheir enthusiastic effort it took (and I also remember how some people \njust complained about the slowness of the result, which really took \nalmost all the fun out of msysGit for me, shame on them). \n\nTo my pleasant surprise, again someone came along and worked on the \nissue: Laurent Boulard. \n\nAs I feared, upgrading Subversion was not a simple task: its neon \nlibrary now depends on OpenSSL. Unlike the OpenSSL we compiled \nsuccessfully for MinGW, our Subversion is an MSys program, and \ntherefore we needed an MSys version of OpenSSL. \n\nRemember: MinGW is really a very thin compile-time layer over the \nMicrosoft Runtime; MinGW programs are therefore real Windows programs, \nwith no concept of Unix-style paths or POSIX niceties such as a fork() \ncall. \n\nMSys, in contrast, is a slimmed-down version of Cygwin (an old version \nat that), whose only purpose is to provide enough of a POSIX layer to \nrun a bash. \n\nIt appeared easier to us to get something like git-svn, which really \nexpects a POSIX environment, going in the MSys environment. \n\nHere, the efforts not only to make OpenSSL compile in msysGit, but to \nmake the result a script which can do it, really came in handy. \n\nSo now we are closing in on having a functional Subversion 1.6.3 in \nmsysGit. \n\n\nMoving Perl to MinGW32\n======================\n\nJust when I thought that I was surprised enough by the arrival of new \nmsysGit contributors, another guy names Bosko Ivanisevic came along \nand asked how to fix his Subversion build. It became quite apparent \nthat he tried to compile it as a MinGW program. \n\nI thought it might make sense to try to get git-svn to run in a MinGW \nsetting (i.e. OpenSSL, Perl and Subversion all as MinGW programs), and \nBosko agreed. I fully expect the performance issues of git-svn to be \nhelped by that move (although I think that some of those who will \nbenefit from it do not deserve it at all). \n\nThis project is in full action right as we speak. \n\n\nFixes to the \"full installer\"\n=============================\n\nAccording to our download site, the msysGit \"full\" installer is more \nthan three times more popular than the \"net\" installer. \n\nJust a quick reminder: \"msysGit\" is the build environment for working \non \"Git for Windows\". The \"msysGit\" installer comes in two flavors: \n\"net\" and \"full\". \n\nThe \"net\" installer is really just a stripped-down \"Git for Windows\" \nthat just clones our Git repositories, builds and installs Git. \n\nThe \"full\" installer is a stand-alone self-extracting 7z archive that \nbrings everything needed to compile a particular Git for Windows \nversion. It has no connection to our Git repositories, though. \n\nTo make a \"full\" installed msysGit environment updatable (by setting \nup Git remotes and fetching the branches), we provide the script \n/share/msysGit/initialize.sh. \n\nNow, this would be all well and fine, if that script was not broken. \nAs it happens after some rather obvious fixes, the script is no longer \nbroken! \n\n\nInterview with Erik Faye-Lund\n=============================\n\nI think Erik is the first msysGit contributor I \"met\" via an issue \ntracker. He was relatively active answering questions, also on the \nmsysGit mailing list, before he dived into the adventure of compiling \nOpenSSL and cURL (see the corresponding story of this Herald issue). \n\nHe agreed to answer my Terrible Ten, as long as I was fine with his \nsometimes not-too-serious style of answering ;) -- which of course I \nam. \n\nSo here it goes: \n\n1) How did you get involved with Git? > \n\nI was looking for something better than SVN for a long time. The \nreason was mostly distribution, as I do a lot of work offline. I tried \nSVK, and I hated it. I tried Mercurial, and it was a lot better than \nSVK, but still not quite there. I can't really put my finger on it, \nbut it just didn't work for me. \n\nI still prefered SVN over Mercurial. I doubt I would now, though. I'm \ntoo much in love with distributed work-flows. \n\nI already knew about Git, but had early dismissed it because I had \nheard it was difficult to use (read: \"ZOMG, Linux zealotry!!\"). I \nwanted a VCS that didn't require a lot of time of getting into. \nLuckily, I overcame my skepticism, and gave it a shot. And I must \nadmit, I was amazed. Not only was it really really easy to use (as \nopposed to what some people are saying), pretty much everything about \nit felt right. \n\nI immediately fell in love with the staging concept. In fact, it was \nsomething I already had kind of \"mentally built\" myself in SVN (which \nwas pain to do), and I loved that it was so accessible. \n\n2) What were the reasons that you started working on Git? > \n\nI'm in it for the fame, glory and women... or whatever. \n\nActually, I don't have a big reason other than wanting to make the \nworld a better place (blah blah). I was bored one day, and I saw an \nissue posted on the mailing list that made me think \"hey, I'm a \nprogrammer, I can solve this\". And I did. After that, the ball just \nkinda started rolling. \n\n3) What do you like most in Git? > \n\nThe development community. I think it's really focused and generally \nworking in a constructive manner. \n\nAbout git itself I'd go with the \"obvious\" answers; distribution, \npainless branching, stash, the staging area... Oh, and the \nperformance, of course. \n\n4) What do you hate most in Git? > \n\nThat Windows is still a second class citizen. But let's try to fix \nthat one, huh? :) \n\n5) What was the most surprising moment when working with Git? > \n\nI guess when I figured out that I could just create a local repo for \nbasically any project, and push it out somewhere if it turned into \nsomething useful. That ad-hoc way of making repos is not something I'm \nused to from SVN. \n\n6) What was the most frustrating moment when working with Git? > \n\nGWhenever I fight with line-endings. The fact that core.autocrlf=true \ndoesn't work too well in git-svn, combined with visual studio's lack \nof proper newline-support causes me a lot of annoyance at my dayjob. \n\nThat's one thing that actually still SVN is better at, and it makes me \na bit sad. \n\n7) In what environment do you work? > \n\nWindows Vista 64bit. I'm a Windows guy. Sure, go ahead an hate me -- I \nlike Windows. \n\n8) What other hobbies do you have? > \n\nI murder people who ask too many questions. \n\nNo, seriously, I'm an active demo programmer. You can read more about \nit on http://en.wikipedia.org/wiki/Demoscene if you don't know what \ndemos are. \n\nBack when I was younger and in better shape I did a lot of \nskateboarding. I sometimes still pretend that I'm up to i, but I \nalways end up disproving myself. But it's fun :) \n\n9) What is your favourite movie? > \n\nHmm. That's a very tricky question, I don't watch that many movies \nthese days. Can I answer with a book? If so, \"Shantaram\" by Gregory \nDavid Roberts. I'm sure the movie will be awesome, I heard Johnny Depp \nis playing the lead role. \n\n10) What are your visions for Git? (I.e. where do you want it to go?) \n> \n\nI'd like to see the Windows version being as good as the \n*nix-versions. Also, I don't think we should settle for less than \nworld domination. Giant lazers on the moon? I can't see why not. \n"}]}