Ejemplo n.º 1
0
        void ExecuteDiff(CommandEventArgs e, ICollection <SvnOrigin> targets, SvnRevisionRange range)
        {
            if (targets.Count != 1)
            {
                return;
            }

            SvnTarget diffTarget = EnumTools.GetSingle(targets).Target;

            IAnkhDiffHandler diff = e.GetService <IAnkhDiffHandler>();
            AnkhDiffArgs     da   = new AnkhDiffArgs();

            string[] files = diff.GetTempFiles(diffTarget, range.StartRevision, range.EndRevision, true);

            if (files == null)
            {
                return;
            }

            da.BaseFile  = files[0];
            da.MineFile  = files[1];
            da.BaseTitle = diff.GetTitle(diffTarget, range.StartRevision);
            da.MineTitle = diff.GetTitle(diffTarget, range.EndRevision);
            da.ReadOnly  = true;
            diff.RunDiff(da);
        }
Ejemplo n.º 2
0
        public override void OnExecute(CommandEventArgs e)
        {
            IAnkhDiffHandler   diff      = e.GetService <IAnkhDiffHandler>();
            ISvnRepositoryItem reposItem = EnumTools.GetSingle(e.Selection.GetSelection <ISvnRepositoryItem>());

            if (reposItem == null)
            {
                return;
            }

            SvnRevision from;
            SvnRevision to;

            if (reposItem.Revision == SvnRevision.Working)
            {
                from = SvnRevision.Base;
                to   = SvnRevision.Working;
            }
            else if (e.Command == AnkhCommand.RepositoryCompareWithWc)
            {
                from = reposItem.Revision;
                to   = SvnRevision.Working;
            }
            else
            {
                from = reposItem.Revision.Revision - 1;
                to   = reposItem.Revision;
            }
            AnkhDiffArgs da = new AnkhDiffArgs();

            if (to == SvnRevision.Working)
            {
                da.BaseFile = diff.GetTempFile(reposItem.Origin.Target, from, true);

                if (da.BaseFile == null)
                {
                    return; // User canceled
                }
                da.MineFile = ((SvnPathTarget)reposItem.Origin.Target).FullPath;
            }
            else
            {
                string[] files = diff.GetTempFiles(reposItem.Origin.Target, from, to, true);

                if (files == null)
                {
                    return; // User canceled
                }
                da.BaseFile = files[0];
                da.MineFile = files[1];
                System.IO.File.SetAttributes(da.MineFile, System.IO.FileAttributes.ReadOnly | System.IO.FileAttributes.Normal);
            }

            da.BaseTitle = diff.GetTitle(reposItem.Origin.Target, from);
            da.MineTitle = diff.GetTitle(reposItem.Origin.Target, to);
            diff.RunDiff(da);
        }