git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [QGit PATCH] Remove most ASSERT warnings in Git::setStatus

From
Michael <barra_cuda@katamail.com>
Date
May 20, 2007, 14:08 UTC
Message-ID
<200705201608.06486.barra_cuda@katamail.com>
In-Reply-To
<e5bfff550705200553q757c334el7aa5aed393052616@mail.gmail.com>
(sorry, dropped git ml)
"Marco Costalba" <mcostalba@gmail.com>:
Show 30 quoted lines
> On 5/20/07, Michael <barra_cuda@katamail.com> wrote:
> > Signed-off-by: Michele Ballabio <barra_cuda@katamail.com>
> > ---
> >
> > ...is this correct?
> >
> >  src/git_startup.cpp |    2 +-
> >  1 files changed, 1 insertions(+), 1 deletions(-)
> >
> > diff --git a/src/git_startup.cpp b/src/git_startup.cpp
> > index a99edba..17312f9 100644
> > --- a/src/git_startup.cpp
> > +++ b/src/git_startup.cpp
> > @@ -329,7 +329,7 @@ void Git::parseDiffFormatLine(RevFile& rf, SCRef line, int parNum) {
> >
> >                 // TODO rename/copy is not supported for combined merges
> >                 appendFileName(rf, line.section('\t', -1));
> > -               setStatus(rf, line.section(' ', 6, 6).left(1));
> > +               setStatus(rf, line.section('\t', -2, -2).right(1));
> >                 rf.mergeParent.append(parNum);
> >         } else { // faster parsing in normal case
> >
> > --
> > 1.5.1.2
> >
> 
> Where do you see the ASSERT? could  you link me to the test repository
> when you see that warnings?
> 
> I would like to understand better what causes the warnings.
On the git repo:

rm .git/qgit_cache.dat qgit origin/pu then use arrows to go down to the first octopus merge, ie:

    Merge branches 'jc/blame' and 'jc/diff' into pu
qgit prints:

ASSERT in Git::setStatus, unknown status <1>. 'MODIFIED' will be used instead. ASSERT in Git::setStatus, unknown status <c>. 'MODIFIED' will be used instead.

on stderr.
That's because the lines considered in Git::setStatus are:

:::100644 100644 100644 100644 35864ed3c4afe01680bd5123fc28c35f5cf328e6 29243c6e8b49958ddcb08df0eb4223b14fd3e19f 16a5b9ac49c756492a7fd91fa49b84a3aee1f6b2 77ca8dcdfbcd6667b7f511306347c0d245ee4e2b MMM Makefile :::100644 100644 100644 100644 0e6439b0ddaf317a6288ab4dd40ae8b9a41e9884 4204bc168c11fc7f8764e7d92e5935d2dc30c3bd cbab8ebecb4f3f13856b3be21409074dbcd3edda d1ff7f50a31d9647c26c1e2293957a1d719c9373 MMM cache.h

...which obviously do not have the right information ("M") in
        line.section(' ', 6, 6).left(1)
but in
        line.section('\t', -2, -2).right(1)

I thought this would trigger even with .git/qgit_cache.dat, but I was wrong. (Anyway, I have a patch that adds an option to make .git/qgit_cache.dat optional, but I don't think it could be that useful. What do you think?)

If it still doesn't trigger for you, maybe I should post you my qgitrc...

Previous: Marco CostalbaNext: Marco Costalba
Message 2 of 5 in “Re: [QGit PATCH] Remove most ASSERT warnings in Git::setStatus”
  1. Marco CostalbaMay 20, 2007
  2. MichaelMay 20, 2007
  3. Marco CostalbaMay 20, 2007
  4. MichaelMay 20, 2007
  5. Marco CostalbaMay 20, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.