* qgit-0.7
@ 2005-07-09 8:15 Marco Costalba
2005-07-10 10:01 ` qgit-0.7 Ingo Molnar
0 siblings, 1 reply; 5+ messages in thread
From: Marco Costalba @ 2005-07-09 8:15 UTC (permalink / raw)
To: git
Here is qgit-0.7, a GUI git viewer.
you can download from:
http://prdownloads.sourceforge.net/qgit/qgit-0.7.tar.gz?download
This time a small changelog, but a lot of work ;-)
- rewrite of graph drawing
- start-up loading: switch to use git-rev-list --topo-order
- final fixes to annotation
- cache of file lists to speed-up loading of file names
- added color background on heads
Graph now uses connected lines and should be better to follow,
also the switch from home grown to legacy git-rev-list --topo-order helps in
clarify revs history.
Annotation now works for me in all cases with the limitation that does not
follow renames.
When you run qgit for the first time it takes some time to git-rev-list and
git-diff-tree the repo. Following runs are faster because a persistent
cache of file names is used, so the speed is the same of just running git-rev-list.
Note: because of the use of --topo-order option in git-rev-list you need a very
recent copy of git.
For people who missed previous releases, a brief feature list:
- revisions log with diff and file viewer windows
- graph of development lines
- automatic update of all open views when navigating through lists
- filter by a substring (with wildcards support) in SHA, short log, author or paths
- colored file list window: green new file, red removed one
- patch viewer of diffs against parent, head or a mouse selected (CTRL + PRESS) rev
- file viewer with automatic annotation of content and file history
- file viewer with substring find function and jump to diff with double-click in
annotate line
- command line arguments support using git-rev-parse
- highlight on tags and heads
As usual, to try qgit:
-unpack files
-make
-cd bin
-copy qgit in the path
-run qgit from a git working directory
Please refer to README for more information.
Marco
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: qgit-0.7
@ 2005-07-09 15:06 Marco Costalba
0 siblings, 0 replies; 5+ messages in thread
From: Marco Costalba @ 2005-07-09 15:06 UTC (permalink / raw)
To: wd; +Cc: git
Wolfgang Denk ha scritto:
>Dear Marco,
>
>in message <20050709081512.33503.qmail@web26306.mail.ukl.yahoo.com> you wrote:
>
>>Here is qgit-0.7, a GUI git viewer.
>
>
>Sorry, but I cannot compile it on a Fedora Core 4 system:
>
>-> ./configure
>+scons was found, that's excellent+
>scons: Reading SConscript files ...
>-> make
>scons -Q
>g++ -DQT_THREAD_SUPPORT -D_REENTRANT -I/usr/lib64/qt-3.3/include -c -o src/annotate.o
src/annotate.cpp
>src/annotate.cpp: In member function `QStringList Annotate::processDiff(const
> QString&, QStringList&, const QString&)':
>src/annotate.cpp:378: error: jump to case label
>src/annotate.cpp:373: error: crosses initialization of `int num'
>src/annotate.cpp:387: error: jump to case label
>src/annotate.cpp:373: error: crosses initialization of `int num'
>src/annotate.cpp:401: error: jump to case label
>src/annotate.cpp:373: error: crosses initialization of `int num'
>scons: *** [src/annotate.o] Error 1
>make: *** [all] Error 2
>
>The following patch solves this problem:
>
>--- src/annotate.cpp.ORIG 2005-07-09 07:10:23.000000000 +0200
>+++ src/annotate.cpp 2005-07-09 16:05:09.556653902 +0200
>@@ -370,10 +370,12 @@
> char firstChar = line[0].latin1();
> switch (firstChar) {
> case '@':
>+ {
> int num = line.section(',', 1, 1). section('+', 1, 1).toInt();
> // diff lines start from 1, 0 is empty file,
> // instead QValueList::at() starts from 0
> cur = (num > 0) ? newAnn.at(num - 1) : newAnn.end();
>+ }
> break;
> case '+':
> if (cur != newAnn.end()) {
>
>
Thanks for your patch, applied.
What version og gcc you have?
Mine is gcc version 4.0.1 and I don't have this compile error (of course ;-) ).
I have cc'ed to git@vger.kernel.org in case someone else have the same problem.
>With this patch, I get a lot of build errors:
>
>QSettings: error creating /.qt
>QSettings: error creating /.qt
>QSettings: error creating /.qt
>QSettings: error creating /.qt
>QSettings: error creating /.qt
>QSettings::sync: filename is null/empty
>QSettings: error creating /.qt
>QSettings::sync: filename is null/empty
>QSettings: error creating /.qt
>QSettings::sync: filename is null/empty
>QSettings: error creating /.qt
>QSettings::sync: filename is null/empty
>QSettings: error creating /.qt
>QSettings::sync: filename is null/empty
>QSettings: error creating /.qt
>QSettings::sync: filename is null/empty
>...
>
>It links and seems to run, though.
>
It's a known issue, probably due to scons setup, but I am not so familiar with scons
to find a fix, in any case should be absolutely painless.
Marco
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: qgit-0.7
2005-07-09 8:15 qgit-0.7 Marco Costalba
@ 2005-07-10 10:01 ` Ingo Molnar
0 siblings, 0 replies; 5+ messages in thread
From: Ingo Molnar @ 2005-07-10 10:01 UTC (permalink / raw)
To: Marco Costalba; +Cc: git
* Marco Costalba <mcostalba@yahoo.it> wrote:
> Here is qgit-0.7, a GUI git viewer.
>
> you can download from:
>
> http://prdownloads.sourceforge.net/qgit/qgit-0.7.tar.gz?download
>
>
> This time a small changelog, but a lot of work ;-)
>
> - rewrite of graph drawing
> - start-up loading: switch to use git-rev-list --topo-order
> - final fixes to annotation
> - cache of file lists to speed-up loading of file names
> - added color background on heads
the good news: it's really fast now and very usable for browsing
changes. Kudos!
the bad news: except for annotations. I started qgit in the current
kernel GIT repository, and clicked on the following commit:
5bbcfd9000887c0da7d57cc7b3ac869fc0dd5aa9
then i clicked on sched.c to see the annotated file. Firstly, it took
roughly 2 minutes (!) for the annotated sched.c to show up. All the qgit
windows were fully frozen during that time, no refreshes or anything.
My kernel tree was fully cached in RAM, so it was pure CPU overhead
(qgit was taking 99% of CPU time). It is clearly not usable in this
form.
then the annotations were plain wrong. Almost all lines are attributed
to Tony Luck, while much of the file comes from the initial repository.
So something's quite fishy here. Also, a number of lines were attributed
to 'merge', which isnt very informative.
Ingo
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: qgit-0.7
@ 2005-07-10 12:25 Marco Costalba
2005-07-10 13:43 ` qgit-0.7 Ingo Molnar
0 siblings, 1 reply; 5+ messages in thread
From: Marco Costalba @ 2005-07-10 12:25 UTC (permalink / raw)
To: mingo; +Cc: git
Ingo Molnar wrote:
>
>the bad news: except for annotations. I started qgit in the current
>kernel GIT repository, and clicked on the following commit:
>
> 5bbcfd9000887c0da7d57cc7b3ac869fc0dd5aa9
>
>then i clicked on sched.c to see the annotated file.
Interesting enough sched.c is one of the files I used as my internal test of
annotate function.
I test again annotate with commit 5bbcfd9000887c0da7d57cc7b3ac869fc0dd5aa9 but
my numbers are:
123 revisions in history list
4 seconds to show file content of rev 5bbcfd9000887c0da7d57cc7b3ac869fc0dd5aa9
16 seconds after annotate is shown
No 'Merge' string found
And no freeze at all on my box also because of some calls
to main event loop (qApp->processEvents()) scattered along the heaviest routines.
So I cannot reproduce the bug. Please can you be so kind to apply this:
--- a/src/annotate.cpp
+++ b/src/annotate.cpp
@@ -198,7 +198,7 @@ void Annotate::getReachability(ReachList
}
}
}
- //printReachList(rl);
+ printReachList(rl);
}
QString Annotate::getRoot(SRef sha, const ReachList& rl) {
and send me the output?
>
>then the annotations were plain wrong. Almost all lines are attributed
>to Tony Luck, while much of the file comes from the initial repository.
>So something's quite fishy here.
This is just a choice, peraphs wrong ;-). Because it is possible to call
annotate at any time, also while loading, snapshotting the history,
there is no a univoque meaning of "Inital import" so I choose first rev in list's author
instead. But anyway, this is the patch (above the first one)
--- a/src/annotate.cpp
+++ b/src/annotate.cpp
@@ -273,7 +273,7 @@ QStringList Annotate::getFirstAnnotation
QString fileSHA = rf.filesSHA[pos];
git->getFile(fileSHA, NULL, true); // calls mainExec and event loop
int lineNum = git->mainBuffer.contains('\n');
- QString author = getAuthor(shaHist[idx], shaHist);
+ QString author = "Initial import";
QStringList first;
first.insert(first.begin(), lineNum, author);
return first;
Also, a number of lines were attributed
>to 'merge', which isnt very informative.
>
This is not a choice but a bad behaviour. 'Merge' is used as author name
as a mark to help unify() routine to join 2 branches annotations and
should be substituted by second branch author if everything it is ok.
This is not your case ;-).
Marco
__________________________________
Yahoo! Mail
Stay connected, organized, and protected. Take the tour:
http://tour.mail.yahoo.com/mailtour.html
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: qgit-0.7
2005-07-10 12:25 qgit-0.7 Marco Costalba
@ 2005-07-10 13:43 ` Ingo Molnar
0 siblings, 0 replies; 5+ messages in thread
From: Ingo Molnar @ 2005-07-10 13:43 UTC (permalink / raw)
To: Marco Costalba; +Cc: git
* Marco Costalba <mcostalba@yahoo.it> wrote:
> So I cannot reproduce the bug. [...]
weird - i cannot reproduce it either anymore, and annotate works now as
advertised - it's fast and accurate as far as i checked. But i synced to
the latest tree meanwhile. Perhaps i had an inconsistent tree?
(i'll keep an eye on this, i've uncommented that printout, so if it ever
happens again i'll have the data.)
now that everything is working fine, may i suggest improvements? :-)
Firstly, now i'm listed as the author for most portions of sched.c,
which is accurate for a fair portion of that, but is only done by qgit
because i happened to be the author of the first commit. So it would be
more accurate to denote version 1's author as empty (or with some other,
nonintrusive string that shows that this file came here due to the
initial commit)? We dont know the full history yet, because the current
DB's history starts at 2.6.12-rc2, with a full sched.c file. (I think an
empty author field would reflect version #1's authorship most
accurately, and would be the visually least intrusive.)
Ingo
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2005-07-10 13:43 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-07-10 12:25 qgit-0.7 Marco Costalba
2005-07-10 13:43 ` qgit-0.7 Ingo Molnar
-- strict thread matches above, loose matches on Subject: below --
2005-07-09 15:06 qgit-0.7 Marco Costalba
2005-07-09 8:15 qgit-0.7 Marco Costalba
2005-07-10 10:01 ` qgit-0.7 Ingo Molnar
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).