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 + "]"); }
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)); }