{"thread":{"id":"1935","subject":"[ANNOUNCE qgit-0.95]","startedAt":"2005-09-24T16:06:40Z","lastAt":"2005-09-25T06:47:08Z","messageCount":4,"participants":["Marco Costalba","Petr Baudis","Alan Chandler"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"9230","messageId":"20050924160641.60151.qmail@web26307.mail.ukl.yahoo.com","threadId":"1935","inReplyTo":null,"subject":"[ANNOUNCE qgit-0.95]","fromName":"Marco Costalba","fromEmail":"mcostalba@yahoo.it","sentAt":"2005-09-24T16:06:40Z","receivedAt":"2005-09-24T16:06:40Z","isPatch":false,"sender":{"key":"mcostalba@gmail.com","avatar":null},"body":"This is a performance update release.\n\nThe detailed list of changes is below, but the bottom line is \nqgit-0.95 is _really_ fast.\n\nIt tooks about 4 seconds, on my box, to run qgit --all on today linux tree against \nabout 65 seconds with gitk. Also the used memory it seems lower.\n\nAs a 'theoretical maximum speed' a bare:\n\ngit-rev-list --header --topo-order --parents HEAD > /dev/null\n\nRuns in about 2 seconds.\n\nSo this is the main reason I post this release. I doubt a little bit about this results \nbecause the spread with gitk it seems too much, so I would like a double check.\n\nNOTE: Before to test qgit you need to UNSET flag \n\n           edit->settings->cache->'diff against working dir'\n\nto avoid a slow 'git-status' (with involved 'git-update-index --refresh') call.\n\n\nCHANGELOG\n\n- more scalable pixmap memory handling.\n  Graph pixmaps are created only for visible items and freed\n  when log lines became not visible so that the amount of memory\n  used is constant and independent from archive size. This is also a\n  performance improvement because of the 'lazy setup' policy.\n\n- changed GUI update policy to group all the updates in one big chunk at\n  fixed intervals. This is faster then an incremental update.\n\n- more scalable file names handling.\n  File paths are splitted in base and file name, both are then indipendently\n  indexed. This gives huge memory savings and also better scalability because the\n  'different file names' set grows much more slowly then new commits. Using two index \n  tables gives good memory saving when you have lot of files in the same (deep) directory.\n\n- Rewritten git-rev-list parsing to avoid as much as possible to move data around.\n\n\nINSTALLATION\n\nYou need scons and Qt developer libs version 3.3.4 or better already installed. You need 'mt'\nversion of Qt libraries.\n\nQGit is NOT compatible with Qt4.\n\nOn some platforms (Debian) you should set QTDIR before to compile.\n\n\nDOWNLOAD\n\nDownload link is:\nhttp://prdownloads.sourceforge.net/qgit/qgit-0.95.tar.bz2?download\n\nBut now there is also a git archive: \nhttp://digilander.libero.it/mcostalba/qgit.git\n\nPlease use 'cg-clone http://digilander.libero.it/mcostalba/qgit.git' \nI still have to set-up a 'git clone' friendly archive.\n\nIf you have problems with the sources you can download a binary:\nhttp://digilander.libero.it/mcostalba/qgit\n\n\n\nMarco\n\n\n\n\t\t\n__________________________________ \nYahoo! Mail - PC Magazine Editors' Choice 2005 \nhttp://mail.yahoo.com\n"},{"id":"9235","messageId":"20050924181636.GD25069@pasky.or.cz","threadId":"1935","inReplyTo":"20050924160641.60151.qmail@web26307.mail.ukl.yahoo.com","subject":"Re: [ANNOUNCE qgit-0.95]","fromName":"Petr Baudis","fromEmail":"pasky@suse.cz","sentAt":"2005-09-24T18:16:36Z","receivedAt":"2005-09-24T18:16:36Z","isPatch":false,"sender":{"key":"pasky@ucw.cz","avatar":"https://avatars.githubusercontent.com/u/18439?v=4"},"body":"Dear diary, on Sat, Sep 24, 2005 at 06:06:40PM CEST, I got a letter\nwhere Marco Costalba <mcostalba@yahoo.it> told me that...\n> This is a performance update release.\n> \n> The detailed list of changes is below, but the bottom line is \n> qgit-0.95 is _really_ fast.\n> \n> It tooks about 4 seconds, on my box, to run qgit --all on today linux tree against \n> about 65 seconds with gitk. Also the used memory it seems lower.\n> \n> As a 'theoretical maximum speed' a bare:\n> \n> git-rev-list --header --topo-order --parents HEAD > /dev/null\n> \n> Runs in about 2 seconds.\n> \n> So this is the main reason I post this release. I doubt a little bit about this results \n> because the spread with gitk it seems too much, so I would like a double check.\n\nYes, it is several times faster than gitk, good work. Had to do this in\norder to be able to compile it with gcc-3.3.6, though (it complained\nabout goto'ing after initialization of nc - that's bogus since there's\nthe return, but...):\n\ndiff --git a/src/git_startup.cpp b/src/git_startup.cpp\n--- a/src/git_startup.cpp\n+++ b/src/git_startup.cpp\n@@ -469,7 +469,9 @@ again:\n \t\t\tif (!resumeTimer.isActive())\n \t\t\t\tresumeTimer.start(1, true); // with 0 ms there is an oops in libqt-mt\n  \t\t\treturn; // we suspend here to let GUI updating\n+\t\t}\n \n+\t\tif (false) {\n resume:\n \t\t\tsuspended = false;\n \t\t\tprocessTime.start();\n\n\nBesides that, this is what I don't like about qgit:\n\n* It'd be nice to be able to choose to see all commits in the initial\ndialog by single click (I know about --all). Perhaps a radio buttons\nchoosing between all and selected? Also, you might add the \"diff against\nworking copy\" option to that dialog as well.\n\n* The graph column is too narrow. It should be auto-sized so that the\ngraph fits in, or at least there should be some clear indication that\nthe graph does not fit to the column at the given point. This confused\nme a lot at first.\n\n* Could you make the grey background for odd commits span to the whole\nline, including the commit graph?\n\n* The commit time is relative to now, which makes no sense to me. Also,\nit is in the second column instead of the last one like in gitk, which\nseems better to me. At least, the column is too narrow and then it\nblends together with the commit title.\n\n* In the filter radio buttons groups, only first few letters of the\nlabels are visible, and apparently no tooltips. Same problem in the\nsettings dialog, most of the options have the labels cut around 2/3, and\nthe window is non-resizable on top of that - why? I hate non-resizable\nwindows, especially because they are usually too small. :-)\n\n* Single-clicking at a commit produces a significantly slower response\nthan in gitk, where I see the difflist and stuff nearly instantly - it\ntakes several hundreds of ms in qgit. That's quite annoying.\n\n* Getting to the diff view was non-obvious for me. It'd be nice to have\nsome [diff] button as well somewhere. Or you could also show the diff in\nthe bottom part of screen in the commit view, I think gitk solved this\nnicely.\n\n* Clicking on the file was supposed to bring some annotated view, but if\nit is so, it should write \"Annotate\" in the window title, and should\nindicate that it is computing it on the background (and is really slow\nin that, or I don't know, but always only single revision was shown\nthere). It is unclear what the \"pin file\" checkbox is supposed to mean,\nand the whole dialog is just very confusing. :-)\n\n* The lane information might be available as a tooltip in addition to\nright-clicking on it - that wouldn't occur to me.\n\n* Why is the Edit menu aligned to the right?\n\n* Well - I don't like the line graphics and prefer gitk's. This is\nperhaps a matter of taste, though. I find the graphics to be too tiny,\nthin and not so clear as gitk's, which makes it harder to see the commit\nflow. I also like diagonal lines more than angles, but that might be\njust because I'm used to them.\n\nOTOH, qgit actually flows the commits around the 0.99.6 release and such\nbetter than gitk, keeping them all in a single lane instead of flowing\noff to the right. It is still a bit hard to see what actually went on,\nbut curing that would require sorting the commits by date.\n\n\nNice work otherwise. :-)\n\n-- \n\t\t\t\tPetr \"Pasky\" Baudis\nStuff: http://pasky.or.cz/\nVI has two modes: the one in which it beeps and the one in which\nit doesn't.\n"},{"id":"9251","messageId":"200509250732.06754.alan@chandlerfamily.org.uk","threadId":"1935","inReplyTo":"20050924160641.60151.qmail@web26307.mail.ukl.yahoo.com","subject":"Re: [ANNOUNCE qgit-0.95]","fromName":"Alan Chandler","fromEmail":"alan@chandlerfamily.org.uk","sentAt":"2005-09-25T06:32:06Z","receivedAt":"2005-09-25T06:32:06Z","isPatch":false,"sender":{"key":"alan@chandlerfamily.org.uk","avatar":"https://gravatar.com/avatar/1862247e5ea8eac114c842f9dc3a5db6253754e24ef7171757cf97eedce48b8c?d=mp&s=160"},"body":"On Saturday 24 Sep 2005 17:06, Marco Costalba wrote:\n...\n> INSTALLATION\n>\n> You need scons and Qt developer libs version 3.3.4 or better already\n> installed. You need 'mt' version of Qt libraries.\n>\n> QGit is NOT compatible with Qt4.\n>\n> On some platforms (Debian) you should set QTDIR before to compile.\n\n\nI am running Debian unstable with libqt3-mt-dev installed, and qt3-dev-tools.  \nI set QTDIR to /usr/share/qt3. (and running with KDE incidentally)\n\nHowever when I run make I get errors of the form shown below (QSettings \nerrors) and eventually the compile stage fails.\n\n/usr/share/qt3/bin/uic -o src/rangeselectbase.h src/rangeselectbase.ui\n/usr/share/qt3/bin/uic -impl rangeselectbase.h -o src/uic_rangeselectbase.cc \nsrc/rangeselectbase.ui\n/usr/share/qt3/bin/moc -o src/moc_rangeselectbase.cc src/rangeselectbase.h\nQSettings: error creating /.qt\nQSettings: error creating /.qt\nQSettings: error creating /.qt\nQSettings: error creating /.qt\nQSettings: error creating /.qt\nQSettings::sync: filename is null/empty\nQSettings: error creating /.qt\nQSettings::sync: filename is null/empty\nQSettings: error creating /.qt\nQSettings::sync: filename is null/empty\ng++ -O2 -DQT_THREAD_SUPPORT -D_REENTRANT -I/usr/include/qt3 \n-I/usr/share/qt3/include -c -o src/git_startup.o src/git_startup.cpp\nsrc/git_startup.cpp: In member function `void Git::parseReadFromStdout()':\nsrc/git_startup.cpp:473: error: jump to label `resume'\nsrc/git_startup.cpp:439: error:   from here\nsrc/git_startup.cpp:467: error:   crosses initialization of `newCommits*nc'\nscons: *** [src/git_startup.o] Error 1\nscons: building terminated because of errors.\nmake: *** [all] Error 2\nalan@kanger qgit-0.95 $ \n\n\nIs there something else I should have installed.\n\n\n\n\n\n-- \nAlan Chandler\nhttp://www.chandlerfamily.org.uk\n"},{"id":"9252","messageId":"200509250747.08411.alan@chandlerfamily.org.uk","threadId":"1935","inReplyTo":"200509250732.06754.alan@chandlerfamily.org.uk","subject":"Re: [ANNOUNCE qgit-0.95]","fromName":"Alan Chandler","fromEmail":"alan@chandlerfamily.org.uk","sentAt":"2005-09-25T06:47:08Z","receivedAt":"2005-09-25T06:47:08Z","isPatch":false,"sender":{"key":"alan@chandlerfamily.org.uk","avatar":"https://gravatar.com/avatar/1862247e5ea8eac114c842f9dc3a5db6253754e24ef7171757cf97eedce48b8c?d=mp&s=160"},"body":"On Sunday 25 Sep 2005 07:32, Alan Chandler wrote:\n...\n> However when I run make I get errors of the form shown below (QSettings\n> errors) and eventually the compile stage fails.\n>\n> /usr/share/qt3/bin/uic -o src/rangeselectbase.h src/rangeselectbase.ui\n> /usr/share/qt3/bin/uic -impl rangeselectbase.h -o\n> src/uic_rangeselectbase.cc src/rangeselectbase.ui\n> /usr/share/qt3/bin/moc -o src/moc_rangeselectbase.cc src/rangeselectbase.h\n> QSettings: error creating /.qt\n> QSettings: error creating /.qt\n> QSettings: error creating /.qt\n> QSettings: error creating /.qt\n> QSettings: error creating /.qt\n> QSettings::sync: filename is null/empty\n> QSettings: error creating /.qt\n> QSettings::sync: filename is null/empty\n> QSettings: error creating /.qt\n> QSettings::sync: filename is null/empty\n> g++ -O2 -DQT_THREAD_SUPPORT -D_REENTRANT -I/usr/include/qt3\n> -I/usr/share/qt3/include -c -o src/git_startup.o src/git_startup.cpp\n> src/git_startup.cpp: In member function `void Git::parseReadFromStdout()':\n> src/git_startup.cpp:473: error: jump to label `resume'\n> src/git_startup.cpp:439: error:   from here\n> src/git_startup.cpp:467: error:   crosses initialization of `newCommits*nc'\n> scons: *** [src/git_startup.o] Error 1\n> scons: building terminated because of errors.\n> make: *** [all] Error 2\n> alan@kanger qgit-0.95 $\n\nAlthough the QSettings are still there, fixing up git_startup.cpp as per \nPasky's patch fixed it for me\n\nSorry for the noise.\n\n\n-- \nAlan Chandler\nhttp://www.chandlerfamily.org.uk\n"}]}