Example #1
0
        public IEnumerator <FileVersionInfo> GetEnumerator()
        {
            int  i = 0;
            bool previousIsBranch = false;

            foreach (FileHistoryInfo historyInfo in History)
            {
                if (historyInfo.Type != HistoryInfoType.File)
                {
                    continue;
                }

                if (!previousIsBranch)
                {
                    byte[] revisionData = DXVCSHelpers.TryToDecompressData(data[i]);
                    int    version;
                    if (Diff.IsDiffs(revisionData, out version))
                    {
                        Encoding       encoding;
                        string         fileText    = DXVCSHelpers.ReadTextFromByte(revisionData, out encoding);
                        var            splitterStr = DXVCSHelpers.DetectTextSplitter(fileText);
                        byte[]         curSplitter = encoding.GetBytes(splitterStr);
                        DiffByteItem[] diffs       = Diff.BytesToDiffs(revisionData);
                        revisionData = Diff.GetDataFromDiff(previousData, diffs, curSplitter);
                    }
                    previousData = revisionData;
                }
                previousIsBranch = historyInfo.Message == "Branch";
                i++;

                yield return(new FileVersionInfo(historyInfo.Version, historyInfo.ActionDate, historyInfo.User, historyInfo.Comment, previousData));
            }
        }
Example #2
0
        public IEnumerator <FileVersionInfo> GetEnumerator()
        {
            int  i = 0;
            bool previousIsBranch = false;

            foreach (FileHistoryInfo historyInfo in History)
            {
                if (historyInfo.Type != HistoryInfoType.File)
                {
                    continue;
                }

                if (!previousIsBranch)
                {
                    byte[] revisionData = DXVCSHelpers.TryToDecompressData(data[i]);
                    int    version;
                    bool   binDiff;
                    if (Diff.IsDiffs(revisionData, out version, out binDiff))
                    {
                        byte[]         curSplitter;
                        DiffByteItem[] diffs = Diff.BytesToDiffs(revisionData, binDiff, out curSplitter);
                        revisionData = Diff.GetDataFromDiff(previousData, diffs, curSplitter);
                    }
                    previousData = revisionData;
                }
                previousIsBranch = historyInfo.Message == "Branch";
                i++;

                yield return(new FileVersionInfo(historyInfo.Version, historyInfo.ActionDate, historyInfo.User, historyInfo.Comment, previousData));
            }
        }