private void ParseStatusResult(XmlDocument xmlDoc)
        {
            if (!xmlDoc.HasChildNodes)
            {
                return;
            }

            XmlNodeList entries = xmlDoc.GetElementsByTagName("entry");

            //List<XmlNode> metaEntries = new List<XmlNode>();
            foreach (XmlNode entryIt in entries)
            {
                string assetPath = ("Assets/" + entryIt.Attributes["path"].InnerText.Replace('\\', '/')).Trim();
                var    svnStatus = ParseXMLNode(entryIt);
                if (svnStatus.reflectionLevel != ESVNReflectionLevel.None)
                {
                    lock (mSVNStatusDatabaseLock)
                    {
                        mSvnStatusDatabase[assetPath] = svnStatus;
                    }
                }
            }

            XmlNodeList changelists = xmlDoc.GetElementsByTagName("changelist");

            foreach (XmlNode changelistIt in changelists)
            {
                string changelist = changelistIt.Attributes["name"].InnerText;
                foreach (XmlNode entryIt in changelistIt.ChildNodes)
                {
                    string assetPath = ("Assets/" + entryIt.Attributes["path"].InnerText.Replace('\\', '/')).Trim();
                    lock (mSVNStatusDatabaseLock)
                    {
                        if (mSvnStatusDatabase.ContainsKey(assetPath))
                        {
                            mSvnStatusDatabase[assetPath].changelist = changelist;
                            if (changelist == bypassIdentifier)
                            {
                                mSvnStatusDatabase[assetPath].bypassRevisionControl = true;
                            }
                        }
                    }
                }
            }

            foreach (var keyIt in mSvnStatusDatabase.Keys)
            {
                if (mSvnStatusDatabase.GetMetaStatus(keyIt) == null && keyIt != "Assets/.")
                {
                    Debug.LogWarning("Missing Meta: " + keyIt);
                }
            }

            //Debug.Log("SVN Database updated. Number of elements: [" + m_svnStatusMap.Count + "]");
        }
Exemple #2
0
        private IEnumerable <string> AddMeta(IEnumerable <string> assets)
        {
            List <string> metaFiles = new List <string>();

            foreach (string assetPathIt in assets)
            {
                if (!assetPathIt.EndsWith(".meta"))
                {
                    var metaAssetPath = assetPathIt + ".meta";
                    var metaStatus    = mStatusDatabase.GetMetaStatus(metaAssetPath);
                    if (metaStatus.fileStatus != ESVNFileStatus.Normal)
                    {
                        metaFiles.Add(metaAssetPath);
                    }
                }
            }
            return(assets.Concat(metaFiles));
        }