bzr-explorer forgets external diff tool

Bug #761535 reported by Ivan Frederiks
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Bazaar Explorer
Confirmed
High
Unassigned
QBzr
Confirmed
High
Unassigned

Bug Description

I'm trying to set external diff tool (Meld). I use bzr-explorer menu: Settings->Configuration->User Configuration. Here I select Diff tab and add entry named Meld with command meld. Then I press OK. After it meld is used each time I double-click on files in Commit dialog.
But when I close bzr-explorer and start it again it forgets about new diff tool, e.g. Diff tab shows only Builtin Diff.

bzr-explorer:
Version 1.1.2 "Bartolomeu Dias"
QBzr 0.20.0, bzrlib 2.3.1, PyQt 4.7.4, Qt 4.7.0, Python 2.6.6

Ivan Frederiks (idfred)
description: updated
Revision history for this message
Alexander Belchenko (bialix) wrote :

can you try to run `bzr qconfig` from the command line and make the same changes? And after closing the qconfig dialog, run it again and check that settings are preserved.

I'm not sure whether this is qbzr bug or actually bzr-explorer bug, or maybe bug of their interaction.

affects: bzr → qbzr
Changed in qbzr:
status: New → Incomplete
Revision history for this message
Ivan Frederiks (idfred) wrote :

Thank you, settings made by "bzr qconfig" command were saved correctly and applied in bzr-explorer too.

Revision history for this message
Alexander Belchenko (bialix) wrote :

That's could be related to bug #716384.

Can you try to update your qbzr plugin to the tip of lp:qbzr/0.20 and test bzr-explorer behavior again?

Revision history for this message
Ivan Frederiks (idfred) wrote :

>> to the tip of lp:qbzr/0.20
Did you mean to "the top of ..."?
Looks like I have to compile qbzr from source. I'm unsure, that I'll have enough time for it soon.
I don't promise, but I'll try.

Revision history for this message
Alexander Belchenko (bialix) wrote : Re: [Bug 761535] Re: bzr-explorer forgets external diff tool

iFred пишет:
>>> to the tip of lp:qbzr/0.20
> Did you mean to "the top of ..."?

I meant the latest revision of that branch.

> Looks like I have to compile qbzr from source. I'm unsure, that I'll have enough time for it soon.
> I don't promise, but I'll try.

You don't need to compile anything, just

mkdir ~/.bazaar/plugins
bzr branch lp:qbzr/0.20 ~/.bazaar/plugins/qbzr

and you'll get the right version of qbzr plugin.

--
All the dude wanted was his rug back

Revision history for this message
Ivan Frederiks (idfred) wrote :

Bazaar Explorer — Version Control for Human Beings
Version 1.1.2 "Bartolomeu Dias"

QBzr 0.20.1dev, bzrlib 2.3.1, PyQt 4.7.4, Qt 4.7.0, Python 2.6.6

Same problem.

Revision history for this message
Alexander Belchenko (bialix) wrote :

iFred пишет:
> Bazaar Explorer — Version Control for Human Beings
> Version 1.1.2 "Bartolomeu Dias"
>
> QBzr 0.20.1dev, bzrlib 2.3.1, PyQt 4.7.4, Qt 4.7.0, Python 2.6.6
>
> Same problem.

Thank you for testing.

Changed in qbzr:
status: Incomplete → Confirmed
Changed in bzr-explorer:
status: New → Confirmed
status: Confirmed → New
Changed in qbzr:
status: Confirmed → New
Changed in bzr-explorer:
status: New → Confirmed
Changed in qbzr:
status: New → Confirmed
Revision history for this message
Alexander Belchenko (bialix) wrote :

I'm not sure yet who cause this error, but it's really present, and what actually is happen:

1) User opens qconfig from explorer and add diff settings
2) at that point qbzr.conf on the disk has those diff changes, and external editor made default (also this does not used by explorer itself, only qcommit window uses that setting)
3) after closing qcommit window the settings are still in qbzr.conf
4) only after closing explorer window those settings are gone.

Very interesting. It seems some code keeps the instance of old qbzr.conf and on explorer close it overwrites the new qbzr.conf, and that's REALLY BAD THING.

Changed in bzr-explorer:
importance: Undecided → High
Changed in qbzr:
importance: Undecided → High
Revision history for this message
Alexander Belchenko (bialix) wrote :

The problem in qbzr itself. We cache qbzr config instance for the entire lifetime of process which uses that config (in the case of the explorer we restore size of that window from qbzr.conf and then save them back). But we should not cache it at all.

Strictly to say the main idea was avoid too much reads fro the disk when we need read several options from qbzr.conf, but it seems that's just wrong, because we have bad side effects.

I can provide workaround for explorer, but the bug should be fixed in qbzr itself.

Changed in bzr-explorer:
status: Confirmed → In Progress
assignee: nobody → Alexander Belchenko (bialix)
milestone: none → 1.1.3
Changed in bzr-explorer:
status: In Progress → Fix Released
Revision history for this message
Alexander Belchenko (bialix) wrote :

It seems my workaround in explorer is not quite enough, and user still can hit that bug if some custom qbzr-based dialogs used in explorer, like custom switch dialog.

Changed in bzr-explorer:
status: Fix Released → Confirmed
milestone: 1.1.3 → none
Changed in bzr-explorer:
assignee: Alexander Belchenko (bialix) → nobody
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.