RE: Re: What does TSVNCache do anyway?...
From: Peter Yamamoto <yamamotop_at_page44.com>
Date: 2006-04-12 09:51:44 CEST
This process *appears to thrash my disk for no reason*... You say it is because something changed in the folders. But I said it can happen at any time, even when I'm not working within the subversion folders.
So is it any file operation anywhere on the machine that justifies a complete walk of the workspace?! Then why bother? Why not say any cpu usage is justification for a walk and be done with it?!
Or perhaps there is a legitimate problem? For example, maybe a logging mode that would show the filemon type information (process and file operation) that triggered the walk would help? And as I've pointed out before, I've seen it traversing folders that aren't under version control (eg documents and settings). To what point...? It's easy, isn't it... that whole tree is un-versioned so all the status is un-versioned... So the only type of operation that would justify a complete walk of any subtree is a folder coming under subversion control...?
And even under version control, I don't understand why you say one file change causes the whole tree to have to be walked up and down; can you explain? If I modify a file in dir C, which is a sibling of D, and nothing else has changed, then how can that affect the status of anything in dir D? In the path to the parent of C and D, yes, but across the breadth of the tree, no, and below C, no. That does not make sense to me.
Check the code... Nice comment, back at you. I'm simply asking for a bit of troubleshooting help from the community that knows the app the best. Is this the wrong forum for that?
Basically it seems that TSVNCache is at the heart of the usefulness of Tortoise. If I don't have visible status information I may as well go to the command line.
I'm trying to figure out if there is a problem here. So I first ask to see if I understand what the application is trying to do. This is so that I can verify that it is doing that or is it doing (way) too much work than necessary or is something "accidentally" triggering these walks or ...?
So anyway, in the slightest chance you're interested, I've just spent 2 hours with filemon.exe and Show traffic to try and understand what I see happening against what you say... and basically I don't.
The very first thing I did after reading your explanation and thinking about it, was touch a file. This caused a "mini-churn". It was not a full out traversal of the whole workspace which brings my machine to its knees (AMD X2 4400+, 2GB, SATA II Striped). But it did seem to bear out that changing one file *can* cause a lot of activity elsewhere in the tree (why again is still a mystery).
Because, later, I tried the same thing, a touch of a file, and it did not cause the same behavior. This time it seemed that it did the smart thing and efficiently propagated the status change up the tree but didn't go off and scan other parts of the workspace. I tried the same thing with actual modifications of the file and a revert. Again, I did not see a definite pattern. Sometimes mini churn, sometimes localized activity. No operations during this time have caused the global churns that I have experienced on occasion but which you seem to imply should be normal and expected.
Just to be clear, when you say "fetch the status of the folder" you simply mean fetch from the .svn cache right? In other words, tortoise is only concerned (up until an update) of the status versus the "base" (checked out) version. In which case I really do not understand why one local change is a reason to walk anywhere but up. Not up and down and all around as you seem to imply (and as is apparent *sometimes* but not all the time, with actual behavior).
Anyway, it seems to be that the actual behavior does not correspond to what you say. So perhaps, you could be a little more understanding that maybe until I do read/debug the code, that trying to understand if there is a problem here or not is not as obvious as you might think?
Peter Yamamoto wrote:
Nice comment. Thanks!
> Is it really just trying to keep up-to-date status info?
> It would seem to me that a filemon.exe type approach would be a lot
Check the code. That's what it does.
> That way when I'm doing something completely different on my machine,
If it bothers you that much, you have two options:
-- ___ oo // \\ "De Chelonian Mobile" (_,\/ \_/ \ TortoiseSVN \ \_/_\_/> The coolest Interface to (Sub)Version Control /_/ \_\ http://tortoisesvn.tigris.org --------------------------------------------------------------------- To unsubscribe, e-mail: firstname.lastname@example.org For additional commands, e-mail: email@example.com --------------------------------------------------------------------- To unsubscribe, e-mail: firstname.lastname@example.org For additional commands, e-mail: email@example.comReceived on Wed Apr 12 09:51:58 2006
This is an archived mail posted to the TortoiseSVN Users mailing list.