Comment 24 for bug 405317

Revision history for this message
Frits Jalvingh (fjalvingh) wrote :

Thanks for your detailed explanation. It will help me understand Bazaar internals better. I can follow you as far as the last-modified dates are concerned; I understand that in this kind of merge tweaked files have different last-modified values. But tweaked files in a merge would be an exception, not the rule (usually most merges apply cleanly, without conflicts, and we do not do too many changes after that).
But what I gather from your explanation is that merging repeatedly makes more and more files have different last-modified values over time; and this makes commit performance progressively worse over time?

What I do not get is why the commit would have to bother with the c-files at all at the time we're commiting J; the merge for that (and the commit) has already been completed in D; why does the commit on J have to focus on those files again?

I'm losing you at the "heads() check" - no idea what it does ;-) I do understand that at commit time you would need to construct the final delta's for the individual files taking history into account - is this what you call the graphs?

I'd really like to understand the problem but I have very little knowledge of bazaar internals (there is little information to be found). If you have time to explain I'd love it, but feel free to ignore my questions and just tell me what you need to help fixing the problem.

I can do the IRC thing and am comfortable changing the code; I can just setup a copy of the source and tweak that, or change the ubuntu-installed source if that's better. My knowledge of python is less than rudimentary though.
Before we can do this I need to set-up a stable test case as you mentioned - the repository above has already progressed further on. I am trying to create a branch at the same level as the commit here but that is already running for 2 hours and appearently not even close to completion. Is there a special IRC channel and a best time to try to reach you people (please include a timezone so I can translate to time in the Netherlands ;-)?

In addition I'll do some testing using bzr-1.14.1 since I have to prepare moving back to that version in our company (development has come mostly to a standstill because of all the problems with this version). It will give us some comparisons perhaps.