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...