コード例 #1
0
        public LogInfo[] GetLog(string basePath, string repositoryName, string revision)
        {
            var uri  = this.GetUrl(basePath, repositoryName);
            var logs = SvnLogInfo.GetLogs(uri.ToString(), revision);

            return(logs.Select(item => (LogInfo)item).ToArray());
        }
コード例 #2
0
        public static SvnLogInfo GetFirstLog(string path)
        {
            var info      = SvnInfo.Run(path);
            var revision  = info.LastChangedRevision;
            var localPath = PathUtility.Separator + UriUtility.MakeRelativeOfDirectory(info.RepositoryRoot, info.Uri);

            while (revision != "1")
            {
                var logs = SvnLogInfo.Run(info.Uri.ToString(), "1", revision, 100);
                foreach (var item in logs)
                {
                    var renamed = false;
                    foreach (var changedPath in item.ChangedPaths)
                    {
                        if (changedPath.Action == "A" && changedPath.Path == localPath)
                        {
                            localPath = changedPath.CopyFromPath;
                            renamed   = true;
                            break;
                        }
                    }

                    var deleted = false;
                    if (renamed == true)
                    {
                        foreach (var changedPath in item.ChangedPaths)
                        {
                            if (changedPath.Action == "D" && changedPath.Path == localPath)
                            {
                                deleted = true;
                                break;
                            }
                        }

                        if (deleted == false)
                        {
                            return(item);
                        }
                    }
                }
                if (logs.Count() == 1)
                {
                    return(logs.First());
                }
                else
                {
                    revision = logs.Last().Revision;
                }
            }

            return(SvnLogInfo.GetLogs(info.Uri.ToString(), "1").First());
        }
コード例 #3
0
ファイル: SvnRepository.cs プロジェクト: s2quake/JSSoft.Crema
        public LogInfo[] GetLog(string[] paths, string revision)
        {
            var logs = SvnLogInfo.GetLogs(paths, revision);

            return(logs.Select(item => (LogInfo)item).ToArray());
        }