Changeset e72457ed153c…
Parent a9cb537302bd…
by
Changes to 3 files · Browse files at e72457ed153c Showing diff from parent a9cb537302bd Diff from another changeset...
@@ -60,17 +60,10 @@ {
std::string path = WideToMultibyte(pwszPath);
- TDEBUG_TRACE("IsMemberOf: search for " << path);
-
std::string hgroot = GetHgRepoRoot(path);
if (hgroot.empty())
- {
- TDEBUG_TRACE("IsMemberOf: Not a Hg repo (hgroot is empty)");
return S_FALSE;
- }
-
- TDEBUG_TRACE("IsMemberOf: hgroot = " << hgroot);
size_t offset = hgroot.length();
if (path[offset] == '\\')
@@ -90,22 +83,14 @@ return S_FALSE; // don't descend into .hg dir
if (!HgQueryDirstateDirectory(hgroot, path, relpath, status))
- {
- TDEBUG_TRACE("IsMemberOf: HgQueryDirstateDirectory returns false");
return S_FALSE;
- }
}
else
{
if (!HgQueryDirstateFile(hgroot, path, relpath, status))
- {
- TDEBUG_TRACE("IsMemberOf: HgQueryDirstateFile returns false");
return S_FALSE;
- }
}
- TDEBUG_TRACE("IsMemberOf: status = " << status);
-
if (myTortoiseClass == TORTOISE_OLE_ADDED && status == 'A')
return S_OK;
else if (myTortoiseClass == TORTOISE_OLE_MODIFIED && status == 'M')
|
@@ -189,7 +189,6 @@
std::string GetHgRepoRoot(const std::string& path)
{
- TDEBUG_TRACE(" GetHgRepoRoot: find repo root for " << path);
std::string p = IsDirectory(path)? path : DirName(path);
while (!IsDirectory(p + "\\.hg"))
{
|
@@ -133,9 +133,14 @@
std::auto_ptr<dirstate> dirstate::read(const char *path)
{
+ TDEBUG_TRACE("dirstate::read: path = " << path);
+
FILE *f = fopen(path, "rb");
if (!f)
+ {
+ TDEBUG_TRACE("dirstate::read: returning 0");
return std::auto_ptr<dirstate>(0);
+ }
std::auto_ptr<dirstate> pd(new dirstate());
@@ -169,6 +174,8 @@
fclose(f);
+ TDEBUG_TRACE("dirstate::read: done. size = " << pd->entries.size());
+
return pd;
}
@@ -214,9 +221,16 @@ }
if (iter == _cache.end())
- {
+ {
+ if (_cache.size() >= 10)
+ {
+ TDEBUG_TRACE("dirstatecache::get: dropping " << _cache.back().hgroot);
+ delete _cache.back().dstate;
+ _cache.pop_back();
+ }
entry e;
e.hgroot = hgroot;
+ TDEBUG_TRACE("dirstatecache::get: adding " << hgroot);
_cache.push_front(e);
iter = _cache.begin();
}
@@ -246,7 +260,7 @@ ppd = dirstatecache::get(hgroot);
if (!ppd)
{
- TDEBUG_TRACE("HgQueryDirstate: dirstatecache::get returns NULL");
+ TDEBUG_TRACE("HgQueryDirstate: dirstatecache::get returns 0");
return 0;
}
@@ -328,18 +342,12 @@ const dirstate* pd = 0;
struct _stat stat;
- TDEBUG_TRACE("HgQueryDirstateFile: search for " << abspath);
- TDEBUG_TRACE("HgQueryDirstateFile: hgroot = " << hgroot);
-
if (!HgQueryDirstate(hgroot, abspath, relpath, pd, stat))
{
- TDEBUG_TRACE("HgQueryDirstateFile: HgQueryDirstate returns false");
+ TDEBUG_TRACE("HgQueryDirstateFile: HgQueryDirstate returns 0");
return 0;
}
- TDEBUG_TRACE("HgQueryDirstateFile: pd->entries.size() = " << pd->entries.size());
- TDEBUG_TRACE("HgQueryDirstateFile: relpath = " << relpath);
-
for (dirstate::Iter iter = pd->entries.begin();
iter != pd->entries.end(); ++iter)
{
@@ -347,9 +355,7 @@
if (relpath == e.name)
{
- TDEBUG_TRACE("HgQueryDirstateFile: found relpath");
outStatus = e.status(stat);
- TDEBUG_TRACE("HgQueryDirstateFile: outStatus = " << outStatus);
return outStatus != '?';
}
}
|
Loading...