* Re: [ANNOUNCE] qgit-2.0rc1
From: Ismail Dönmez @ 2007-06-10 14:49 UTC (permalink / raw)
To: Marco Costalba; +Cc: Git Mailing List, Pavel Roskin, Andy Parkins
In-Reply-To: <e5bfff550706100736v110055acn8ecca19f5c3f5cff@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 1034 bytes --]
On Sunday 10 June 2007 17:36:42 Marco Costalba wrote:
> On 6/10/07, Ismail Dönmez <ismail@pardus.org.tr> wrote:
> > Uploaded to http://cekirdek.pardus.org.tr/~ismail/tmp/qgit4-report.txt .
>
> Ok. You seem to miss all the debug libraries _and_ the whole
> libQtUiTools library.
>
> I've just upgraded to Qt4.3, and rebuilt everything without problems.
>
> So I think your Qt4.3 installation is broken, i.e. misses some stuff.
> I suggest to reinstall from your distribution (mine is Mandriva) or
> rebuild with missing pieces; debug (not mandatory but useful) and
> libQtUiTools.
You will be happy to know I am the qt4 packager for Pardus Linux *g* , I'll
check how Mandriva builds Qt4 but we don't apply any patch that would mess
with QtUiTools but its interesting its built as static only here.
> Below you can see my Qt lib directory after upgrade to Qt4.3 from
> distributor site.
Thanks.
> Let me know how it goes....
I'll let you know.
Regards,
ismail
--
Perfect is the enemy of good
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 827 bytes --]
^ permalink raw reply
* [Qgit RFC] commit --amend
From: Jan Hudec @ 2007-06-10 15:08 UTC (permalink / raw)
To: git
[-- Attachment #1: Type: text/plain, Size: 1554 bytes --]
Hello,
I am thinking about adding commit --amend support to Qgit.
However I see three ways to do it, so I'd like to ask whether anybody knows
some reason why any of them is better or worse, which I don't:
- Add a button for "Amend". This would fit with what is there currently,
because with stgit it has buttons "New patch" and "Add to top" (refresh),
which correspond exactly to core git's "commit" and "commit --amend"
respectively.
Disadvantage (for current approach too) is, that when amending (resp.
refreshing) the previous commit message is not there to be edited.
- Add a radio button the way git-gui does. Switching the button to "amend"
would load the previous commit message.
This would be more invasive change, but it would allow editing the commit
message when amending/refreshing. I fear it will be more user-error-prone
too, though.
- Add a separate action to the menu. This action would take over the refresh
(Add to top) operation when using stgit.
I believe this has lower risk of user errors than the previous option. It
also has the advantage, that I don't have to touch the disabling logic for
the commit action. Amending last commit is always possible, even if there
are no changes, because you might want to edit the message (eg. if you
forget to sign-off or forget to mention some change or something).
I'll try doing the first option now, unless somebody persuades me that it's
a nonsense.
--
Jan 'Bulb' Hudec <bulb@ucw.cz>
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply
* [PATCH] Teach git-gc to merge unsorted softrefs
From: Johan Herland @ 2007-06-10 14:45 UTC (permalink / raw)
To: git; +Cc: Jakub Narebski
In-Reply-To: <f4h1ot$83m$1@sea.gmane.org>
Signed-off-by: Johan Herland <johan@herland.net>
---
On Sunday 10 June 2007, Jakub Narebski wrote:
> Perhaps git-gc should also sort softrefs (if it doesn't do it yet)?
Sure.
builtin-gc.c | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/builtin-gc.c b/builtin-gc.c
index 45025fb..30e1e44 100644
--- a/builtin-gc.c
+++ b/builtin-gc.c
@@ -12,6 +12,7 @@
#include "cache.h"
#include "run-command.h"
+#include "softrefs.h"
#define FAILED_RUN "failed to run %s"
@@ -87,6 +88,9 @@ int cmd_gc(int argc, const char **argv, const char *prefix)
if (i != argc)
usage(builtin_gc_usage);
+ if (merge_unsorted_softrefs(NULL, 1))
+ return error("failed to merge unsorted softrefs");
+
if (pack_refs && run_command_v_opt(argv_pack_refs, RUN_GIT_CMD))
return error(FAILED_RUN, argv_pack_refs[0]);
--
1.5.2.1.144.gabc40
^ permalink raw reply related
* Re: Refactoring the tag object; Introducing soft references (softrefs); Git 'notes' (take 2)
From: Johan Herland @ 2007-06-10 14:31 UTC (permalink / raw)
To: Pierre Habouzit; +Cc: Steven Grimm, git, Junio C Hamano
In-Reply-To: <20070610082935.GD2951@artemis>
On Sunday 10 June 2007, Pierre Habouzit wrote:
> On Sun, Jun 10, 2007 at 01:16:45AM +0200, Johan Herland wrote:
> > On Sunday 10 June 2007, Steven Grimm wrote:
> > > Being able to specify relationships between commits after the fact seems
> > > like a very useful facility.
> > >
> > > Does it make sense to have type information to record what the
> > > relationship between two objects means? Without that, it seems like
> > > it'll be hard to build much of a tool set on top of this feature, since
> > > no two tools that made use of it could unambiguously query just their
> > > own softrefs.
> >
> > Actually MadCoder/Pierre had a similar idea on IRC. He wanted to separate
> > softrefs into namespaces, so that softrefs for tags could live in a
> > different place than softrefs associated with his "gits" bug tracker.
> >
> > I haven't thought very much about this, but it's certainly possible to do
> > something like this. What do the rest of y'all think?
>
> Well, if we're two with the same idea, it's a good one, no ? :)
>
> In fact, the namespace idea like I told you on IRC isn't _that_
> brilliant. But I'm sure recording a softref with:
>
> <from_sha> <to_sha> <token>
>
> token would help classify the softref. And I'm sure we'll end up with:
>
> <from_sha> <to_sha> <token> <flags>
>
> with the flags to say what behaviour (e.g.) the reachability resolver
> should have wrt that link ?
Interesting. But I'm not sure I want to give up the fixed-length softref
records as I imagine it makes the lookup and processing _much_ faster.
...Johan
--
Johan Herland, <johan@herland.net>
www.herland.net
^ permalink raw reply
* Re: [PATCH 1/7] Softrefs: Add softrefs header file with API documentation
From: Jakub Narebski @ 2007-06-10 14:27 UTC (permalink / raw)
To: git
In-Reply-To: <200706092021.43314.johan@herland.net>
Johan Herland wrote:
> + * When softrefs are created (by calling add_softref()/add_softrefs()), they
> + * are appended to .git/softrefs.unsorted. When .git/softrefs.unsorted reach a
> + * certain number of entries (determined by MAX_UNSORTED_ENTRIES), all the
> + * entries in .git/softrefs.unsorted are merged into .git/softrefs.sorted.
Perhaps git-gc should also sort softrefs (if it doesn't do it yet)?
--
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git
^ permalink raw reply
* Re: Comment on weak refs
From: Pierre Habouzit @ 2007-06-10 14:25 UTC (permalink / raw)
To: git
In-Reply-To: <20070610140859.GB6730@artemis.madism.org>
[-- Attachment #1: Type: text/plain, Size: 1908 bytes --]
On Sun, Jun 10, 2007 at 04:08:59PM +0200, Pierre Habouzit wrote:
> Sorry for the noise, but I'm really pissed with git@vger recently.
> That mail I'm answering to, never made it to the list. Neither did my
> quite long answer to Martin, who kindly forwared it back to me so that I
> can send it again, sadly git@vger just does not wants mail, whereas its
> SMTP seems to accept mail:
>
> Jun 10 16:02:09 pan postfix/smtp[20560]: DE84FCAD9: to=<git@vger.kernel.org>, relay=vger.kernel.org[209.132.176.167]:25, delay=4, delays=0.31/0.02/0.5/3.1, dsn=2.7.0, status=sent (250 2.7.0 nothing apparently wrong in the message. BF:<H 0.0800319>; S1754569AbXFJOCJ)
>
> I've sent a mail to postmaster@vger.kernel.org a week ago, but it
> seems it remained a dead letter. Is anyone able to tell what's going
> wrong ? it's _really_ irritating, and let me want to give up
> discussions, as I _hate_ losing mail (I usually don't keep a copy of
> mails I send to a mail list as I expect it to send it back to me, and
> well, what would be a copy worth if nobody can read the mail anyway ?).
>
> So if anyone knows what can be done ....
SOrry, *I* screwed up. I did not checked first if the archived had the
mails, and it had. So as I don't see the mails come, it's definitely a
problem in between, and is not necessarilly vger.kernel.org's fault, and
I apologies for the noise.
So if anyone sent a mail to the list (without me in Cc) hoping that I
would get the mail and never answered, it's time to send it again :/
That is also the reason why some of my mails have been sent many
times: because I thought they were eaten at some point. That should not
happen again, sorry about that.
Cheers,
--
·O· Pierre Habouzit
··O madcoder@debian.org
OOO http://www.madism.org
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply
* Re: [ANNOUNCE] qgit-2.0rc1
From: Marco Costalba @ 2007-06-10 14:21 UTC (permalink / raw)
To: Jan Hudec; +Cc: Git Mailing List, Pavel Roskin, Andy Parkins
In-Reply-To: <20070610140356.GF4084@efreet.light.src>
On 6/10/07, Jan Hudec <bulb@ucw.cz> wrote:
> On Sun, Jun 10, 2007 at 13:47:17 +0200, Marco Costalba wrote:
> > This is qgit-2.0rc1
>
> Can you please fix the license?
>
Yes of course. Thanks for noticing.
Already pushed to public git repo, will be included in following rc2
as soon as we get to fix the strange build problem on Ismail box.
Thanks
Marco
^ permalink raw reply
* Re: Comment on weak refs
From: Pierre Habouzit @ 2007-06-10 14:09 UTC (permalink / raw)
To: Johan Herland; +Cc: Johannes Schindelin, Junio C Hamano, git, Linus Torvalds
In-Reply-To: <200706101541.44362.johan@herland.net>
[-- Attachment #1: Type: text/plain, Size: 3833 bytes --]
Sorry for the noise, but I'm really pissed with git@vger recently.
That mail I'm answering to, never made it to the list. Neither did my
quite long answer to Martin, who kindly forwared it back to me so that I
can send it again, sadly git@vger just does not wants mail, whereas its
SMTP seems to accept mail:
Jun 10 16:02:09 pan postfix/smtp[20560]: DE84FCAD9: to=<git@vger.kernel.org>, relay=vger.kernel.org[209.132.176.167]:25, delay=4, delays=0.31/0.02/0.5/3.1, dsn=2.7.0, status=sent (250 2.7.0 nothing apparently wrong in the message. BF:<H 0.0800319>; S1754569AbXFJOCJ)
I've sent a mail to postmaster@vger.kernel.org a week ago, but it
seems it remained a dead letter. Is anyone able to tell what's going
wrong ? it's _really_ irritating, and let me want to give up
discussions, as I _hate_ losing mail (I usually don't keep a copy of
mails I send to a mail list as I expect it to send it back to me, and
well, what would be a copy worth if nobody can read the mail anyway ?).
So if anyone knows what can be done ....
On Sun, Jun 10, 2007 at 03:41:44PM +0200, Johan Herland wrote:
> On Sunday 10 June 2007, Johannes Schindelin wrote:
> > On Sun, 10 Jun 2007, Johan Herland wrote:
> > > On Sunday 10 June 2007, Junio C Hamano wrote:
> > Has my lightweight annotation patch reached you?
> >
> > I like my approach better than yours, because it is
> >
> > 1) a way, way smaller patch, and
> > 2) it automatically includes the versionability.
>
> I see your point, but your lightweight annotations are solving a different
> problem, aren't they? They do provide the after-the-fact annotations that
> sort of sparked of these discussions, but I can't see how your patch is a
> replacement of the general "relationships between arbitrary objects"
> concept that softrefs try to solve.
>
> Of course, it might be that the lightweight annotations are "good enough"
> for the use cases we currently see, and that softrefs are a bit overkill.
> We'll just have to see what features people (like Pierre) really need.
>
> > After thinking about it a little more (my plane was slow, and as a result
> > I am allowed to spend 8 more hours in Paris), I think that a small but
> > crucial change would make this thing even more useful:
> >
> > Instead of having "core.showAnnotations" be a boolean config, it might be
> > better to have "core.annotationsRef" instead, overrideable by the
> > environment variable GIT_ANNOTATION_REF.
> >
> > With this, you can have different refs for different kinds of annotations.
> >
> > For example, some people might add bugtracker comments (even comments like
> > "this commit was bad: introduced bug #798, solved by commit 9899fdadc..").
> > Those comments could live in refs/annotations/bugs. To see them, just say
> >
> > GIT_ANNOTATION_REF=refs/annotations/bugs gitk
> >
> > Voila.
>
> Nice. Something similar should be possible to do with softrefs as well.
>
> > I am quite certain that treating annotations as branches, containing
> > fan-out directories for the reverse lookup. I am even quite certain that
> > in most cases, a working-directory-less merging is possible for such
> > annotations.
>
> I'm not convinced about the working-directory-less merging. AFAICS the
> lightweight annotations will behave pretty much like the "regular" version
> controlled filesystem, and you'll have the same kind of conflicts when you
> merge stuff between repos. I'd be glad to be proven wrong, of course.
>
>
> Have fun!
>
> ....Johan
>
> --
> Johan Herland, <johan@herland.net>
> www.herland.net
--
·O· Pierre Habouzit
··O madcoder@debian.org
OOO http://www.madism.org
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply
* Re: [ANNOUNCE] qgit-2.0rc1
From: Ismail Dönmez @ 2007-06-10 14:04 UTC (permalink / raw)
To: Marco Costalba; +Cc: Git Mailing List, Pavel Roskin, Andy Parkins
In-Reply-To: <e5bfff550706100659l41c392f4n9dc9fb3097f3da29@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 605 bytes --]
On Sunday 10 June 2007 16:59:48 Marco Costalba wrote:
> On 6/10/07, Ismail Dönmez <ismail@pardus.org.tr> wrote:
> > Still no go. Though the final linker line have a -lQtUiTools
>
> I'm quickly running out of ideas.
>
> Please post the list of your qt4 libs directory
>
> $ls /usr/lib/qt4/lib/
>
> and again your make output after the patch.
>
> One thing I would like to to is to test with Qt4.3 as in your
> environment but it will require some time.
Uploaded to http://cekirdek.pardus.org.tr/~ismail/tmp/qgit4-report.txt .
Great thanks,
ismail
--
Perfect is the enemy of good
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 827 bytes --]
^ permalink raw reply
* Re: [ANNOUNCE] qgit-2.0rc1
From: Jan Hudec @ 2007-06-10 14:03 UTC (permalink / raw)
To: Marco Costalba; +Cc: Git Mailing List, Pavel Roskin, Andy Parkins
In-Reply-To: <e5bfff550706100447g5d34adf2j92389cd193658738@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 572 bytes --]
On Sun, Jun 10, 2007 at 13:47:17 +0200, Marco Costalba wrote:
> This is qgit-2.0rc1
Can you please fix the license?
- All the file headers mention COPYRIGHT file in the distribution, but the
file is not there.
- At least the About box should contain the whole notice text from the "How
to Apply These Terms to Your New Programs" appendix of GPL.
- The notices from GPL should probably be in all sources (as is stated in
GPL), but that obviously means changing all the headers.
Best Regards,
Jan
--
Jan 'Bulb' Hudec <bulb@ucw.cz>
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply
* Re: [PATCH] Change softrefs file format from text (82 bytes per entry) to binary (40 bytes per entry)
From: Johan Herland @ 2007-06-10 14:03 UTC (permalink / raw)
To: Johannes Schindelin; +Cc: git, Junio C Hamano, Linus Torvalds
In-Reply-To: <Pine.LNX.4.64.0706100900420.4059@racer.site>
On Sunday 10 June 2007, Johannes Schindelin wrote:
> On Sat, 9 Jun 2007, Johan Herland wrote:
> > The text-based softrefs file format uses 82 bytes per entry (40 bytes
> > from_sha1 in hex, 1 byte SP, 40 bytes to_sha1 in hex, 1 byte LF).
> >
> > The binary softrefs file format uses 40 bytes per entry (20 bytes
> > from_sha1, 20 bytes to_sha1).
> >
> > Moving to a binary format increases performance slightly, but sacrifices
> > easy readability of the softrefs files.
>
> It is bad style to introduce one type, and then change it to another in a
> backwards-incompatible way. Either you make it backwards compatible, or
> you start with the second format, never even mentioning that you had
> another format.
As Junio correctly pointed out, this patch is only here to demonstrate an
alternative solution. Whether or not this patch should be used should be
determined _long_ before (even thinking about) putting this into a release.
...Johan
--
Johan Herland, <johan@herland.net>
www.herland.net
^ permalink raw reply
* Re: [RFC] git integrated bugtracking
From: Pierre Habouzit @ 2007-06-10 14:02 UTC (permalink / raw)
To: git
In-Reply-To: <46a038f90706092359i43a6e834rc096e53a28fbee51@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 12973 bytes --]
On Sun, Jun 10, 2007 at 06:59:13PM +1200, Martin Langhoff wrote:
> On 6/10/07, Pierre Habouzit <madcoder@debian.org> wrote:
> > FWIW I've begun to work on this (for real). I've called the tool
> >"grit". You can follow the developpement on:
> >
> > * gitweb: http://git.madism.org/?p=grit.git;a=summary
> > * git: git://git.madism.org/grit.git/
>
> Call me a fool, but writing a <new> bugtracker looks like a
> boil-the-oceans scheme.
Sure, what if I like it anyway ?
> Adding git & gitweb support to traq, bugzilla, mantis, gforge, etc is
> what is going to make the difference. Most of those have already the
> ability to "link" to one or more commits -- after the commits are done
> and in GIT.
Sure, you can do that and still inherit from the many downsides of
those tools: central, needs another separate tool to work with, and a
tool that nowadays tends to eat 500Mb of your memory if you take the
most hype implementation of it (Yes I'm describing a web browser), that
is slow like hell (because yes, there is many clients at the same time
on the central server, that is overloaded like hell), and so on.
You can like central web UIs, your choice. And I suppose if grit works
well, there will be one at some point.
> So you can tell your bugtracker
> - which commit fixed it -- usually auto-linked if you include the
> bugnumber in the commit message
> - which commit added the test -- auto linked as above
> - which commit introduced the bug -- if such thing exists and someone
> digs it up
yeah, that is what bugtrackers already do. Though, that's of no use
for release managers. What is useful is what people call "milestones" in
trac e.g., meaning a set of bugs that has been flagged as needing to be
fixed. And what a release manager need is a tool to deal with this set
of bugs as a whole.
That's the same argument that Linus has against per-file tracking.
Also atm when you e.g. backport a patch that fixes this or this bug,
you're no BTS helps you tagging the bug as fixed in that branch as well.
Not to mention that BTS I know do not make any use of the commits DAG.
And for a very good reason, there is no real DAG in many existing tools
(svn, cvs, ...).
> If the bugtracker can also auto-link things that look committish in
> text entered by users (someone might write "bisect sez that f345e is
> to blame"), with tooltips indicating in which heads those commits
> resides (like gitk does), then it's just gorgeous.
that's not up to the BTS tool to do that, it's way to high level. It's
up to the importing filters/hooks that will parse the associated ML, and
that would translate that to useful low level BTS commands.
> And definitely, if you use git as an alibi to write a new bugtracker,
> don't use the "works only with git" as a feature. It should work with
> as many SCMs as possible.
No it should not, because it can't. I want the distributed and
Bug status spanning-DAGS be a central feature. So that means that this
tool can only work on top of SCMs that support that. ttbomk git, hg,
_maybe_ bzr fit the description. I only know the former, but I really
plan to write the tool in a way that the underlying SCM does not matters
_too_ much. Maybe I'll fail. Honestly, I don't really care (yet ?).
> OTOH, that's just me, I'm lazy and like to work on already-successful
> projects that are 99% there for my needs (and where I can add that
> 1%).
You're a lucky guy. All bug trackers I've used suck a way or another,
that impedes my workflow a lot. Let's cite a couple:
* bugzilla: takes more from the -zilla than from the BTS side. It's
huge, monstruous, slow (have ever used glibc's bugzilla ? it has
maybe 5k bugs, it's slow like if it ran on an Atari ST), complex,
the mail gateway suck hard, it's completely unusable for me. Believe
me, I've packaged KDE for 2 years in Debian, now am in the glibc
team. Every single day I have to work on this horrible tool is a
PITA.
* flyspray: I've been upstream for a short time. Visually nice, good
to work with, UI is great. Integration totally suck, worthless.
Can't use mails either, needs a Web Browser -> useless. The same
holds for mantis, roundup and a lot of other friends.
* debbugs: oh yeah there is a mail interface. So slow that you have to
wait up to 15 minutes to see your command be taken into account. And
when you have to deal with dozens of bugs (Yes I've done that on a
regular basis) you _have_ sometimes to wait for the answer to come
back (because you need an ID that will be in there e.g.) to continue
your work. That is unacceptable, you pass most of your time waiting.
Moreover sometimes you made an error in your commands, so you also
need to parse the anwer ... one day later because "immediateley when
you still remembered what this was about" is not an option.
Unacceptable again. The plus: it uses mboxes, hence is worthwile in
a hacking environment, it fits the workflow well.
* trac: very very very nice tool. I mean it. We use it at work, where
I have to suffer svn (through git-svn though). It's really nice (did
I repeat myself ?). THough, it's on top of svn, and you can't use
the Bugs informations from your repository. You can't say: I'm
backporting that patch into that branch. Now what affects this
branch please ? Trac can't answer that (and ttbomk now BTS really
can anyway, except Debian's debbugs instance, and it's somehow
limited). That is a question a release manager takes 80% of his time
to ask. I hope grit can take back to the 0.01% of his time, which is
still too much.
On Sun, Jun 10, 2007 at 08:55:21PM +1200, Martin Langhoff wrote:
> On 6/10/07, Jan Hudec <bulb@ucw.cz> wrote:
> >I don't know about any *distributed* bug tracker, which is the point
> >here.
>
> As an end user, I suspect I _don't_ want to have to report a bug in a
> distributed bug tracker ;-)
I trol^Wdiscuss everyday on debian's channel with friends that tell
that svn is the best tool ever, and that they would never ever use a
distributed SCM because it's too hard to understand. Your call.
> > We have several distributed version control tools, but no other
> > distributed tools for the other tasks in configuration management.
>
> Bugtrackers are co-owned by developers, users and (where they exist)
> project managers.
That's exactly why distributed rock. Because everyone could _really_
own _his_ bugtracker. This solves the same range of ACLish issues git
solves with respect to the code.
> > - Distributed version control is designed to decrease the workload of
> > the central maintainer(s) while keeping him in control. But with
> > centralized
>
> And to provide a single place for users to report a problem and track
> its status.
Why wouldn't it exist a "public reporting interface"-branch ? that
would be the same purpose as the mainline ~linus/linux2.6.git tree. And
you can build/instanciate your beloved web UI on top of that, and people
would just have to pull from there. What a shock, it's easy !
> > If it uses git as it's database, which it probably will,
>
> Well - hmmm. Git's database is great at tracking _content identity_.
> But a bug's content identity (description+comments+status) changes all
> the time. I don't think it's naturally a good match.
Oh, because the code never changes. Doh, how stupid I am :)
No, really, you name your bug after the sha hash of the first report,
I think that's pretty obvious. That gives you a bug name. Then you ask
git for "what's the current sha for this bug in the tip of the BTS
branch", then you ask "so now what this new sha is pointing to in the
code". That's a small indirection that I suppose is bearable.
> > Yes. But for many people current bug tracking tools do NOT work 99%.
>
> Hmmm. I agree in that "does not work disconnected" is a big issue with
> web tools, but debbugs works disconnected, and is good. Git's
> bugtracker (git@vger) works disconnected too ;-) And googlegears might
> help the rest of us. Is there any other problem with current BTs?
It's not integrated with the workflow. And sorry, but git@vger (or
workse lkml@vger).. it does not work. Maybe for git it does because the
flow is still human manageable, and that it seems junio has enough time
for it. But for the kernel ? please. You should read Bastian Blank
frustration about regressions and nobody tracking them. Know why ?
because there is no tool that is well known and well integrated in the
workflow. There is a long rant against kernel.org's bugzilla, you should
read it as well. It's not really instructive (at least there wasn't
anything new for me in it, I was already bought to many arguments in
there). But you'll see the world isn't as rosa-lila you think it is.
On Sun, Jun 10, 2007 at 08:38:03PM +1200, Martin Langhoff wrote:
> On 6/10/07, Junio C Hamano <gitster@pobox.com> wrote:
> > After looking at the above existing alternatives, some brave soul
> > might decide and say, "Hey, I can write something better in 2 weeks"
> > ;-).
I'm sure I could come up with something really better in say a
month... If I hadn't paid work to do too :)
> And "it's closely integrated with git" can actually be a misfeature.
> Cool if it's what gets you going, but not enough for world domination
> ;-)
It's a misfeature for you because you read it as "non portable".
That's a fair point. And like said, it may be extended to SCM's with the
same set of features I need to build it. But let's be honnest, I don't
care about a BTS that uses the smallest common set of features of SCM's.
Reading this list, you should know it's almost a void set. No, I think a
good BTS should make an excellent use of high level features of the SCM.
The real problem is, there is maybe 2 or 3 SCMs that have this set of
strong and good features. Too bad for the other, I can't work with them,
they suck hard, and I don't see why I should support bad practices
anyways.
(Yes I'm also a guy with strong opinions too, it's not really
restricted to Linus ;p)
> I agree it's useful, but I don't think it has any benefit having it in
> the SCM _at all_. Having them in the BT is a lot more flexible -- and
> the fact that git has stable commit IDs makes it easier to integrate
> in a BT; as the BT can spot that the commit fixing bug 123 is now
> merged into head ZZ as well as head YYY.
If you do that you loose:
* fastness, and I don't want to work with debbugs anymore.
* distribution: Meaning that for _one_ project everybody needs to use
this central bugtracker. Whereas .oO(kernel) there is some projects
where the subcomponents are dealt with from very different teams,
very different way to release things, and they are interested with
their bugs, and their bugs only. They would prefer a very fast
interface to deal with their 1k bugs, and not worry about the 100k
the rest of the project has.
Branching bugs also makes sense you know ?
> Now, to rule the world, BTs gain a lot more from being able to
> integrate with different SCMs,
You are the one saying it. I beg to differ.
> automated test systems (like tinderbox), MTAs (debbugs), wikis (traq),
> stats tracking for PHBs (bugzilla), etc. So loose coupling wins here,
> and git's SHA1s are great for that.
IMHO a BTS is a _low_ level tool. that's the road git took, I
sometimes describe the plumbing git commands as the "Assembler" of the
SCM world to friends when I talk to them about git. That's really the
best way to implement a thing: have a small small set of rock solid,
well designed tools, and build the others as porcelains with them.
Testing is a high level tool. I don't need to support them, I need to
have exactly the low level querying rocket-fast query interfaces so that
integration scripts are at most 100 lines long.
> And at git's end we can get the smooth integration using/abusing that
> loose coupling strategy. So if git-log/gitk/qgit grow some hooks that
> can be used to perform a lookup... I can think of a perl script that
> gets events for each SHA1 that git-rev-list produces and returns one
> bug number, url and title (or more than one) that then git-log / gitk
> / qgit / annotate can use to further "decorate" the commit info in a
> similar style to what gitk is doing now with head names in each
> commit.
>
> Would that fit your vision of a nicely integrated tracker?
Honestly ? No, because that would be horribly slow (but I'd love to be
proved wrong).
Cheers,
--
·O· Pierre Habouzit
··O madcoder@debian.org
OOO http://www.madism.org
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply
* Re: [PATCH 1/7] Softrefs: Add softrefs header file with API documentation
From: Johan Herland @ 2007-06-10 14:00 UTC (permalink / raw)
To: Johannes Schindelin; +Cc: git, Junio C Hamano, Linus Torvalds
In-Reply-To: <Pine.LNX.4.64.0706100750440.4059@racer.site>
On Sunday 10 June 2007, Johannes Schindelin wrote:
> Hi,
>
> On Sat, 9 Jun 2007, Johan Herland wrote:
>
> > See patch for documentation.
>
> This is preposterous. Either you substitute the patch for a documentation,
> or you document it in the commit message. I consider commit messages like
> "See patch for documentation" as reasonable as all those CVS "** no
> message **" abominations.
Well, I could have copied documentation from the header file into the commit
message
> > + * The softrefs db consists of two files: .git/softrefs.unsorted and
> > + * .git/softrefs.sorted. Both files use the same format; one softref per line
> > + * of the form "<from-sha1> <to-sha1>\n". Each sha1 sum is 40 bytes long; this
> > + * makes each entry exactly 82 bytes long (including the space between the sha1 + * sums and the terminating linefeed).
> > + *
> > + * The entries in .git/softrefs.sorted are sorted on <from-sha1>, in order to
> > + * make lookup fast.
> > + *
> > + * The entries in .git/softrefs.unsorted are _not_ sorted. This is to make
> > + * insertion fast.
>
> This sure sounds like you buy the disadvantages of both. Last time I
> checked, it was recommended to look at your needs and pick _one_
> appropriate data structure fitting _all_ your needs.
First, the unsorted file is bounded in size to make sure it never gets
large enough to really impact performance
Second, I'd ask you to look at the performance numbers (in patch #0)
before commenting on the performance.
> Besides, your lines are way too long. Yes, it is not in
> Documentation/SubmittingPatches, but even just a cursory look into the
> existing source shows you that it is mostly 80-chars-per-line. I think it
> goes without saying that you should try to imitate the existing practices
> in any project, and since you have to read the source to get acquainted
> with it _anyway_, it would only be a duplication to have it in
> SubmittingPatches, too.
I have indeed tried to follow the 80-chars-per-line rule. In softrefs.h
I fail to see a _single_ line exceeding 80 chars per line. In the other
files I believe the number of long lines is comparable to other files
in the git repo.
...Johan
--
Johan Herland, <johan@herland.net>
www.herland.net
^ permalink raw reply
* Re: [ANNOUNCE] qgit-2.0rc1
From: Ismail Dönmez @ 2007-06-10 13:45 UTC (permalink / raw)
To: Marco Costalba; +Cc: Git Mailing List, Pavel Roskin, Andy Parkins
In-Reply-To: <e5bfff550706100640w3bbc01foa84263bb0a751376@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 922 bytes --]
On Sunday 10 June 2007 16:40:35 Marco Costalba wrote:
> On 6/10/07, Marco Costalba <mcostalba@gmail.com> wrote:
> > I will try an update to src/src.pro file to let Qt pass this library
> > to the linker.
>
> Please apply the following patch to your src/src.pro file and try to
> rebuild.
>
> Please, let me know if this fixes the build for you.
>
>
> --- a/src/src.pro
> +++ b/src/src.pro
> @@ -25,6 +25,9 @@ QMAKE_CXXFLAGS_RELEASE += -g3 -O2
> -Wno-non-virtual-dtor -frepo -Wno-long-long -p
> QMAKE_CXXFLAGS_DEBUG += -g3 -O0 -Wno-non-virtual-dtor -Wno-long-long
> -pedantic -Wconversion
> INSTALLS += target
>
> +# Qt doesn't seem to link all needed libraries
> +unix:LIBS += -L$$QMAKE_LIBDIR_QT -lQtUiTools
> +
> # Directories
> DESTDIR = ../bin
> BUILD_DIR = ../build
Still no go. Though the final linker line have a -lQtUiTools
Regards,
ismail
--
Perfect is the enemy of good
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 827 bytes --]
^ permalink raw reply
* Re: [RFC] git integrated bugtracking
From: Pierre Habouzit @ 2007-06-10 13:43 UTC (permalink / raw)
To: git
In-Reply-To: <46a038f90706092359i43a6e834rc096e53a28fbee51@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 12977 bytes --]
On Sun, Jun 10, 2007 at 06:59:13PM +1200, Martin Langhoff wrote:
> On 6/10/07, Pierre Habouzit <madcoder@debian.org> wrote:
> > FWIW I've begun to work on this (for real). I've called the tool
> >"grit". You can follow the developpement on:
> >
> > * gitweb: http://git.madism.org/?p=grit.git;a=summary
> > * git: git://git.madism.org/grit.git/
>
> Call me a fool, but writing a <new> bugtracker looks like a
> boil-the-oceans scheme.
Sure, what if I like it anyway ?
> Adding git & gitweb support to traq, bugzilla, mantis, gforge, etc is
> what is going to make the difference. Most of those have already the
> ability to "link" to one or more commits -- after the commits are done
> and in GIT.
Sure, you can do that and still inherit from the many downsides of
those tools: central, needs another separate tool to work with, and a
tool that nowadays tends to eat 500Mb of your memory if you take the
most hype implementation of it (Yes I'm describing a web browser), that
is slow like hell (because yes, there is many clients at the same time
on the central server, that is overloaded like hell), and so on.
You can like central web UIs, your choice. And I suppose if grit works
well, there will be one at some point.
> So you can tell your bugtracker
> - which commit fixed it -- usually auto-linked if you include the
> bugnumber in the commit message
> - which commit added the test -- auto linked as above
> - which commit introduced the bug -- if such thing exists and someone
> digs it up
yeah, that is what bugtrackers already do. Though, that's of no use
for release managers. What is useful is what people call "milestones" in
trac e.g., meaning a set of bugs that has been flagged as needing to be
fixed. And what a release manager need is a tool to deal with this set
of bugs as a whole.
That's the same argument that Linus has against per-file tracking.
Also atm when you e.g. backport a patch that fixes this or this bug,
you're no BTS helps you tagging the bug as fixed in that branch as well.
Not to mention that BTS I know do not make any use of the commits DAG.
And for a very good reason, there is no real DAG in many existing tools
(svn, cvs, ...).
> If the bugtracker can also auto-link things that look committish in
> text entered by users (someone might write "bisect sez that f345e is
> to blame"), with tooltips indicating in which heads those commits
> resides (like gitk does), then it's just gorgeous.
that's not up to the BTS tool to do that, it's way to high level. It's
up to the importing filters/hooks that will parse the associated ML, and
that would translate that to useful low level BTS commands.
> And definitely, if you use git as an alibi to write a new bugtracker,
> don't use the "works only with git" as a feature. It should work with
> as many SCMs as possible.
No it should not, because it can't. I want the distributed and
Bug status spanning-DAGS be a central feature. So that means that this
tool can only work on top of SCMs that support that. ttbomk git, hg,
_maybe_ bzr fit the description. I only know the former, but I really
plan to write the tool in a way that the underlying SCM does not matters
_too_ much. Maybe I'll fail. Honestly, I don't really care (yet ?).
> OTOH, that's just me, I'm lazy and like to work on already-successful
> projects that are 99% there for my needs (and where I can add that
> 1%).
You're a lucky guy. All bug trackers I've used suck a way or another,
that impedes my workflow a lot. Let's cite a couple:
* bugzilla: takes more from the -zilla than from the BTS side. It's
huge, monstruous, slow (have ever used glibc's bugzilla ? it has
maybe 5k bugs, it's slow like if it ran on an Atari ST), complex,
the mail gateway suck hard, it's completely unusable for me. Believe
me, I've packaged KDE for 2 years in Debian, now am in the glibc
team. Every single day I have to work on this horrible tool is a
PITA.
* flyspray: I've been upstream for a short time. Visually nice, good
to work with, UI is great. Integration totally suck, worthless.
Can't use mails either, needs a Web Browser -> useless. The same
holds for mantis, roundup and a lot of other friends.
* debbugs: oh yeah there is a mail interface. So slow that you have to
wait up to 15 minutes to see your command be taken into account. And
when you have to deal with dozens of bugs (Yes I've done that on a
regular basis) you _have_ sometimes to wait for the answer to come
back (because you need an ID that will be in there e.g.) to continue
your work. That is unacceptable, you pass most of your time waiting.
Moreover sometimes you made an error in your commands, so you also
need to parse the anwer ... one day later because "immediateley when
you still remembered what this was about" is not an option.
Unacceptable again. The plus: it uses mboxes, hence is worthwile in
a hacking environment, it fits the workflow well.
* trac: very very very nice tool. I mean it. We use it at work, where
I have to suffer svn (through git-svn though). It's really nice (did
I repeat myself ?). THough, it's on top of svn, and you can't use
the Bugs informations from your repository. You can't say: I'm
backporting that patch into that branch. Now what affects this
branch please ? Trac can't answer that (and ttbomk now BTS really
can anyway, except Debian's debbugs instance, and it's somehow
limited). That is a question a release manager takes 80% of his time
to ask. I hope grit can take back to the 0.01% of his time, which is
still too much.
On Sun, Jun 10, 2007 at 08:55:21PM +1200, Martin Langhoff wrote:
> On 6/10/07, Jan Hudec <bulb@ucw.cz> wrote:
> >I don't know about any *distributed* bug tracker, which is the point
> >here.
>
> As an end user, I suspect I _don't_ want to have to report a bug in a
> distributed bug tracker ;-)
I trol^Wdiscuss everyday on debian's channel with friends that tell
that svn is the best tool ever, and that they would never ever use a
distributed SCM because it's too hard to understand. Your call.
> > We have several distributed version control tools, but no other
> > distributed tools for the other tasks in configuration management.
>
> Bugtrackers are co-owned by developers, users and (where they exist)
> project managers.
That's exactly why distributed rock. Because everyone could _really_
own _his_ bugtracker. This solves the same range of ACLish issues git
solves with respect to the code.
> > - Distributed version control is designed to decrease the workload of
> > the central maintainer(s) while keeping him in control. But with
> > centralized
>
> And to provide a single place for users to report a problem and track
> its status.
Why wouldn't it exist a "public reporting interface"-branch ? that
would be the same purpose as the mainline ~linus/linux2.6.git tree. And
you can build/instanciate your beloved web UI on top of that, and people
would just have to pull from there. What a shock, it's easy !
> > If it uses git as it's database, which it probably will,
>
> Well - hmmm. Git's database is great at tracking _content identity_.
> But a bug's content identity (description+comments+status) changes all
> the time. I don't think it's naturally a good match.
Oh, because the code never changes. Doh, how stupid I am :)
No, really, you name your bug after the sha hash of the first report,
I think that's pretty obvious. That gives you a bug name. Then you ask
git for "what's the current sha for this bug in the tip of the BTS
branch", then you ask "so now what this new sha is pointing to in the
code". That's a small indirection that I suppose is bearable.
> > Yes. But for many people current bug tracking tools do NOT work 99%.
>
> Hmmm. I agree in that "does not work disconnected" is a big issue with
> web tools, but debbugs works disconnected, and is good. Git's
> bugtracker (git@vger) works disconnected too ;-) And googlegears might
> help the rest of us. Is there any other problem with current BTs?
It's not integrated with the workflow. And sorry, but git@vger (or
workse lkml@vger).. it does not work. Maybe for git it does because the
flow is still human manageable, and that it seems junio has enough time
for it. But for the kernel ? please. You should read Bastian Blank
frustration about regressions and nobody tracking them. Know why ?
because there is no tool that is well known and well integrated in the
workflow. There is a long rant against kernel.org's bugzilla, you should
read it as well. It's not really instructive (at least there wasn't
anything new for me in it, I was already bought to many arguments in
there). But you'll see the world isn't as rosa-lila you think it is.
On Sun, Jun 10, 2007 at 08:38:03PM +1200, Martin Langhoff wrote:
> On 6/10/07, Junio C Hamano <gitster@pobox.com> wrote:
> > After looking at the above existing alternatives, some brave soul
> > might decide and say, "Hey, I can write something better in 2 weeks"
> > ;-).
I'm sure I could come up with something really better in say a
month... If I hadn't paid work to do too :)
> And "it's closely integrated with git" can actually be a misfeature.
> Cool if it's what gets you going, but not enough for world domination
> ;-)
It's a misfeature for you because you read it as "non portable".
That's a fair point. And like said, it may be extended to SCM's with the
same set of features I need to build it. But let's be honnest, I don't
care about a BTS that uses the smallest common set of features of SCM's.
Reading this list, you should know it's almost a void set. No, I think a
good BTS should make an excellent use of high level features of the SCM.
The real problem is, there is maybe 2 or 3 SCMs that have this set of
strong and good features. Too bad for the other, I can't work with them,
they suck hard, and I don't see why I should support bad practices
anyways.
(Yes I'm also a guy with strong opinions too, it's not really
restricted to Linus ;p)
> I agree it's useful, but I don't think it has any benefit having it in
> the SCM _at all_. Having them in the BT is a lot more flexible -- and
> the fact that git has stable commit IDs makes it easier to integrate
> in a BT; as the BT can spot that the commit fixing bug 123 is now
> merged into head ZZ as well as head YYY.
If you do that you loose:
* fastness, and I don't want to work with debbugs anymore.
* distribution: Meaning that for _one_ project everybody needs to use
this central bugtracker. Whereas .oO(kernel) there is some projects
where the subcomponents are dealt with from very different teams,
very different way to release things, and they are interested with
their bugs, and their bugs only. They would prefer a very fast
interface to deal with their 1k bugs, and not worry about the 100k
the rest of the project has.
Branching bugs also makes sense you know ?
> Now, to rule the world, BTs gain a lot more from being able to
> integrate with different SCMs,
You are the one saying it. I beg to differ.
> automated test systems (like tinderbox), MTAs (debbugs), wikis (traq),
> stats tracking for PHBs (bugzilla), etc. So loose coupling wins here,
> and git's SHA1s are great for that.
IMHO a BTS is a _low_ level tool. that's the road git took, I
sometimes describe the plumbing git commands as the "Assembler" of the
SCM world to friends when I talk to them about git. That's really the
best way to implement a thing: have a small small set of rock solid,
well designed tools, and build the others as porcelains with them.
Testing is a high level tool. I don't need to support them, I need to
have exactly the low level querying rocket-fast query interfaces so that
integration scripts are at most 100 lines long.
> And at git's end we can get the smooth integration using/abusing that
> loose coupling strategy. So if git-log/gitk/qgit grow some hooks that
> can be used to perform a lookup... I can think of a perl script that
> gets events for each SHA1 that git-rev-list produces and returns one
> bug number, url and title (or more than one) that then git-log / gitk
> / qgit / annotate can use to further "decorate" the commit info in a
> similar style to what gitk is doing now with head names in each
> commit.
>
> Would that fit your vision of a nicely integrated tracker?
Honestly ? No, because that would be horribly slow (but I'd love to be
proven wrong).
Cheers,
--
·O· Pierre Habouzit
··O madcoder@debian.org
OOO http://www.madism.org
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply
* Re: [ANNOUNCE] qgit-2.0rc1
From: Ismail Dönmez @ 2007-06-10 13:41 UTC (permalink / raw)
To: Marco Costalba; +Cc: Git Mailing List, Pavel Roskin, Andy Parkins
In-Reply-To: <e5bfff550706100626t2d5721a6r7beb0cfeb19dff4@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 690 bytes --]
On Sunday 10 June 2007 16:26:27 Marco Costalba wrote:
> On 6/10/07, Ismail Dönmez <ismail@pardus.org.tr> wrote:
> > > Please could you post _whole_ the make output?
> >
> > Attached.
>
> It seems your linker is unable to find libQtUiTools.so where the
> missing functions are defined.
>
> As example try:
>
> $nm -C -D libQtUiTools.so | grep ::mutableFindNode
>
> And you will see that this as all the other missing functions are in
> this library.
>
> I will try an update to src/src.pro file to let Qt pass this library
> to the linker.
It seems to be built as a static lib only, I only have libQtUiTools.a .
Regards,
ismail
--
Perfect is the enemy of good
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 827 bytes --]
^ permalink raw reply
* Re: Comment on weak refs
From: Johan Herland @ 2007-06-10 13:41 UTC (permalink / raw)
To: Johannes Schindelin; +Cc: Junio C Hamano, git, Linus Torvalds, Pierre Habouzit
In-Reply-To: <Pine.LNX.4.64.0706100716480.4059@racer.site>
On Sunday 10 June 2007, Johannes Schindelin wrote:
> On Sun, 10 Jun 2007, Johan Herland wrote:
> > On Sunday 10 June 2007, Junio C Hamano wrote:
> Has my lightweight annotation patch reached you?
>
> I like my approach better than yours, because it is
>
> 1) a way, way smaller patch, and
> 2) it automatically includes the versionability.
I see your point, but your lightweight annotations are solving a different
problem, aren't they? They do provide the after-the-fact annotations that
sort of sparked of these discussions, but I can't see how your patch is a
replacement of the general "relationships between arbitrary objects"
concept that softrefs try to solve.
Of course, it might be that the lightweight annotations are "good enough"
for the use cases we currently see, and that softrefs are a bit overkill.
We'll just have to see what features people (like Pierre) really need.
> After thinking about it a little more (my plane was slow, and as a result
> I am allowed to spend 8 more hours in Paris), I think that a small but
> crucial change would make this thing even more useful:
>
> Instead of having "core.showAnnotations" be a boolean config, it might be
> better to have "core.annotationsRef" instead, overrideable by the
> environment variable GIT_ANNOTATION_REF.
>
> With this, you can have different refs for different kinds of annotations.
>
> For example, some people might add bugtracker comments (even comments like
> "this commit was bad: introduced bug #798, solved by commit 9899fdadc..").
> Those comments could live in refs/annotations/bugs. To see them, just say
>
> GIT_ANNOTATION_REF=refs/annotations/bugs gitk
>
> Voila.
Nice. Something similar should be possible to do with softrefs as well.
> I am quite certain that treating annotations as branches, containing
> fan-out directories for the reverse lookup. I am even quite certain that
> in most cases, a working-directory-less merging is possible for such
> annotations.
I'm not convinced about the working-directory-less merging. AFAICS the
lightweight annotations will behave pretty much like the "regular" version
controlled filesystem, and you'll have the same kind of conflicts when you
merge stuff between repos. I'd be glad to be proven wrong, of course.
Have fun!
...Johan
--
Johan Herland, <johan@herland.net>
www.herland.net
^ permalink raw reply
* Re: [ANNOUNCE] qgit-2.0rc1
From: Marco Costalba @ 2007-06-10 13:40 UTC (permalink / raw)
To: Ismail Dönmez; +Cc: Git Mailing List, Pavel Roskin, Andy Parkins
In-Reply-To: <e5bfff550706100626t2d5721a6r7beb0cfeb19dff4@mail.gmail.com>
On 6/10/07, Marco Costalba <mcostalba@gmail.com> wrote:
>
> I will try an update to src/src.pro file to let Qt pass this library
> to the linker.
>
Please apply the following patch to your src/src.pro file and try to rebuild.
Please, let me know if this fixes the build for you.
--- a/src/src.pro
+++ b/src/src.pro
@@ -25,6 +25,9 @@ QMAKE_CXXFLAGS_RELEASE += -g3 -O2
-Wno-non-virtual-dtor -frepo -Wno-long-long -p
QMAKE_CXXFLAGS_DEBUG += -g3 -O0 -Wno-non-virtual-dtor -Wno-long-long
-pedantic -Wconversion
INSTALLS += target
+# Qt doesn't seem to link all needed libraries
+unix:LIBS += -L$$QMAKE_LIBDIR_QT -lQtUiTools
+
# Directories
DESTDIR = ../bin
BUILD_DIR = ../build
^ permalink raw reply
* Re: [RFC] git integrated bugtracking
From: Pierre Habouzit @ 2007-06-10 13:34 UTC (permalink / raw)
To: git
In-Reply-To: <46a038f90706092359i43a6e834rc096e53a28fbee51@mail.gmail.com>
On Sun, Jun 10, 2007 at 06:59:13PM +1200, Martin Langhoff wrote:
> On 6/10/07, Pierre Habouzit <madcoder@debian.org> wrote:
> > FWIW I've begun to work on this (for real). I've called the tool
> >"grit". You can follow the developpement on:
> >
> > * gitweb: http://git.madism.org/?p=grit.git;a=summary
> > * git: git://git.madism.org/grit.git/
>
> Call me a fool, but writing a <new> bugtracker looks like a
> boil-the-oceans scheme.
Sure, what if I like it anyway ?
> Adding git & gitweb support to traq, bugzilla, mantis, gforge, etc is
> what is going to make the difference. Most of those have already the
> ability to "link" to one or more commits -- after the commits are done
> and in GIT.
Sure, you can do that and still inherit from the many downsides of
those tools: central, needs another separate tool to work with, and a
tool that nowadays tends to eat 500Mb of your memory if you take the
most hype implementation of it (Yes I'm describing a web browser), that
is slow like hell (because yes, there is many clients at the same time
on the central server, that is overloaded like hell), and so on.
You can like central web UIs, your choice. And I suppose if grit works
well, there will be one at some point.
> So you can tell your bugtracker
> - which commit fixed it -- usually auto-linked if you include the
> bugnumber in the commit message
> - which commit added the test -- auto linked as above
> - which commit introduced the bug -- if such thing exists and someone
> digs it up
yeah, that is what bugtrackers already do. Though, that's of no use
for release managers. What is useful is what people call "milestones" in
trac e.g., meaning a set of bugs that has been flagged as needing to be
fixed. And what a release manager need is a tool to deal with this set
of bugs as a whole.
That's the same argument that Linus has against per-file tracking.
Also atm when you e.g. backport a patch that fixes this or this bug,
you're no BTS helps you tagging the bug as fixed in that branch as well.
Not to mention that BTS I know do not make any use of the commits DAG.
And for a very good reason, there is no real DAG in many existing tools
(svn, cvs, ...).
> If the bugtracker can also auto-link things that look committish in
> text entered by users (someone might write "bisect sez that f345e is
> to blame"), with tooltips indicating in which heads those commits
> resides (like gitk does), then it's just gorgeous.
that's not up to the BTS tool to do that, it's way to high level. It's
up to the importing filters/hooks that will parse the associated ML, and
that would translate that to useful low level BTS commands.
> And definitely, if you use git as an alibi to write a new bugtracker,
> don't use the "works only with git" as a feature. It should work with
> as many SCMs as possible.
No it should not, because it can't. I want the distributed and
Bug status spanning-DAGS be a central feature. So that means that this
tool can only work on top of SCMs that support that. ttbomk git, hg,
_maybe_ bzr fit the description. I only know the former, but I really
plan to write the tool in a way that the underlying SCM does not matters
_too_ much. Maybe I'll fail. Honestly, I don't really care (yet ?).
> OTOH, that's just me, I'm lazy and like to work on already-successful
> projects that are 99% there for my needs (and where I can add that
> 1%).
You're a lucky guy. All bug trackers I've used suck a way or another,
that impedes my workflow a lot. Let's cite a couple:
* bugzilla: takes more from the -zilla than from the BTS side. It's
huge, monstruous, slow (have ever used glibc's bugzilla ? it has
maybe 5k bugs, it's slow like if it ran on an Atari ST), complex,
the mail gateway suck hard, it's completely unusable for me. Believe
me, I've packaged KDE for 2 years in Debian, now am in the glibc
team. Every single day I have to work on this horrible tool is a
PITA.
* flyspray: I've been upstream for a short time. Visually nice, good
to work with, UI is great. Integration totally suck, worthless.
Can't use mails either, needs a Web Browser -> useless. The same
holds for mantis, roundup and a lot of other friends.
* debbugs: oh yeah there is a mail interface. So slow that you have to
wait up to 15 minutes to see your command be taken into account. And
when you have to deal with dozens of bugs (Yes I've done that on a
regular basis) you _have_ sometimes to wait for the answer to come
back (because you need an ID that will be in there e.g.) to continue
your work. That is unacceptable, you pass most of your time waiting.
Moreover sometimes you made an error in your commands, so you also
need to parse the anwer ... one day later because "immediateley when
you still remembered what this was about" is not an option.
Unacceptable again. The plus: it uses mboxes, hence is worthwile in
a hacking environment, it fits the workflow well.
* trac: very very very nice tool. I mean it. We use it at work, where
I have to suffer svn (through git-svn though). It's really nice (did
I repeat myself ?). THough, it's on top of svn, and you can't use
the Bugs informations from your repository. You can't say: I'm
backporting that patch into that branch. Now what affects this
branch please ? Trac can't answer that (and ttbomk now BTS really
can anyway, except Debian's debbugs instance, and it's somehow
limited). That is a question a release manager takes 80% of his time
to ask. I hope grit can take back to the 0.01% of his time, which is
still too much.
On Sun, Jun 10, 2007 at 08:55:21PM +1200, Martin Langhoff wrote:
> On 6/10/07, Jan Hudec <bulb@ucw.cz> wrote:
> >I don't know about any *distributed* bug tracker, which is the point
> >here.
>
> As an end user, I suspect I _don't_ want to have to report a bug in a
> distributed bug tracker ;-)
I trol^Wdiscuss everyday on debian's channel with friends that tell
that svn is the best tool ever, and that they would never ever use a
distributed SCM because it's too hard to understand. Your call.
> > We have several distributed version control tools, but no other
> > distributed tools for the other tasks in configuration management.
>
> Bugtrackers are co-owned by developers, users and (where they exist)
> project managers.
That's exactly why distributed rock. Because everyone could _really_
own _his_ bugtracker. This solves the same range of ACLish issues git
solves with respect to the code.
> > - Distributed version control is designed to decrease the workload of
> > the central maintainer(s) while keeping him in control. But with
> > centralized
>
> And to provide a single place for users to report a problem and track
> its status.
Why wouldn't it exist a "public reporting interface"-branch ? that
would be the same purpose as the mainline ~linus/linux2.6.git tree. And
you can build/instanciate your beloved web UI on top of that, and people
would just have to pull from there. What a shock, it's easy !
> > If it uses git as it's database, which it probably will,
>
> Well - hmmm. Git's database is great at tracking _content identity_.
> But a bug's content identity (description+comments+status) changes all
> the time. I don't think it's naturally a good match.
Oh, because the code never changes. Doh, how stupid I am :)
No, really, you name your bug after the sha hash of the first report,
I think that's pretty obvious. That gives you a bug name. Then you ask
git for "what's the current sha for this bug in the tip of the BTS
branch", then you ask "so now what this new sha is pointing to in the
code". That's a small indirection that I suppose is bearable.
> > Yes. But for many people current bug tracking tools do NOT work 99%.
>
> Hmmm. I agree in that "does not work disconnected" is a big issue with
> web tools, but debbugs works disconnected, and is good. Git's
> bugtracker (git@vger) works disconnected too ;-) And googlegears might
> help the rest of us. Is there any other problem with current BTs?
It's not integrated with the workflow. And sorry, but git@vger (or
workse lkml@vger).. it does not work. Maybe for git it does because the
flow is still human manageable, and that it seems junio has enough time
for it. But for the kernel ? please. You should read Bastian Blank
frustration about regressions and nobody tracking them. Know why ?
because there is no tool that is well known and well integrated in the
workflow. There is a long rant against kernel.org's bugzilla, you should
read it as well. It's not really instructive (at least there wasn't
anything new for me in it, I was already bought to many arguments in
there). But you'll see the world isn't as rosa-lila you think it is.
On Sun, Jun 10, 2007 at 08:38:03PM +1200, Martin Langhoff wrote:
> On 6/10/07, Junio C Hamano <gitster@pobox.com> wrote:
> > After looking at the above existing alternatives, some brave soul
> > might decide and say, "Hey, I can write something better in 2 weeks"
> > ;-).
I'm sure I could come up with something really better in say a
month... If I hadn't paid work to do too :)
> And "it's closely integrated with git" can actually be a misfeature.
> Cool if it's what gets you going, but not enough for world domination
> ;-)
It's a misfeature for you because you read it as "non portable".
That's a fair point. And like said, it may be extended to SCM's with the
same set of features I need to build it. But let's be honnest, I don't
care about a BTS that uses the smallest common set of features of SCM's.
Reading this list, you should know it's almost a void set. No, I think a
good BTS should make an excellent use of high level features of the SCM.
The real problem is, there is maybe 2 or 3 SCMs that have this set of
strong and good features. Too bad for the other, I can't work with them,
they suck hard, and I don't see why I should support bad practices
anyways.
(Yes I'm also a guy with strong opinions too, it's not really
restricted to Linus ;p)
> I agree it's useful, but I don't think it has any benefit having it in
> the SCM _at all_. Having them in the BT is a lot more flexible -- and
> the fact that git has stable commit IDs makes it easier to integrate
> in a BT; as the BT can spot that the commit fixing bug 123 is now
> merged into head ZZ as well as head YYY.
If you do that you loose:
* fastness, and I don't want to work with debbugs anymore.
* distribution: Meaning that for _one_ project everybody needs to use
this central bugtracker. Whereas .oO(kernel) there is some projects
where the subcomponents are dealt with from very different teams,
very different way to release things, and they are interested with
their bugs, and their bugs only. They would prefer a very fast
interface to deal with their 1k bugs, and not worry about the 100k
the rest of the project has.
Branching bugs also makes sense you know ?
> Now, to rule the world, BTs gain a lot more from being able to
> integrate with different SCMs,
You are the one saying it. I beg to differ.
> automated test systems (like tinderbox), MTAs (debbugs), wikis (traq),
> stats tracking for PHBs (bugzilla), etc. So loose coupling wins here,
> and git's SHA1s are great for that.
IMHO a BTS is a _low_ level tool. that's the road git took, I
sometimes describe the plumbing git commands as the "Assembler" of the
SCM world to friends when I talk to them about git. That's really the
best way to implement a thing: have a small small set of rock solid,
well designed tools, and build the others as porcelains with them.
Testing is a high level tool. I don't need to support them, I need to
have exactly the low level querying rocket-fast query interfaces so that
integration scripts are at most 100 lines long.
> And at git's end we can get the smooth integration using/abusing that
> loose coupling strategy. So if git-log/gitk/qgit grow some hooks that
> can be used to perform a lookup... I can think of a perl script that
> gets events for each SHA1 that git-rev-list produces and returns one
> bug number, url and title (or more than one) that then git-log / gitk
> / qgit / annotate can use to further "decorate" the commit info in a
> similar style to what gitk is doing now with head names in each
> commit.
>
> Would that fit your vision of a nicely integrated tracker?
Honestly ? No, because that would be horribly slow (but I'd love to be
proven wrong).
Cheers,
--
·O· Pierre Habouzit
··O madcoder@debian.org
OOO http://www.madism.org
^ permalink raw reply
* Re: [PATCH] Introduce light weight commit annotations
From: Johan Herland @ 2007-06-10 13:14 UTC (permalink / raw)
To: Johannes Schindelin; +Cc: git, gitster
In-Reply-To: <Pine.LNX.4.64.0706091854330.4059@racer.site>
On Saturday 09 June 2007, Johannes Schindelin wrote:
> With the provided script, edit-commit-annotations, you can add
> after-the-fact annotations to commits, which will be shown by
> the log if the config variable core.showannotations is set.
>
> The annotations are tracked in a new ref, refs/annotations/commits,
> in the same fan-out style as .git/objects/??/*, only that they only
> exist in the object database now.
Very interesting. I have to say that after having played around with
it a couple of minutes, I really like it. Needs some polishing here
and there (i.e. cleaning up the COMMIT_ANNOTATION.NNNN* files), but
it is a very good proof-of-concept.
> I have the hunch that this will be relatively fast and scalable,
> since the tree objects are sorted by name (the name being the
> object name of the to-be-annotated commit).
I think I agree with your hunch, although I initially thought that your
solution was a bit heavy on the number of objects created. But, hey, git
is _designed_ to handle massive amounts of objects. :)
> diff --git a/config.c b/config.c
> index 58d3ed5..34db9b2 100644
> --- a/config.c
> +++ b/config.c
> @@ -356,6 +356,11 @@ int git_default_config(const char *var, const char *value)
> return 0;
> }
>
> + if (!strcmp(var, "core.showannotaions")) {
> + show_commit_annotations = git_config_bool(var, value);
> + return 0;
> + }
> +
Small typo here. "core.showannotaions" should be "core.showannotations",
I guess.
...Johan
--
Johan Herland, <johan@herland.net>
www.herland.net
^ permalink raw reply
* Re: [ANNOUNCE] qgit-2.0rc1
From: Ismail Dönmez @ 2007-06-10 12:56 UTC (permalink / raw)
To: Marco Costalba; +Cc: Git Mailing List, Pavel Roskin, Andy Parkins
In-Reply-To: <e5bfff550706100549y199dcce6o2989744ff55ac8d7@mail.gmail.com>
[-- Attachment #1.1: Type: text/plain, Size: 764 bytes --]
On Sunday 10 June 2007 15:49:29 you wrote:
> On 6/10/07, Ismail Dönmez <ismail@pardus.org.tr> wrote:
> > On Sunday 10 June 2007 15:29:58 Marco Costalba wrote:
> > > On 6/10/07, Ismail Dönmez <ismail@pardus.org.tr> wrote:
> > > > Doesn't seem to compile here. make output is at
> > > > http://cekirdek.pardus.org.tr/~ismail/tmp/qgit4-error.txt . Qt is
> > > > built with no exceptions (as suggested by Trolltech), might that be
> > > > the problem?
>
> Ok. Should be a linker problem with some Qt library. I don't have
> Qt4.3, I still have Qt4.2 but the library should be source and binary
> compatible according to Trolltech.
>
> Please could you post _whole_ the make output?
Attached.
Regards,
ismail
--
Perfect is the enemy of good
[-- Attachment #1.2: qgit4-make-output.txt --]
[-- Type: text/plain, Size: 68259 bytes --]
cd src/ && make -f Makefile
make[1]: Entering directory `/home/cartman/qgit4/src'
make -f Makefile.Release
make[2]: Entering directory `/home/cartman/qgit4/src'
/usr/qt/4/bin/uic commit.ui -o ../build/ui_commit.h
/usr/qt/4/bin/uic console.ui -o ../build/ui_console.h
/usr/qt/4/bin/uic customaction.ui -o ../build/ui_customaction.h
/usr/qt/4/bin/uic fileview.ui -o ../build/ui_fileview.h
/usr/qt/4/bin/uic help.ui -o ../build/ui_help.h
/usr/qt/4/bin/uic mainview.ui -o ../build/ui_mainview.h
/usr/qt/4/bin/uic patchview.ui -o ../build/ui_patchview.h
/usr/qt/4/bin/uic rangeselect.ui -o ../build/ui_rangeselect.h
/usr/qt/4/bin/uic revsview.ui -o ../build/ui_revsview.h
/usr/qt/4/bin/uic settings.ui -o ../build/ui_settings.h
g++ -c -pipe -O2 -g3 -O2 -Wno-non-virtual-dtor -frepo -Wno-long-long -pedantic -Wconversion -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build -o ../build/annotate.o annotate.cpp
annotate.cpp: In member function 'void Annotate::setAnnotation(const QString&, const QString&, const QLinkedList<QString>&, QLinkedList<QString>&, int)':
annotate.cpp:384: warning: empty body in an else-statement
*** 0 errors, 1 warnings
g++ -c -pipe -O2 -g3 -O2 -Wno-non-virtual-dtor -frepo -Wno-long-long -pedantic -Wconversion -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build -o ../build/cache.o cache.cpp
g++ -c -pipe -O2 -g3 -O2 -Wno-non-virtual-dtor -frepo -Wno-long-long -pedantic -Wconversion -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build -o ../build/commitimpl.o commitimpl.cpp
g++ -c -pipe -O2 -g3 -O2 -Wno-non-virtual-dtor -frepo -Wno-long-long -pedantic -Wconversion -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build -o ../build/consoleimpl.o consoleimpl.cpp
g++ -c -pipe -O2 -g3 -O2 -Wno-non-virtual-dtor -frepo -Wno-long-long -pedantic -Wconversion -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build -o ../build/customactionimpl.o customactionimpl.cpp
g++ -c -pipe -O2 -g3 -O2 -Wno-non-virtual-dtor -frepo -Wno-long-long -pedantic -Wconversion -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build -o ../build/dataloader.o dataloader.cpp
g++ -c -pipe -O2 -g3 -O2 -Wno-non-virtual-dtor -frepo -Wno-long-long -pedantic -Wconversion -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build -o ../build/domain.o domain.cpp
g++ -c -pipe -O2 -g3 -O2 -Wno-non-virtual-dtor -frepo -Wno-long-long -pedantic -Wconversion -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build -o ../build/exceptionmanager.o exceptionmanager.cpp
g++ -c -pipe -O2 -g3 -O2 -Wno-non-virtual-dtor -frepo -Wno-long-long -pedantic -Wconversion -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build -o ../build/filecontent.o filecontent.cpp
g++ -c -pipe -O2 -g3 -O2 -Wno-non-virtual-dtor -frepo -Wno-long-long -pedantic -Wconversion -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build -o ../build/filelist.o filelist.cpp
g++ -c -pipe -O2 -g3 -O2 -Wno-non-virtual-dtor -frepo -Wno-long-long -pedantic -Wconversion -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build -o ../build/fileview.o fileview.cpp
g++ -c -pipe -O2 -g3 -O2 -Wno-non-virtual-dtor -frepo -Wno-long-long -pedantic -Wconversion -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build -o ../build/git.o git.cpp
g++ -c -pipe -O2 -g3 -O2 -Wno-non-virtual-dtor -frepo -Wno-long-long -pedantic -Wconversion -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build -o ../build/git_startup.o git_startup.cpp
g++ -c -pipe -O2 -g3 -O2 -Wno-non-virtual-dtor -frepo -Wno-long-long -pedantic -Wconversion -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build -o ../build/lanes.o lanes.cpp
g++ -c -pipe -O2 -g3 -O2 -Wno-non-virtual-dtor -frepo -Wno-long-long -pedantic -Wconversion -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build -o ../build/listview.o listview.cpp
g++ -c -pipe -O2 -g3 -O2 -Wno-non-virtual-dtor -frepo -Wno-long-long -pedantic -Wconversion -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build -o ../build/mainimpl.o mainimpl.cpp
mainimpl.cpp:922: warning: unused parameter 'delta'
*** 0 errors, 1 warnings
g++ -c -pipe -O2 -g3 -O2 -Wno-non-virtual-dtor -frepo -Wno-long-long -pedantic -Wconversion -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build -o ../build/myprocess.o myprocess.cpp
g++ -c -pipe -O2 -g3 -O2 -Wno-non-virtual-dtor -frepo -Wno-long-long -pedantic -Wconversion -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build -o ../build/namespace_def.o namespace_def.cpp
g++ -c -pipe -O2 -g3 -O2 -Wno-non-virtual-dtor -frepo -Wno-long-long -pedantic -Wconversion -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build -o ../build/patchcontent.o patchcontent.cpp
g++ -c -pipe -O2 -g3 -O2 -Wno-non-virtual-dtor -frepo -Wno-long-long -pedantic -Wconversion -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build -o ../build/patchview.o patchview.cpp
g++ -c -pipe -O2 -g3 -O2 -Wno-non-virtual-dtor -frepo -Wno-long-long -pedantic -Wconversion -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build -o ../build/qgit.o qgit.cpp
g++ -c -pipe -O2 -g3 -O2 -Wno-non-virtual-dtor -frepo -Wno-long-long -pedantic -Wconversion -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build -o ../build/rangeselectimpl.o rangeselectimpl.cpp
g++ -c -pipe -O2 -g3 -O2 -Wno-non-virtual-dtor -frepo -Wno-long-long -pedantic -Wconversion -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build -o ../build/revdesc.o revdesc.cpp
g++ -c -pipe -O2 -g3 -O2 -Wno-non-virtual-dtor -frepo -Wno-long-long -pedantic -Wconversion -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build -o ../build/revsview.o revsview.cpp
g++ -c -pipe -O2 -g3 -O2 -Wno-non-virtual-dtor -frepo -Wno-long-long -pedantic -Wconversion -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build -o ../build/settingsimpl.o settingsimpl.cpp
g++ -c -pipe -O2 -g3 -O2 -Wno-non-virtual-dtor -frepo -Wno-long-long -pedantic -Wconversion -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build -o ../build/smartbrowse.o smartbrowse.cpp
g++ -c -pipe -O2 -g3 -O2 -Wno-non-virtual-dtor -frepo -Wno-long-long -pedantic -Wconversion -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build -o ../build/treeview.o treeview.cpp
treeview.cpp: In member function 'void TreeView::updateTree()':
treeview.cpp:284: warning: empty body in an else-statement
*** 0 errors, 1 warnings
/usr/qt/4/bin/moc -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build annotate.h -o ../build/moc_annotate.cpp
g++ -c -pipe -O2 -g3 -O2 -Wno-non-virtual-dtor -frepo -Wno-long-long -pedantic -Wconversion -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build -o ../build/moc_annotate.o ../build/moc_annotate.cpp
/usr/qt/4/bin/moc -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build cache.h -o ../build/moc_cache.cpp
g++ -c -pipe -O2 -g3 -O2 -Wno-non-virtual-dtor -frepo -Wno-long-long -pedantic -Wconversion -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build -o ../build/moc_cache.o ../build/moc_cache.cpp
/usr/qt/4/bin/moc -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build commitimpl.h -o ../build/moc_commitimpl.cpp
g++ -c -pipe -O2 -g3 -O2 -Wno-non-virtual-dtor -frepo -Wno-long-long -pedantic -Wconversion -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build -o ../build/moc_commitimpl.o ../build/moc_commitimpl.cpp
/usr/qt/4/bin/moc -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build consoleimpl.h -o ../build/moc_consoleimpl.cpp
g++ -c -pipe -O2 -g3 -O2 -Wno-non-virtual-dtor -frepo -Wno-long-long -pedantic -Wconversion -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build -o ../build/moc_consoleimpl.o ../build/moc_consoleimpl.cpp
/usr/qt/4/bin/moc -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build customactionimpl.h -o ../build/moc_customactionimpl.cpp
g++ -c -pipe -O2 -g3 -O2 -Wno-non-virtual-dtor -frepo -Wno-long-long -pedantic -Wconversion -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build -o ../build/moc_customactionimpl.o ../build/moc_customactionimpl.cpp
/usr/qt/4/bin/moc -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build dataloader.h -o ../build/moc_dataloader.cpp
g++ -c -pipe -O2 -g3 -O2 -Wno-non-virtual-dtor -frepo -Wno-long-long -pedantic -Wconversion -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build -o ../build/moc_dataloader.o ../build/moc_dataloader.cpp
/usr/qt/4/bin/moc -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build domain.h -o ../build/moc_domain.cpp
g++ -c -pipe -O2 -g3 -O2 -Wno-non-virtual-dtor -frepo -Wno-long-long -pedantic -Wconversion -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build -o ../build/moc_domain.o ../build/moc_domain.cpp
/usr/qt/4/bin/moc -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build filecontent.h -o ../build/moc_filecontent.cpp
g++ -c -pipe -O2 -g3 -O2 -Wno-non-virtual-dtor -frepo -Wno-long-long -pedantic -Wconversion -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build -o ../build/moc_filecontent.o ../build/moc_filecontent.cpp
/usr/qt/4/bin/moc -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build filelist.h -o ../build/moc_filelist.cpp
g++ -c -pipe -O2 -g3 -O2 -Wno-non-virtual-dtor -frepo -Wno-long-long -pedantic -Wconversion -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build -o ../build/moc_filelist.o ../build/moc_filelist.cpp
/usr/qt/4/bin/moc -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build fileview.h -o ../build/moc_fileview.cpp
g++ -c -pipe -O2 -g3 -O2 -Wno-non-virtual-dtor -frepo -Wno-long-long -pedantic -Wconversion -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build -o ../build/moc_fileview.o ../build/moc_fileview.cpp
/usr/qt/4/bin/moc -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build git.h -o ../build/moc_git.cpp
g++ -c -pipe -O2 -g3 -O2 -Wno-non-virtual-dtor -frepo -Wno-long-long -pedantic -Wconversion -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build -o ../build/moc_git.o ../build/moc_git.cpp
/usr/qt/4/bin/moc -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build listview.h -o ../build/moc_listview.cpp
g++ -c -pipe -O2 -g3 -O2 -Wno-non-virtual-dtor -frepo -Wno-long-long -pedantic -Wconversion -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build -o ../build/moc_listview.o ../build/moc_listview.cpp
/usr/qt/4/bin/moc -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build mainimpl.h -o ../build/moc_mainimpl.cpp
g++ -c -pipe -O2 -g3 -O2 -Wno-non-virtual-dtor -frepo -Wno-long-long -pedantic -Wconversion -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build -o ../build/moc_mainimpl.o ../build/moc_mainimpl.cpp
/usr/qt/4/bin/moc -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build myprocess.h -o ../build/moc_myprocess.cpp
g++ -c -pipe -O2 -g3 -O2 -Wno-non-virtual-dtor -frepo -Wno-long-long -pedantic -Wconversion -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build -o ../build/moc_myprocess.o ../build/moc_myprocess.cpp
/usr/qt/4/bin/moc -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build patchcontent.h -o ../build/moc_patchcontent.cpp
g++ -c -pipe -O2 -g3 -O2 -Wno-non-virtual-dtor -frepo -Wno-long-long -pedantic -Wconversion -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build -o ../build/moc_patchcontent.o ../build/moc_patchcontent.cpp
/usr/qt/4/bin/moc -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build patchview.h -o ../build/moc_patchview.cpp
g++ -c -pipe -O2 -g3 -O2 -Wno-non-virtual-dtor -frepo -Wno-long-long -pedantic -Wconversion -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build -o ../build/moc_patchview.o ../build/moc_patchview.cpp
/usr/qt/4/bin/moc -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build rangeselectimpl.h -o ../build/moc_rangeselectimpl.cpp
g++ -c -pipe -O2 -g3 -O2 -Wno-non-virtual-dtor -frepo -Wno-long-long -pedantic -Wconversion -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build -o ../build/moc_rangeselectimpl.o ../build/moc_rangeselectimpl.cpp
/usr/qt/4/bin/moc -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build revdesc.h -o ../build/moc_revdesc.cpp
g++ -c -pipe -O2 -g3 -O2 -Wno-non-virtual-dtor -frepo -Wno-long-long -pedantic -Wconversion -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build -o ../build/moc_revdesc.o ../build/moc_revdesc.cpp
/usr/qt/4/bin/moc -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build revsview.h -o ../build/moc_revsview.cpp
g++ -c -pipe -O2 -g3 -O2 -Wno-non-virtual-dtor -frepo -Wno-long-long -pedantic -Wconversion -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build -o ../build/moc_revsview.o ../build/moc_revsview.cpp
/usr/qt/4/bin/moc -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build settingsimpl.h -o ../build/moc_settingsimpl.cpp
g++ -c -pipe -O2 -g3 -O2 -Wno-non-virtual-dtor -frepo -Wno-long-long -pedantic -Wconversion -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build -o ../build/moc_settingsimpl.o ../build/moc_settingsimpl.cpp
/usr/qt/4/bin/moc -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build smartbrowse.h -o ../build/moc_smartbrowse.cpp
g++ -c -pipe -O2 -g3 -O2 -Wno-non-virtual-dtor -frepo -Wno-long-long -pedantic -Wconversion -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build -o ../build/moc_smartbrowse.o ../build/moc_smartbrowse.cpp
/usr/qt/4/bin/moc -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build treeview.h -o ../build/moc_treeview.cpp
g++ -c -pipe -O2 -g3 -O2 -Wno-non-virtual-dtor -frepo -Wno-long-long -pedantic -Wconversion -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build -o ../build/moc_treeview.o ../build/moc_treeview.cpp
/usr/qt/4/bin/rcc -name icons icons.qrc -o ../build/qrc_icons.cpp
g++ -c -pipe -O2 -g3 -O2 -Wno-non-virtual-dtor -frepo -Wno-long-long -pedantic -Wconversion -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I. -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include -I../src -I../build -I../build -o ../build/qrc_icons.o ../build/qrc_icons.cpp
g++ -Wl,-rpath,/usr/qt/4/lib -o ../bin/qgit ../build/annotate.o ../build/cache.o ../build/commitimpl.o ../build/consoleimpl.o ../build/customactionimpl.o ../build/dataloader.o ../build/domain.o ../build/exceptionmanager.o ../build/filecontent.o ../build/filelist.o ../build/fileview.o ../build/git.o ../build/git_startup.o ../build/lanes.o ../build/listview.o ../build/mainimpl.o ../build/myprocess.o ../build/namespace_def.o ../build/patchcontent.o ../build/patchview.o ../build/qgit.o ../build/rangeselectimpl.o ../build/revdesc.o ../build/revsview.o ../build/settingsimpl.o ../build/smartbrowse.o ../build/treeview.o ../build/moc_annotate.o ../build/moc_cache.o ../build/moc_commitimpl.o ../build/moc_consoleimpl.o ../build/moc_customactionimpl.o ../build/moc_dataloader.o ../build/moc_domain.o ../build/moc_filecontent.o ../build/moc_filelist.o ../build/moc_fileview.o ../build/moc_git.o ../build/moc_listview.o ../build/moc_mainimpl.o ../build/moc_myprocess.o ../build/moc_patchcontent.o ../build/moc_patchview.o ../build/moc_rangeselectimpl.o ../build/moc_revdesc.o ../build/moc_revsview.o ../build/moc_settingsimpl.o ../build/moc_smartbrowse.o ../build/moc_treeview.o ../build/qrc_icons.o -L/usr/qt/4/lib -lQtGui -L/usr/qt/4/lib -L/usr/X11R6/lib -lpng -lSM -lICE -lXi -lXrender -lXrandr -lXfixes -lXcursor -lXinerama -lfreetype -lfontconfig -lXext -lX11 -lQtCore -lz -lm -lrt -ldl -lpthread
../build/annotate.o: In function `QMap<QString, RangeInfo>::operator[](QString const&)':
/usr/qt/4/include/QtCore/qmap.h:450: undefined reference to `QMap<QString, RangeInfo>::mutableFindNode(QMapData::Node**, QString const&) const'
../build/annotate.o: In function `QMap<QString, RangeInfo>::detach()':
/usr/qt/4/include/QtCore/qmap.h:146: undefined reference to `QMap<QString, RangeInfo>::detach_helper()'
../build/annotate.o: In function `~QMap':
/usr/qt/4/include/QtCore/qmap.h:131: undefined reference to `QMap<QString, RangeInfo>::freeData(QMapData*)'
/usr/qt/4/include/QtCore/qmap.h:131: undefined reference to `QMap<QPair<QString, unsigned int>, QString>::freeData(QMapData*)'
/usr/qt/4/include/QtCore/qmap.h:131: undefined reference to `QMap<QString, FileAnnotation>::freeData(QMapData*)'
/usr/qt/4/include/QtCore/qmap.h:131: undefined reference to `QMap<QString, RangeInfo>::freeData(QMapData*)'
/usr/qt/4/include/QtCore/qmap.h:131: undefined reference to `QMap<QPair<QString, unsigned int>, QString>::freeData(QMapData*)'
/usr/qt/4/include/QtCore/qmap.h:131: undefined reference to `QMap<QString, FileAnnotation>::freeData(QMapData*)'
../build/annotate.o: In function `QLinkedList<QString>::detach()':
/usr/qt/4/include/QtCore/qlinkedlist.h:73: undefined reference to `QLinkedList<QString>::detach_helper()'
/usr/qt/4/include/QtCore/qlinkedlist.h:73: undefined reference to `QLinkedList<QString>::detach_helper()'
../build/annotate.o: In function `QMap<QString, FileAnnotation>::detach()':
/usr/qt/4/include/QtCore/qmap.h:146: undefined reference to `QMap<QString, FileAnnotation>::detach_helper()'
/usr/qt/4/include/QtCore/qmap.h:146: undefined reference to `QMap<QString, FileAnnotation>::detach_helper()'
../build/annotate.o: In function `Annotate::setAnnotation(QString const&, QString const&, QLinkedList<QString> const&, QLinkedList<QString>&, int)':
/home/cartman/qgit4/src/annotate.cpp:319: undefined reference to `QLinkedList<QString>::operator=(QLinkedList<QString> const&)'
/home/cartman/qgit4/src/annotate.cpp:354: undefined reference to `QLinkedList<QString>::insert(QLinkedList<QString>::iterator, QString const&)'
/home/cartman/qgit4/src/annotate.cpp:364: undefined reference to `QLinkedList<QString>::erase(QLinkedList<QString>::iterator)'
/home/cartman/qgit4/src/annotate.cpp:357: undefined reference to `QLinkedList<QString>::append(QString const&)'
../build/annotate.o: In function `QLinkedList<QString>::detach()':
/usr/qt/4/include/QtCore/qlinkedlist.h:73: undefined reference to `QLinkedList<QString>::detach_helper()'
/usr/qt/4/include/QtCore/qlinkedlist.h:73: undefined reference to `QLinkedList<QString>::detach_helper()'
/usr/qt/4/include/QtCore/qlinkedlist.h:73: undefined reference to `QLinkedList<QString>::detach_helper()'
/usr/qt/4/include/QtCore/qlinkedlist.h:73: undefined reference to `QLinkedList<QString>::detach_helper()'
/usr/qt/4/include/QtCore/qlinkedlist.h:73: undefined reference to `QLinkedList<QString>::detach_helper()'
../build/annotate.o: In function `Annotate::setAnnotation(QString const&, QString const&, QLinkedList<QString> const&, QLinkedList<QString>&, int)':
/home/cartman/qgit4/src/annotate.cpp:345: undefined reference to `QLinkedList<QString>::clear()'
../build/annotate.o: In function `Annotate::updateCrossRanges(QString const&, bool, int, int, RangeInfo*)':
/home/cartman/qgit4/src/annotate.cpp:499: undefined reference to `QLinkedList<QString>::append(QString const&)'
../build/annotate.o: In function `QLinkedList<QString>::detach()':
/usr/qt/4/include/QtCore/qlinkedlist.h:73: undefined reference to `QLinkedList<QString>::detach_helper()'
/usr/qt/4/include/QtCore/qlinkedlist.h:73: undefined reference to `QLinkedList<QString>::detach_helper()'
/usr/qt/4/include/QtCore/qlinkedlist.h:73: undefined reference to `QLinkedList<QString>::detach_helper()'
../build/annotate.o: In function `QMap<QString, FileAnnotation>::operator[](QString const&)':
/usr/qt/4/include/QtCore/qmap.h:450: undefined reference to `QMap<QString, FileAnnotation>::mutableFindNode(QMapData::Node**, QString const&) const'
../build/annotate.o: In function `Annotate::setInitialAnnotation(QString const&, QString const&, FileAnnotation*)':
/home/cartman/qgit4/src/annotate.cpp:283: undefined reference to `QLinkedList<QString>::append(QString const&)'
../build/annotate.o: In function `QMap<QString, FileAnnotation>::detach()':
/usr/qt/4/include/QtCore/qmap.h:146: undefined reference to `QMap<QString, FileAnnotation>::detach_helper()'
../build/annotate.o: In function `QLinkedList<QString>::detach()':
/usr/qt/4/include/QtCore/qlinkedlist.h:73: undefined reference to `QLinkedList<QString>::detach_helper()'
../build/annotate.o: In function `QMap<QString, FileAnnotation>::detach()':
/usr/qt/4/include/QtCore/qmap.h:146: undefined reference to `QMap<QString, FileAnnotation>::detach_helper()'
../build/annotate.o: In function `QMap<QString, FileAnnotation>::operator[](QString const&)':
/usr/qt/4/include/QtCore/qmap.h:450: undefined reference to `QMap<QString, FileAnnotation>::mutableFindNode(QMapData::Node**, QString const&) const'
../build/annotate.o: In function `QLinkedList<QString>::detach()':
/usr/qt/4/include/QtCore/qlinkedlist.h:73: undefined reference to `QLinkedList<QString>::detach_helper()'
../build/annotate.o: In function `QMap<QString, RangeInfo>::detach()':
/usr/qt/4/include/QtCore/qmap.h:146: undefined reference to `QMap<QString, RangeInfo>::detach_helper()'
../build/annotate.o: In function `QMap<QString, RangeInfo>::insert(QString const&, RangeInfo const&)':
/usr/qt/4/include/QtCore/qmap.h:483: undefined reference to `QMap<QString, RangeInfo>::mutableFindNode(QMapData::Node**, QString const&) const'
../build/annotate.o: In function `QMap<QString, RangeInfo>::detach()':
/usr/qt/4/include/QtCore/qmap.h:146: undefined reference to `QMap<QString, RangeInfo>::detach_helper()'
../build/annotate.o: In function `QMap<QString, RangeInfo>::operator[](QString const&)':
/usr/qt/4/include/QtCore/qmap.h:450: undefined reference to `QMap<QString, RangeInfo>::mutableFindNode(QMapData::Node**, QString const&) const'
../build/annotate.o: In function `QMap<QPair<QString, unsigned int>, QString>::detach()':
/usr/qt/4/include/QtCore/qmap.h:146: undefined reference to `QMap<QPair<QString, unsigned int>, QString>::detach_helper()'
../build/annotate.o: In function `QMap<QPair<QString, unsigned int>, QString>::operator[](QPair<QString, unsigned int> const&)':
/usr/qt/4/include/QtCore/qmap.h:450: undefined reference to `QMap<QPair<QString, unsigned int>, QString>::mutableFindNode(QMapData::Node**, QPair<QString, unsigned int> const&) const'
../build/annotate.o: In function `QMap<QString, RangeInfo>::detach()':
/usr/qt/4/include/QtCore/qmap.h:146: undefined reference to `QMap<QString, RangeInfo>::detach_helper()'
../build/annotate.o: In function `QMap<QString, RangeInfo>::operator[](QString const&)':
/usr/qt/4/include/QtCore/qmap.h:450: undefined reference to `QMap<QString, RangeInfo>::mutableFindNode(QMapData::Node**, QString const&) const'
../build/annotate.o: In function `QMap<QString, RangeInfo>::detach()':
/usr/qt/4/include/QtCore/qmap.h:146: undefined reference to `QMap<QString, RangeInfo>::detach_helper()'
../build/annotate.o: In function `QMap<QString, RangeInfo>::insert(QString const&, RangeInfo const&)':
/usr/qt/4/include/QtCore/qmap.h:483: undefined reference to `QMap<QString, RangeInfo>::mutableFindNode(QMapData::Node**, QString const&) const'
../build/annotate.o: In function `QMap<QString, RangeInfo>::operator=(QMap<QString, RangeInfo> const&)':
/usr/qt/4/include/QtCore/qmap.h:376: undefined reference to `QMap<QString, RangeInfo>::detach_helper()'
/usr/qt/4/include/QtCore/qmap.h:374: undefined reference to `QMap<QString, RangeInfo>::freeData(QMapData*)'
../build/annotate.o: In function `~QMap':
/usr/qt/4/include/QtCore/qmap.h:131: undefined reference to `QMap<QString, RangeInfo>::freeData(QMapData*)'
../build/annotate.o: In function `QMap<QString, RangeInfo>::detach()':
/usr/qt/4/include/QtCore/qmap.h:146: undefined reference to `QMap<QString, RangeInfo>::detach_helper()'
../build/annotate.o: In function `QMap<QString, RangeInfo>::insert(QString const&, RangeInfo const&)':
/usr/qt/4/include/QtCore/qmap.h:483: undefined reference to `QMap<QString, RangeInfo>::mutableFindNode(QMapData::Node**, QString const&) const'
../build/annotate.o: In function `QMap<QString, RangeInfo>::detach()':
/usr/qt/4/include/QtCore/qmap.h:146: undefined reference to `QMap<QString, RangeInfo>::detach_helper()'
../build/annotate.o: In function `QMap<QString, RangeInfo>::operator[](QString const&)':
/usr/qt/4/include/QtCore/qmap.h:450: undefined reference to `QMap<QString, RangeInfo>::mutableFindNode(QMapData::Node**, QString const&) const'
../build/annotate.o: In function `QMap<QPair<QString, unsigned int>, QString>::detach()':
/usr/qt/4/include/QtCore/qmap.h:146: undefined reference to `QMap<QPair<QString, unsigned int>, QString>::detach_helper()'
../build/annotate.o: In function `QMap<QPair<QString, unsigned int>, QString>::operator[](QPair<QString, unsigned int> const&)':
/usr/qt/4/include/QtCore/qmap.h:450: undefined reference to `QMap<QPair<QString, unsigned int>, QString>::mutableFindNode(QMapData::Node**, QPair<QString, unsigned int> const&) const'
../build/annotate.o: In function `QMap<QString, RangeInfo>::detach()':
/usr/qt/4/include/QtCore/qmap.h:146: undefined reference to `QMap<QString, RangeInfo>::detach_helper()'
../build/annotate.o: In function `QMap<QString, RangeInfo>::insert(QString const&, RangeInfo const&)':
/usr/qt/4/include/QtCore/qmap.h:483: undefined reference to `QMap<QString, RangeInfo>::mutableFindNode(QMapData::Node**, QString const&) const'
../build/annotate.o: In function `~QMap':
/usr/qt/4/include/QtCore/qmap.h:131: undefined reference to `QMap<QString, RangeInfo>::freeData(QMapData*)'
/usr/qt/4/include/QtCore/qmap.h:131: undefined reference to `QMap<QString, RangeInfo>::freeData(QMapData*)'
../build/annotate.o: In function `QMap<QString, RangeInfo>::detach()':
/usr/qt/4/include/QtCore/qmap.h:146: undefined reference to `QMap<QString, RangeInfo>::detach_helper()'
../build/annotate.o: In function `QMap<QString, RangeInfo>::operator[](QString const&)':
/usr/qt/4/include/QtCore/qmap.h:450: undefined reference to `QMap<QString, RangeInfo>::mutableFindNode(QMapData::Node**, QString const&) const'
../build/annotate.o: In function `QMap<QString, RangeInfo>::detach()':
/usr/qt/4/include/QtCore/qmap.h:146: undefined reference to `QMap<QString, RangeInfo>::detach_helper()'
../build/annotate.o: In function `QMap<QString, RangeInfo>::operator[](QString const&)':
/usr/qt/4/include/QtCore/qmap.h:450: undefined reference to `QMap<QString, RangeInfo>::mutableFindNode(QMapData::Node**, QString const&) const'
../build/annotate.o: In function `QMap<QString, RangeInfo>::operator=(QMap<QString, RangeInfo> const&)':
/usr/qt/4/include/QtCore/qmap.h:376: undefined reference to `QMap<QString, RangeInfo>::detach_helper()'
/usr/qt/4/include/QtCore/qmap.h:374: undefined reference to `QMap<QString, RangeInfo>::freeData(QMapData*)'
/usr/qt/4/include/QtCore/qmap.h:376: undefined reference to `QMap<QString, RangeInfo>::detach_helper()'
/usr/qt/4/include/QtCore/qmap.h:374: undefined reference to `QMap<QString, RangeInfo>::freeData(QMapData*)'
/usr/qt/4/include/QtCore/qmap.h:374: undefined reference to `QMap<QString, RangeInfo>::freeData(QMapData*)'
/usr/qt/4/include/QtCore/qmap.h:376: undefined reference to `QMap<QString, RangeInfo>::detach_helper()'
../build/annotate.o: In function `~QMap':
/usr/qt/4/include/QtCore/qmap.h:131: undefined reference to `QMap<QString, RangeInfo>::freeData(QMapData*)'
../build/annotate.o: In function `QMap<QString, FileAnnotation>::detach()':
/usr/qt/4/include/QtCore/qmap.h:146: undefined reference to `QMap<QString, FileAnnotation>::detach_helper()'
/usr/qt/4/include/QtCore/qmap.h:146: undefined reference to `QMap<QString, FileAnnotation>::detach_helper()'
/usr/qt/4/include/QtCore/qmap.h:146: undefined reference to `QMap<QString, FileAnnotation>::detach_helper()'
../build/annotate.o: In function `QMap<QString, FileAnnotation>::operator[](QString const&)':
/usr/qt/4/include/QtCore/qmap.h:450: undefined reference to `QMap<QString, FileAnnotation>::mutableFindNode(QMapData::Node**, QString const&) const'
../build/annotate.o: In function `QMap<QPair<QString, unsigned int>, QString>::detach()':
/usr/qt/4/include/QtCore/qmap.h:146: undefined reference to `QMap<QPair<QString, unsigned int>, QString>::detach_helper()'
../build/annotate.o: In function `QMap<QPair<QString, unsigned int>, QString>::insert(QPair<QString, unsigned int> const&, QString const&)':
/usr/qt/4/include/QtCore/qmap.h:483: undefined reference to `QMap<QPair<QString, unsigned int>, QString>::mutableFindNode(QMapData::Node**, QPair<QString, unsigned int> const&) const'
../build/annotate.o: In function `QLinkedList<QString>::detach()':
/usr/qt/4/include/QtCore/qlinkedlist.h:73: undefined reference to `QLinkedList<QString>::detach_helper()'
../build/annotate.o: In function `Annotate::doAnnotate(QString const&, QString const&, bool)':
/home/cartman/qgit4/src/annotate.cpp:246: undefined reference to `QLinkedList<QString>::operator=(QLinkedList<QString> const&)'
../build/annotate.o: In function `QMap<QString, FileAnnotation>::detach()':
/usr/qt/4/include/QtCore/qmap.h:146: undefined reference to `QMap<QString, FileAnnotation>::detach_helper()'
/usr/qt/4/include/QtCore/qmap.h:146: undefined reference to `QMap<QString, FileAnnotation>::detach_helper()'
../build/annotate.o: In function `QMap<QPair<QString, unsigned int>, QString>::clear()':
/usr/qt/4/include/QtCore/qmap.h:131: undefined reference to `QMap<QPair<QString, unsigned int>, QString>::freeData(QMapData*)'
/usr/qt/4/include/QtCore/qmap.h:374: undefined reference to `QMap<QPair<QString, unsigned int>, QString>::freeData(QMapData*)'
/usr/qt/4/include/QtCore/qmap.h:376: undefined reference to `QMap<QPair<QString, unsigned int>, QString>::detach_helper()'
../build/annotate.o: In function `~QMap':
/usr/qt/4/include/QtCore/qmap.h:131: undefined reference to `QMap<QPair<QString, unsigned int>, QString>::freeData(QMapData*)'
../build/annotate.o: In function `QMap<QString, FileAnnotation>::detach()':
/usr/qt/4/include/QtCore/qmap.h:146: undefined reference to `QMap<QString, FileAnnotation>::detach_helper()'
../build/annotate.o: In function `QMap<QString, FileAnnotation>::insert(QString const&, FileAnnotation const&)':
/usr/qt/4/include/QtCore/qmap.h:483: undefined reference to `QMap<QString, FileAnnotation>::mutableFindNode(QMapData::Node**, QString const&) const'
../build/annotate.o: In function `operator=':
/home/cartman/qgit4/src/common.h:376: undefined reference to `QLinkedList<QString>::operator=(QLinkedList<QString> const&)'
../build/annotate.o: In function `QLinkedList<QString>::detach()':
/usr/qt/4/include/QtCore/qlinkedlist.h:73: undefined reference to `QLinkedList<QString>::detach_helper()'
../build/cache.o: In function `Cache::load(QString const&, QHash<QString, RevFile const*>&, QVector<QString>&, QVector<QString>&)':
/home/cartman/qgit4/src/cache.cpp:144: undefined reference to `QVector<QString>::resize(int)'
/home/cartman/qgit4/src/cache.cpp:149: undefined reference to `QVector<QString>::resize(int)'
/home/cartman/qgit4/src/cache.cpp:180: undefined reference to `QDataStream& operator>><QString>(QDataStream&, QVector<QString>&)'
../build/cache.o: In function `Cache::save(QString const&, QHash<QString, RevFile const*> const&, QVector<QString> const&, QVector<QString> const&)':
/home/cartman/qgit4/src/cache.cpp:101: undefined reference to `QDataStream& operator<< <QString>(QDataStream&, QVector<QString> const&)'
../build/commitimpl.o: In function `CommitImpl::closeEvent(QCloseEvent*)':
/home/cartman/qgit4/src/commitimpl.cpp:108: undefined reference to `QVector<QSplitter*>::QVector(int, QSplitter* const&)'
../build/commitimpl.o: In function `~QVector':
/usr/qt/4/include/QtCore/qvector.h:78: undefined reference to `QVector<QSplitter*>::free(QVectorTypedData<QSplitter*>*)'
/usr/qt/4/include/QtCore/qvector.h:78: undefined reference to `QVector<QSplitter*>::free(QVectorTypedData<QSplitter*>*)'
../build/commitimpl.o: In function `CommitImpl':
/home/cartman/qgit4/src/commitimpl.cpp:32: undefined reference to `QVector<QSplitter*>::QVector(int, QSplitter* const&)'
../build/commitimpl.o: In function `~QVector':
/usr/qt/4/include/QtCore/qvector.h:78: undefined reference to `QVector<QSplitter*>::free(QVectorTypedData<QSplitter*>*)'
/usr/qt/4/include/QtCore/qvector.h:78: undefined reference to `QVector<QSplitter*>::free(QVectorTypedData<QSplitter*>*)'
../build/commitimpl.o: In function `CommitImpl':
/home/cartman/qgit4/src/commitimpl.cpp:32: undefined reference to `QVector<QSplitter*>::QVector(int, QSplitter* const&)'
../build/commitimpl.o: In function `~QVector':
/usr/qt/4/include/QtCore/qvector.h:78: undefined reference to `QVector<QSplitter*>::free(QVectorTypedData<QSplitter*>*)'
/usr/qt/4/include/QtCore/qvector.h:78: undefined reference to `QVector<QSplitter*>::free(QVectorTypedData<QSplitter*>*)'
../build/dataloader.o: In function `DataLoader::parseSingleBuffer(QByteArray const&)':
/home/cartman/qgit4/src/dataloader.cpp:136: undefined reference to `QList<QByteArray*>::append(QByteArray* const&)'
../build/dataloader.o: In function `DataLoader::readNewData(bool)':
/home/cartman/qgit4/src/dataloader.cpp:238: undefined reference to `QList<QByteArray*>::append(QByteArray* const&)'
../build/exceptionmanager.o: In function `QList<ExceptionManager::Exception>::detach()':
/usr/qt/4/include/QtCore/qlist.h:99: undefined reference to `QList<ExceptionManager::Exception>::detach_helper()'
/usr/qt/4/include/QtCore/qlist.h:99: undefined reference to `QList<ExceptionManager::Exception>::detach_helper()'
/usr/qt/4/include/QtCore/qlist.h:99: undefined reference to `QList<ExceptionManager::Exception>::detach_helper()'
../build/exceptionmanager.o: In function `QMap<int, QList<ExceptionManager::Exception> >::detach()':
/usr/qt/4/include/QtCore/qmap.h:146: undefined reference to `QMap<int, QList<ExceptionManager::Exception> >::detach_helper()'
../build/exceptionmanager.o: In function `QList<ExceptionManager::Exception>::detach()':
/usr/qt/4/include/QtCore/qlist.h:99: undefined reference to `QList<ExceptionManager::Exception>::detach_helper()'
/usr/qt/4/include/QtCore/qlist.h:99: undefined reference to `QList<ExceptionManager::Exception>::detach_helper()'
../build/exceptionmanager.o: In function `QMap<int, QList<ExceptionManager::Exception> >::detach()':
/usr/qt/4/include/QtCore/qmap.h:146: undefined reference to `QMap<int, QList<ExceptionManager::Exception> >::detach_helper()'
../build/exceptionmanager.o: In function `QList<ExceptionManager::Exception>::detach()':
/usr/qt/4/include/QtCore/qlist.h:99: undefined reference to `QList<ExceptionManager::Exception>::detach_helper()'
/usr/qt/4/include/QtCore/qlist.h:99: undefined reference to `QList<ExceptionManager::Exception>::detach_helper()'
../build/exceptionmanager.o: In function `QMap<int, QList<ExceptionManager::Exception> >::operator[](int const&)':
/usr/qt/4/include/QtCore/qmap.h:450: undefined reference to `QMap<int, QList<ExceptionManager::Exception> >::mutableFindNode(QMapData::Node**, int const&) const'
../build/exceptionmanager.o: In function `QList<ExceptionManager::Exception>::operator=(QList<ExceptionManager::Exception> const&)':
/usr/qt/4/include/QtCore/qlist.h:357: undefined reference to `QList<ExceptionManager::Exception>::detach_helper()'
../build/exceptionmanager.o: In function `ExceptionManager::restoreThrowableSet(int)':
/home/cartman/qgit4/src/exceptionmanager.cpp:143: undefined reference to `QMap<int, QList<ExceptionManager::Exception> >::remove(int const&)'
../build/exceptionmanager.o: In function `QMap<int, QList<ExceptionManager::Exception> >::detach()':
/usr/qt/4/include/QtCore/qmap.h:146: undefined reference to `QMap<int, QList<ExceptionManager::Exception> >::detach_helper()'
../build/exceptionmanager.o: In function `QMap<int, QList<ExceptionManager::Exception> >::node_create(QMapData*, QMapData::Node**, int const&, QList<ExceptionManager::Exception> const&)':
/usr/qt/4/include/QtCore/qlist.h:91: undefined reference to `QList<ExceptionManager::Exception>::detach_helper()'
../build/exceptionmanager.o: In function `QMap<int, QList<ExceptionManager::Exception> >::insert(int const&, QList<ExceptionManager::Exception> const&)':
/usr/qt/4/include/QtCore/qmap.h:483: undefined reference to `QMap<int, QList<ExceptionManager::Exception> >::mutableFindNode(QMapData::Node**, int const&) const'
../build/exceptionmanager.o: In function `ExceptionManager::saveThrowableSet()':
/home/cartman/qgit4/src/exceptionmanager.cpp:131: undefined reference to `QList<ExceptionManager::Exception>::clear()'
../build/exceptionmanager.o: In function `QList<ExceptionManager::Exception>::operator=(QList<ExceptionManager::Exception> const&)':
/usr/qt/4/include/QtCore/qlist.h:357: undefined reference to `QList<ExceptionManager::Exception>::detach_helper()'
../build/exceptionmanager.o: In function `QMap<int, QList<ExceptionManager::Exception> >::detach()':
/usr/qt/4/include/QtCore/qmap.h:146: undefined reference to `QMap<int, QList<ExceptionManager::Exception> >::detach_helper()'
../build/exceptionmanager.o: In function `QList':
/usr/qt/4/include/QtCore/qlist.h:91: undefined reference to `QList<ExceptionManager::Exception>::detach_helper()'
../build/exceptionmanager.o: In function `QList<ExceptionManager::Exception>::detach()':
/usr/qt/4/include/QtCore/qlist.h:99: undefined reference to `QList<ExceptionManager::Exception>::detach_helper()'
/usr/qt/4/include/QtCore/qlist.h:99: undefined reference to `QList<ExceptionManager::Exception>::detach_helper()'
../build/git_startup.o: In function `qDeleteAll<RevFileMap>':
/usr/qt/4/include/QtCore/qalgorithms.h:338: undefined reference to `void qDeleteAll<QHash<QString, RevFile const*>::const_iterator>(QHash<QString, RevFile const*>::const_iterator, QHash<QString, RevFile const*>::const_iterator)'
../build/git_startup.o: In function `Git::stop(bool)':
/home/cartman/qgit4/src/git_startup.cpp:498: undefined reference to `QHash<QString, RevFile const*>::remove(QString const&)'
../build/git_startup.o: In function `Git::mergeNearTags(bool, Rev*, Rev const*, QMap<QPair<unsigned int, unsigned int>, bool> const&)':
/home/cartman/qgit4/src/git_startup.cpp:1051: undefined reference to `QPair<unsigned int, unsigned int> qMakePair<unsigned int, unsigned int>(unsigned int const&, unsigned int const&)'
../build/git_startup.o: In function `QMap<unsigned int, QVector<int> >::detach()':
/usr/qt/4/include/QtCore/qmap.h:146: undefined reference to `QMap<unsigned int, QVector<int> >::detach_helper()'
../build/git_startup.o: In function `QMap<unsigned int, QVector<int> >::operator[](unsigned int const&)':
/usr/qt/4/include/QtCore/qmap.h:450: undefined reference to `QMap<unsigned int, QVector<int> >::mutableFindNode(QMapData::Node**, unsigned int const&) const'
../build/git_startup.o: In function `Git::updateDescMap(Rev const*, unsigned int, QMap<QPair<unsigned int, unsigned int>, bool>&, QMap<unsigned int, QVector<int> >&)':
/home/cartman/qgit4/src/git_startup.cpp:986: undefined reference to `QPair<unsigned int, unsigned int> qMakePair<unsigned int, unsigned int>(unsigned int const&, unsigned int const&)'
/home/cartman/qgit4/src/git_startup.cpp:987: undefined reference to `QPair<unsigned int, unsigned int> qMakePair<unsigned int, unsigned int>(unsigned int const&, unsigned int const&)'
../build/git_startup.o: In function `QMap<QPair<unsigned int, unsigned int>, bool>::detach()':
/usr/qt/4/include/QtCore/qmap.h:146: undefined reference to `QMap<QPair<unsigned int, unsigned int>, bool>::detach_helper()'
../build/git_startup.o: In function `QMap<QPair<unsigned int, unsigned int>, bool>::insert(QPair<unsigned int, unsigned int> const&, bool const&)':
/usr/qt/4/include/QtCore/qmap.h:483: undefined reference to `QMap<QPair<unsigned int, unsigned int>, bool>::mutableFindNode(QMapData::Node**, QPair<unsigned int, unsigned int> const&) const'
../build/git_startup.o: In function `QMap<QPair<unsigned int, unsigned int>, bool>::detach()':
/usr/qt/4/include/QtCore/qmap.h:146: undefined reference to `QMap<QPair<unsigned int, unsigned int>, bool>::detach_helper()'
../build/git_startup.o: In function `QMap<QPair<unsigned int, unsigned int>, bool>::insert(QPair<unsigned int, unsigned int> const&, bool const&)':
/usr/qt/4/include/QtCore/qmap.h:483: undefined reference to `QMap<QPair<unsigned int, unsigned int>, bool>::mutableFindNode(QMapData::Node**, QPair<unsigned int, unsigned int> const&) const'
../build/git_startup.o: In function `QMap<unsigned int, QVector<int> >::detach()':
/usr/qt/4/include/QtCore/qmap.h:146: undefined reference to `QMap<unsigned int, QVector<int> >::detach_helper()'
../build/git_startup.o: In function `QMap<unsigned int, QVector<int> >::insert(unsigned int const&, QVector<int> const&)':
/usr/qt/4/include/QtCore/qmap.h:483: undefined reference to `QMap<unsigned int, QVector<int> >::mutableFindNode(QMapData::Node**, unsigned int const&) const'
../build/git_startup.o: In function `~QMap':
/usr/qt/4/include/QtCore/qmap.h:131: undefined reference to `QMap<QPair<unsigned int, unsigned int>, bool>::freeData(QMapData*)'
/usr/qt/4/include/QtCore/qmap.h:131: undefined reference to `QMap<unsigned int, QVector<int> >::freeData(QMapData*)'
/usr/qt/4/include/QtCore/qmap.h:131: undefined reference to `QMap<QPair<unsigned int, unsigned int>, bool>::freeData(QMapData*)'
/usr/qt/4/include/QtCore/qmap.h:131: undefined reference to `QMap<unsigned int, QVector<int> >::freeData(QMapData*)'
../build/git_startup.o: In function `Git::clearRevs()':
/home/cartman/qgit4/src/git_startup.cpp:515: undefined reference to `QHash<QString, RevFile const*>::remove(QString const&)'
../build/git_startup.o: In function `Git::setExtStatus(RevFile&, QString const&, int)':
/home/cartman/qgit4/src/git_startup.cpp:396: undefined reference to `QVector<QString>::resize(int)'
/home/cartman/qgit4/src/git_startup.cpp:404: undefined reference to `QVector<QString>::resize(int)'
../build/git_startup.o: In function `Git::lookupReference(QString const&, bool)':
/home/cartman/qgit4/src/git_startup.cpp:87: undefined reference to `QMap<QString, Git::Reference>::insert(QString const&, Git::Reference const&)'
../build/git_startup.o: In function `Git::getRefs()':
/home/cartman/qgit4/src/git_startup.cpp:162: undefined reference to `QMap<QString, Git::Reference>::remove(QString const&)'
../build/git_startup.o: In function `Git::fakeWorkDirRev(QString const&, QString const&, QString const&, int, FileHistory*)':
/home/cartman/qgit4/src/git_startup.cpp:259: undefined reference to `QList<QByteArray*>::append(QByteArray* const&)'
../build/mainimpl.o: In function `MainImpl::updateGlobalActions(bool)':
/home/cartman/qgit4/src/mainimpl.cpp:337: undefined reference to `PatchView* MainImpl::firstTab<PatchView>(QWidget*)'
../build/mainimpl.o: In function `MainImpl::updateContextActions(QString const&, QString const&, bool, bool)':
/home/cartman/qgit4/src/mainimpl.cpp:352: undefined reference to `FileView* MainImpl::firstTab<FileView>(QWidget*)'
../build/mainimpl.o: In function `MainImpl::saveCurrentGeometry()':
/home/cartman/qgit4/src/mainimpl.cpp:157: undefined reference to `QVector<QSplitter*>::QVector(int, QSplitter* const&)'
../build/mainimpl.o: In function `~QVector':
/usr/qt/4/include/QtCore/qvector.h:78: undefined reference to `QVector<QSplitter*>::free(QVectorTypedData<QSplitter*>*)'
/usr/qt/4/include/QtCore/qvector.h:78: undefined reference to `QVector<QSplitter*>::free(QVectorTypedData<QSplitter*>*)'
../build/mainimpl.o: In function `MainImpl::closeEvent(QCloseEvent*)':
/home/cartman/qgit4/src/mainimpl.cpp:1707: undefined reference to `QList<QProcess*>::~QList()'
../build/mainimpl.o: In function `findChildren<QProcess*>':
/usr/qt/4/include/QtCore/qobject.h:389: undefined reference to `QList<QProcess*>::~QList()'
../build/mainimpl.o: In function `MainImpl::currentTabType(Domain**)':
/home/cartman/qgit4/src/mainimpl.cpp:744: undefined reference to `QList<PatchView*>* MainImpl::getTabs<PatchView>(QWidget*)'
/home/cartman/qgit4/src/mainimpl.cpp:747: undefined reference to `QList<PatchView*>::~QList()'
../build/mainimpl.o: In function `QList<PatchView*>::detach()':
/usr/qt/4/include/QtCore/qlist.h:99: undefined reference to `QList<PatchView*>::detach_helper()'
../build/mainimpl.o: In function `MainImpl::currentTabType(Domain**)':
/home/cartman/qgit4/src/mainimpl.cpp:750: undefined reference to `QList<PatchView*>::~QList()'
/home/cartman/qgit4/src/mainimpl.cpp:751: undefined reference to `QList<FileView*>* MainImpl::getTabs<FileView>(QWidget*)'
/home/cartman/qgit4/src/mainimpl.cpp:754: undefined reference to `QList<FileView*>::~QList()'
../build/mainimpl.o: In function `QList<FileView*>::detach()':
/usr/qt/4/include/QtCore/qlist.h:99: undefined reference to `QList<FileView*>::detach_helper()'
../build/mainimpl.o: In function `MainImpl::currentTabType(Domain**)':
/home/cartman/qgit4/src/mainimpl.cpp:760: undefined reference to `QList<FileView*>::~QList()'
../build/mainimpl.o: In function `MainImpl::ActViewFile_activated()':
/home/cartman/qgit4/src/mainimpl.cpp:438: undefined reference to `FileView* MainImpl::firstTab<FileView>(QWidget*)'
../build/mainimpl.o: In function `MainImpl::pushButtonCloseTab_clicked()':
/home/cartman/qgit4/src/mainimpl.cpp:418: undefined reference to `FileView* MainImpl::firstTab<FileView>(QWidget*)'
/home/cartman/qgit4/src/mainimpl.cpp:414: undefined reference to `PatchView* MainImpl::firstTab<PatchView>(QWidget*)'
../build/mainimpl.o: In function `MainImpl::shortCutActivated()':
/home/cartman/qgit4/src/mainimpl.cpp:915: undefined reference to `PatchView* MainImpl::firstTab<PatchView>(QWidget*)'
/home/cartman/qgit4/src/mainimpl.cpp:915: undefined reference to `FileView* MainImpl::firstTab<FileView>(QWidget*)'
../build/mainimpl.o: In function `MainImpl':
/home/cartman/qgit4/src/mainimpl.cpp:106: undefined reference to `QVector<QSplitter*>::QVector(int, QSplitter* const&)'
../build/mainimpl.o: In function `~QVector':
/usr/qt/4/include/QtCore/qvector.h:78: undefined reference to `QVector<QSplitter*>::free(QVectorTypedData<QSplitter*>*)'
/usr/qt/4/include/QtCore/qvector.h:78: undefined reference to `QVector<QSplitter*>::free(QVectorTypedData<QSplitter*>*)'
../build/mainimpl.o: In function `MainImpl':
/home/cartman/qgit4/src/mainimpl.cpp:106: undefined reference to `QVector<QSplitter*>::QVector(int, QSplitter* const&)'
../build/mainimpl.o: In function `~QVector':
/usr/qt/4/include/QtCore/qvector.h:78: undefined reference to `QVector<QSplitter*>::free(QVectorTypedData<QSplitter*>*)'
/usr/qt/4/include/QtCore/qvector.h:78: undefined reference to `QVector<QSplitter*>::free(QVectorTypedData<QSplitter*>*)'
../build/namespace_def.o: In function `~QHash':
/usr/qt/4/include/QtCore/qhash.h:238: undefined reference to `QHash<QString, QPixmap const*>::freeData(QHashData*)'
../build/namespace_def.o: In function `qDeleteAll<QHash<QString, const QPixmap*> >':
/usr/qt/4/include/QtCore/qalgorithms.h:338: undefined reference to `void qDeleteAll<QHash<QString, QPixmap const*>::const_iterator>(QHash<QString, QPixmap const*>::const_iterator, QHash<QString, QPixmap const*>::const_iterator)'
../build/namespace_def.o: In function `QHash<QString, QPixmap const*>::contains(QString const&) const':
/usr/qt/4/include/QtCore/qhash.h:814: undefined reference to `QHash<QString, QPixmap const*>::findNode(QString const&, unsigned int*) const'
../build/namespace_def.o: In function `QHash<QString, QPixmap const*>::value(QString const&) const':
/usr/qt/4/include/QtCore/qhash.h:560: undefined reference to `QHash<QString, QPixmap const*>::findNode(QString const&, unsigned int*) const'
/usr/qt/4/include/QtCore/qhash.h:560: undefined reference to `QHash<QString, QPixmap const*>::findNode(QString const&, unsigned int*) const'
../build/namespace_def.o: In function `QHash<QString, QPixmap const*>::insert(QString const&, QPixmap const* const&)':
/usr/qt/4/include/QtCore/qhash.h:706: undefined reference to `QHash<QString, QPixmap const*>::findNode(QString const&, unsigned int*) const'
/usr/qt/4/include/QtCore/qhash.h:706: undefined reference to `QHash<QString, QPixmap const*>::findNode(QString const&, unsigned int*) const'
../build/namespace_def.o:/usr/qt/4/include/QtCore/qhash.h:706: more undefined references to `QHash<QString, QPixmap const*>::findNode(QString const&, unsigned int*) const' follow
../build/namespace_def.o: In function `QHash<QString, QPixmap const*>::detach()':
/usr/qt/4/include/QtCore/qhash.h:253: undefined reference to `QHash<QString, QPixmap const*>::detach_helper()'
/usr/qt/4/include/QtCore/qhash.h:253: undefined reference to `QHash<QString, QPixmap const*>::detach_helper()'
/usr/qt/4/include/QtCore/qhash.h:253: undefined reference to `QHash<QString, QPixmap const*>::detach_helper()'
/usr/qt/4/include/QtCore/qhash.h:253: undefined reference to `QHash<QString, QPixmap const*>::detach_helper()'
/usr/qt/4/include/QtCore/qhash.h:253: undefined reference to `QHash<QString, QPixmap const*>::detach_helper()'
../build/namespace_def.o:/usr/qt/4/include/QtCore/qhash.h:253: more undefined references to `QHash<QString, QPixmap const*>::detach_helper()' follow
../build/revsview.o: In function `QVector<QSplitter*>::operator<<(QSplitter* const&)':
/usr/qt/4/include/QtCore/qvector.h:246: undefined reference to `QVector<QSplitter*>::append(QSplitter* const&)'
../build/revsview.o: In function `QVector<QSplitter*>::operator<<(QSplitter* const&)':
/home/cartman/qgit4/src/revsview.cpp:84: undefined reference to `QVector<QSplitter*>::append(QSplitter* const&)'
../build/revsview.o: In function `~QVector':
/usr/qt/4/include/QtCore/qvector.h:78: undefined reference to `QVector<QSplitter*>::free(QVectorTypedData<QSplitter*>*)'
/usr/qt/4/include/QtCore/qvector.h:78: undefined reference to `QVector<QSplitter*>::free(QVectorTypedData<QSplitter*>*)'
../build/revsview.o: In function `QVector<QSplitter*>::operator<<(QSplitter* const&)':
/usr/qt/4/include/QtCore/qvector.h:246: undefined reference to `QVector<QSplitter*>::append(QSplitter* const&)'
../build/revsview.o: In function `QVector<QSplitter*>::operator<<(QSplitter* const&)':
/home/cartman/qgit4/src/revsview.cpp:84: undefined reference to `QVector<QSplitter*>::append(QSplitter* const&)'
../build/revsview.o: In function `~QVector':
/usr/qt/4/include/QtCore/qvector.h:78: undefined reference to `QVector<QSplitter*>::free(QVectorTypedData<QSplitter*>*)'
/usr/qt/4/include/QtCore/qvector.h:78: undefined reference to `QVector<QSplitter*>::free(QVectorTypedData<QSplitter*>*)'
../build/revsview.o: In function `QVector<QSplitter*>::operator<<(QSplitter* const&)':
/usr/qt/4/include/QtCore/qvector.h:246: undefined reference to `QVector<QSplitter*>::append(QSplitter* const&)'
../build/revsview.o: In function `QVector<QSplitter*>::operator<<(QSplitter* const&)':
/home/cartman/qgit4/src/revsview.cpp:84: undefined reference to `QVector<QSplitter*>::append(QSplitter* const&)'
../build/revsview.o: In function `~QVector':
/usr/qt/4/include/QtCore/qvector.h:78: undefined reference to `QVector<QSplitter*>::free(QVectorTypedData<QSplitter*>*)'
/usr/qt/4/include/QtCore/qvector.h:78: undefined reference to `QVector<QSplitter*>::free(QVectorTypedData<QSplitter*>*)'
../build/revsview.o: In function `QVector<QSplitter*>::operator<<(QSplitter* const&)':
/usr/qt/4/include/QtCore/qvector.h:246: undefined reference to `QVector<QSplitter*>::append(QSplitter* const&)'
../build/revsview.o: In function `QVector<QSplitter*>::operator<<(QSplitter* const&)':
/home/cartman/qgit4/src/revsview.cpp:41: undefined reference to `QVector<QSplitter*>::append(QSplitter* const&)'
../build/revsview.o: In function `~QVector':
/usr/qt/4/include/QtCore/qvector.h:78: undefined reference to `QVector<QSplitter*>::free(QVectorTypedData<QSplitter*>*)'
/usr/qt/4/include/QtCore/qvector.h:78: undefined reference to `QVector<QSplitter*>::free(QVectorTypedData<QSplitter*>*)'
../build/revsview.o: In function `QVector<QSplitter*>::operator<<(QSplitter* const&)':
/usr/qt/4/include/QtCore/qvector.h:246: undefined reference to `QVector<QSplitter*>::append(QSplitter* const&)'
../build/revsview.o: In function `QVector<QSplitter*>::operator<<(QSplitter* const&)':
/home/cartman/qgit4/src/revsview.cpp:41: undefined reference to `QVector<QSplitter*>::append(QSplitter* const&)'
../build/revsview.o: In function `~QVector':
/usr/qt/4/include/QtCore/qvector.h:78: undefined reference to `QVector<QSplitter*>::free(QVectorTypedData<QSplitter*>*)'
/usr/qt/4/include/QtCore/qvector.h:78: undefined reference to `QVector<QSplitter*>::free(QVectorTypedData<QSplitter*>*)'
../build/moc_annotate.o: In function `~QMap':
/usr/qt/4/include/QtCore/qmap.h:131: undefined reference to `QMap<QPair<QString, unsigned int>, QString>::freeData(QMapData*)'
/usr/qt/4/include/QtCore/qmap.h:131: undefined reference to `QMap<QString, FileAnnotation>::freeData(QMapData*)'
/usr/qt/4/include/QtCore/qmap.h:131: undefined reference to `QMap<QString, RangeInfo>::freeData(QMapData*)'
/usr/qt/4/include/QtCore/qmap.h:131: undefined reference to `QMap<QString, FileAnnotation>::freeData(QMapData*)'
/usr/qt/4/include/QtCore/qmap.h:131: undefined reference to `QMap<QPair<QString, unsigned int>, QString>::freeData(QMapData*)'
/usr/qt/4/include/QtCore/qmap.h:131: undefined reference to `QMap<QPair<QString, unsigned int>, QString>::freeData(QMapData*)'
/usr/qt/4/include/QtCore/qmap.h:131: undefined reference to `QMap<QString, FileAnnotation>::freeData(QMapData*)'
/usr/qt/4/include/QtCore/qmap.h:131: undefined reference to `QMap<QString, RangeInfo>::freeData(QMapData*)'
/usr/qt/4/include/QtCore/qmap.h:131: undefined reference to `QMap<QString, FileAnnotation>::freeData(QMapData*)'
/usr/qt/4/include/QtCore/qmap.h:131: undefined reference to `QMap<QPair<QString, unsigned int>, QString>::freeData(QMapData*)'
collect2: ld returned 1 exit status
make[2]: *** [../bin/qgit] Error 1
make[2]: Leaving directory `/home/cartman/qgit4/src'
make[1]: *** [release] Error 2
make[1]: Leaving directory `/home/cartman/qgit4/src'
make: *** [sub-src-make_default] Error 2
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 827 bytes --]
^ permalink raw reply
* Re: [PATCH 2/3] Add gitmodules(5)
From: Lars Hjemli @ 2007-06-10 12:51 UTC (permalink / raw)
To: skimo; +Cc: Frank Lichtenheld, Junio C Hamano, Johannes Schindelin, git
In-Reply-To: <20070610124052.GE955MdfPADPa@greensroom.kotnet.org>
On 6/10/07, Sven Verdoolaege <skimo@kotnet.org> wrote:
> On Sun, Jun 10, 2007 at 02:30:58PM +0200, Lars Hjemli wrote:
> > On 6/10/07, Sven Verdoolaege <skimo@kotnet.org> wrote:
> > >On Sun, Jun 10, 2007 at 10:58:29AM +0200, Lars Hjemli wrote:
> > >> >For .path a "Defaults to name of submodule" probably wouldn't hurt.
> > >>
> > >> True. But there might be some issues with this rule, so I'll leave it
> > >> as is for now.
> > >
> > >And what might those issues be?
> >
> > There's been some discussion about allowing a default value for path, see
> > http://comments.gmane.org/gmane.comp.version-control.git/49620
>
> Euhm... this just points back to this thread...
I know ;-)
> or are you referring to Junio's misinterpretation of the patch 1/3
> commit message?
Well, yes, I _think_ it's a misinterpretation but there is always the
possibility of me being exceptionally slow and not getting his point.
>
> > >It doesn't have the extensions proposed by Linus, but it seems
> > >to be forward compatible with them.
> >
> > I'm trying to take baby-steps with the submodule support, so the
> > module/submodule extension Linus talked about would possibly come at a
> > later stage.
> >
> > Hmm, maybe I should just rename [module] to [submodule] right now?
>
> I don't see the need, but if you _really_ can't resist then please do it
> sooner rather than later.
Ok
--
larsh
^ permalink raw reply
* Re: [ANNOUNCE] qgit-2.0rc1
From: Ismail Dönmez @ 2007-06-10 12:40 UTC (permalink / raw)
To: Marco Costalba; +Cc: Git Mailing List, Pavel Roskin, Andy Parkins
In-Reply-To: <e5bfff550706100529xaeac76erc1dff124c1fac470@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 2565 bytes --]
On Sunday 10 June 2007 15:29:58 Marco Costalba wrote:
> On 6/10/07, Ismail Dönmez <ismail@pardus.org.tr> wrote:
> > Doesn't seem to compile here. make output is at
> > http://cekirdek.pardus.org.tr/~ismail/tmp/qgit4-error.txt . Qt is built
> > with no exceptions (as suggested by Trolltech), might that be the
> > problem?
>
> Could be, exceptions (try-catch clause) are used in qgit.
>
> Please, could you post the g++ command list args, i.e. what you see
> from console after typing make, as example I have something like this
> for annotate.cpp file.
>
> g++ -c -pipe -O2 -g3 -O2 -Wno-non-virtual-dtor -frepo -Wno-long-long
> -pedantic -Wconversion -Wall -W -D_REENTRANT -DQT_NO_DEBUG
> -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED
> -I/usr/lib/qt4/mkspecs/linux-g++ -I. -I/usr/lib/qt4/include/QtCore
> -I/usr/lib/qt4/include/QtCore -I/usr/lib/qt4/include/QtGui
> -I/usr/lib/qt4/include/QtGui -I/usr/lib/qt4/include -I../src
> -I../build -I../build -o ../build/annotate.o annotate.cpp
g++ -c -pipe -O2 -g3 -O2 -Wno-non-virtual-dtor -frepo -Wno-long-long -pedantic -Wconversion -Wall -W
-D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/qt/4/mkspecs/linux-g++ -I.
-I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtCore -I/usr/qt/4/include/QtGui -I/usr/qt/4/include/QtGui -I/usr/qt/4/include
-I../src -I../build -I../build -o ../build/annotate.o annotate.cpp
>
>
> Also your build environment could be useful, please type
>
> $qmake -v
>
> and
>
> $ g++ -v
I use qmake-qt4 ,
[~]> qmake-qt4 -v
QMake version 2.01a
Using Qt version 4.3.0 in /usr/qt/4/lib
[~]> g++ -v
Using built-in specs.
Target: i686-pc-linux-gnu
Configured
with: ../configure --prefix=/usr --bindir=/usr/i686-pc-linux-gnu/gcc/4.2.0 --includedir=/usr/lib/gcc/i686-pc-linux-gnu/4.2.0/include
--datadir=/usr/share/gcc/i686-pc-linux-gnu/4.2.0 --mandir=/usr/share/gcc/i686-pc-linux-gnu/4.2.0/man --infodir=/usr/share/gcc/i686-pc-linux-gnu/4.2.0/info
--with-gxx-include-dir=/usr/lib/gcc/i686-pc-linux-gnu/4.2.0/include/g++-v3 --host=i686-pc-linux-gnu --build=i686-pc-linux-gnu --disable-libgcj --disable-libssp
--disable-multilib --disable-nls --disable-werror --enable-clocale=gnu --enable-__cxa_atexit --enable-languages=c,c++,objc,fortran --enable-libstdcxx-allocator=new
--enable-shared --enable-ssp --enable-threads=posix --enable-version-specific-runtime-libs --without-included-gettext --without-system-libunwind --with-system-zlib
Thread model: posix
Regards,
ismail
--
Perfect is the enemy of good
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 827 bytes --]
^ permalink raw reply
* Re: [PATCH 2/3] Add gitmodules(5)
From: Sven Verdoolaege @ 2007-06-10 12:40 UTC (permalink / raw)
To: Lars Hjemli; +Cc: Frank Lichtenheld, Junio C Hamano, Johannes Schindelin, git
In-Reply-To: <8c5c35580706100530g256de4a4yb12f4647dae06500@mail.gmail.com>
On Sun, Jun 10, 2007 at 02:30:58PM +0200, Lars Hjemli wrote:
> On 6/10/07, Sven Verdoolaege <skimo@kotnet.org> wrote:
> >On Sun, Jun 10, 2007 at 10:58:29AM +0200, Lars Hjemli wrote:
> >> >For .path a "Defaults to name of submodule" probably wouldn't hurt.
> >>
> >> True. But there might be some issues with this rule, so I'll leave it
> >> as is for now.
> >
> >And what might those issues be?
>
> There's been some discussion about allowing a default value for path, see
> http://comments.gmane.org/gmane.comp.version-control.git/49620
Euhm... this just points back to this thread...
or are you referring to Junio's misinterpretation of the patch 1/3
commit message?
> >It doesn't have the extensions proposed by Linus, but it seems
> >to be forward compatible with them.
>
> I'm trying to take baby-steps with the submodule support, so the
> module/submodule extension Linus talked about would possibly come at a
> later stage.
>
> Hmm, maybe I should just rename [module] to [submodule] right now?
I don't see the need, but if you _really_ can't resist then please do it
sooner rather than later.
skimo
^ permalink raw reply
* Re: [PATCH] Port git-tag.sh to C.
From: Robin Rosenberg @ 2007-06-10 12:37 UTC (permalink / raw)
To: Kristian Høgsberg; +Cc: Junio C Hamano, git
In-Reply-To: <466B376D.8040303@redhat.com>
söndag 10 juni 2007 skrev Kristian Høgsberg:
> Junio C Hamano wrote:
> > Kristian Høgsberg <krh@redhat.com> writes:
> >
> >> Content-Type: TEXT/PLAIN; charset=ISO-8859-1
> >>
> >> From: Kristian Høgsberg <krh@redhat.com>
> >>
> >> A more or less straight-forward port of git-tag.sh to C.
> >>
> >> Signed-off-by: Kristian Høgsberg <krh@redhat.com>
> >> Cc: Johannes Schindelin <Johannes.Schindelin@gmx.de>
> >
> > I think your name in your commit message is in UTF-8 but munged your
> > mail was mismarked as iso-8859-1.
>
> That's odd both the email I cc'ed to my redhat.com address and the one I got
> on gmail.com through the list have
>
> Content-Type: text/plain; charset=utf-8
>
> and saving the raw message and asking /usr/bin/file, it tells me its
>
> /home/krh/Desktop/hep: UTF-8 Unicode mail text
Maybe Junio's mail server has a problem with the impliction of this header line?
"Content-Transfer-Encoding: 8bit" ?
-- robin
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox