On 28.08.2009 00:19, Gunnar Dalsnes wrote:
> if ((newStatus != m_currentFullStatus)&&(m_ownStatus.IsVersioned()))
> {
> if ((m_currentFullStatus != svn_wc_status_none)&&(m_ownStatus.GetEffectiveStatus() != svn_wc_status_ignored))
> {
>
> The m_currentFullStatus != svn_wc_status_none seems wrong, and causes a problem where the shell status is not refreshed if a WC don't have any changes. How the problem appears for me:
> I have a folder E:\X containing 3 WC's where 2 have changes and one don't. I start at E:\, kill TSVNCache then enter folder X. Overlay for the WC without changes never shows (must press F5).
>
> I rewrote the code how I think is more correct (patch) and it seems to fix the problem, thou it could be wrong (I didn't really understand the old code).
We must not send a shell notification if the status changes from 'none'
to 'normal'. We did that in an older version and it cause a lot of problems:
Users who have their working copies on the desktop would experience a
constant flickering after starting up for several minutes (depending on
the size of their working copies). The reason is that every shell
notification we sent caused the desktop to refresh (doesn't happen in
explorer, but the desktop does).
I've tested your patch on my Win7 machine and it seems to be working
fine. But I'm not sure if it would work on XP the same way - I have to
assume that this would again cause that flickering on startup.
Do you work on XP? If yes maybe you can test your changes by putting two
or three bigger working copies on the desktop and logon/logoff?
Stefan
--
___
oo // \\ "De Chelonian Mobile"
(_,\/ \_/ \ TortoiseSVN
\ \_/_\_/> The coolest Interface to (Sub)Version Control
/_/ \_\ http://tortoisesvn.net
------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=757&dsMessageId=2388118
To unsubscribe from this discussion, e-mail: [dev-unsubscribe_at_tortoisesvn.tigris.org].
Received on 2009-08-28 07:30:01 CEST