Changeset dbf1b0d5b272…
Parent 4dabccb94253…
by
Changes to one file · Browse files at dbf1b0d5b272 Showing diff from parent 4dabccb94253 Diff from another changeset...
@@ -276,14 +276,17 @@ const std::string& hgroot, const std::string& abspath,
std::string& relpath, char& outStatus)
{
- const dirstate* pd = 0;
- struct _stat stat;
+ const dirstate* pd = dirstatecache::get(hgroot);
+ if (!pd)
+ {
+ TDEBUG_TRACE("HgQueryDirstateDirectory: dirstatecache::get(" << hgroot << ") returns 0");
+ return 0;
+ }
- if (!HgQueryDirstate(hgroot, abspath, relpath, pd, stat))
+ for (size_t i = 0; i < relpath.size(); ++i)
{
- TDEBUG_TRACE("HgQueryDirstateDirectory: HgQueryDirstate returns 0."
- << " hgroot = " << hgroot << ", abspath = " << abspath);
- return 0;
+ if (relpath[i] == '\\')
+ relpath[i] = '/';
}
bool added = false;
@@ -293,6 +296,8 @@ const size_t len = relpath.size();
const std::string hgroot_slash = hgroot + "/";
+ struct _stat stat;
+
for (dirstate::Iter iter = pd->begin();
iter != pd->end() && !modified; ++iter)
{
@@ -338,16 +343,26 @@ const std::string& hgroot, const std::string& abspath,
std::string& relpath, char& outStatus)
{
- const dirstate* pd = 0;
struct _stat stat;
+ if (0 != lstat(abspath.c_str(), stat))
+ {
+ TDEBUG_TRACE("HgQueryDirstateFile: lstat(" << abspath << ") fails");
+ return 0;
+ }
- if (!HgQueryDirstate(hgroot, abspath, relpath, pd, stat))
+ const dirstate* pd = dirstatecache::get(hgroot);
+ if (!pd)
{
- TDEBUG_TRACE("HgQueryDirstateFile: HgQueryDirstate returns 0."
- << " hgroot = " << hgroot << ", abspath = " << abspath);
+ TDEBUG_TRACE("HgQueryDirstateFile: dirstatecache::get(" << hgroot << ") returns 0");
return 0;
}
+ for (size_t i = 0; i < relpath.size(); ++i)
+ {
+ if (relpath[i] == '\\')
+ relpath[i] = '/';
+ }
+
for (dirstate::Iter iter = pd->begin(); iter != pd->end(); ++iter)
{
const direntry& e = *iter;
|
Loading...