138 lines
4.3 KiB
C#
138 lines
4.3 KiB
C#
using Codice.CM.Common;
|
|
using Unity.PlasticSCM.Editor.Tool;
|
|
|
|
namespace Unity.PlasticSCM.Editor.Views.Changesets
|
|
{
|
|
static class LaunchDiffOperations
|
|
{
|
|
internal static void DiffChangeset(
|
|
LaunchTool.IShowDownloadPlasticExeWindow showDownloadPlasticExeWindow,
|
|
LaunchTool.IProcessExecutor processExecutor,
|
|
RepositorySpec repSpec,
|
|
long changesetId,
|
|
bool isGluonMode)
|
|
{
|
|
if (changesetId == -1)
|
|
return;
|
|
|
|
string changesetFullSpec = GetChangesetFullSpec(
|
|
repSpec, changesetId);
|
|
|
|
LaunchTool.OpenChangesetDiffs(
|
|
showDownloadPlasticExeWindow,
|
|
processExecutor,
|
|
repSpec,
|
|
changesetFullSpec,
|
|
isGluonMode);
|
|
}
|
|
|
|
internal static void DiffChangeset(
|
|
LaunchTool.IShowDownloadPlasticExeWindow showDownloadPlasticExeWindow,
|
|
LaunchTool.IProcessExecutor processExecutor,
|
|
RepositorySpec repSpec,
|
|
ChangesetInfo changesetInfo,
|
|
bool isGluonMode)
|
|
{
|
|
if (changesetInfo == null)
|
|
return;
|
|
|
|
string changesetFullSpec = GetChangesetFullSpec(
|
|
repSpec, changesetInfo.ChangesetId);
|
|
|
|
LaunchTool.OpenChangesetDiffs(
|
|
showDownloadPlasticExeWindow,
|
|
processExecutor,
|
|
repSpec,
|
|
changesetFullSpec,
|
|
isGluonMode);
|
|
}
|
|
|
|
internal static void DiffSelectedChangesets(
|
|
LaunchTool.IShowDownloadPlasticExeWindow showDownloadPlasticExeWindow,
|
|
LaunchTool.IProcessExecutor processExecutor,
|
|
RepositorySpec repSpec,
|
|
ChangesetInfo cset1,
|
|
ChangesetInfo cset2,
|
|
bool isGluonMode)
|
|
{
|
|
ChangesetInfo srcChangesetInfo;
|
|
ChangesetInfo dstChangesetInfo;
|
|
|
|
GetSrcAndDstCangesets(
|
|
cset1,
|
|
cset2,
|
|
out srcChangesetInfo,
|
|
out dstChangesetInfo);
|
|
|
|
string srcChangesetFullSpec = GetChangesetFullSpec(
|
|
repSpec, srcChangesetInfo.ChangesetId);
|
|
|
|
string dstChangesetFullSpec = GetChangesetFullSpec(
|
|
repSpec, dstChangesetInfo.ChangesetId);
|
|
|
|
LaunchTool.OpenSelectedChangesetsDiffs(
|
|
showDownloadPlasticExeWindow,
|
|
processExecutor,
|
|
repSpec,
|
|
srcChangesetFullSpec,
|
|
dstChangesetFullSpec,
|
|
isGluonMode);
|
|
}
|
|
|
|
internal static void DiffBranch(
|
|
LaunchTool.IShowDownloadPlasticExeWindow showDownloadPlasticExeWindow,
|
|
LaunchTool.IProcessExecutor processExecutor,
|
|
RepositorySpec repSpec,
|
|
ChangesetExtendedInfo changesetExtendedInfo,
|
|
bool isGluonMode)
|
|
{
|
|
if (changesetExtendedInfo == null)
|
|
return;
|
|
|
|
string branchFullSpec = GetBranchFullSpec(
|
|
repSpec, changesetExtendedInfo);
|
|
|
|
LaunchTool.OpenBranchDiffs(
|
|
showDownloadPlasticExeWindow,
|
|
processExecutor,
|
|
repSpec,
|
|
branchFullSpec,
|
|
isGluonMode);
|
|
}
|
|
|
|
static void GetSrcAndDstCangesets(
|
|
ChangesetInfo cset1,
|
|
ChangesetInfo cset2,
|
|
out ChangesetInfo srcChangesetInfo,
|
|
out ChangesetInfo dstChangesetInfo)
|
|
{
|
|
if (cset1.LocalTimeStamp < cset2.LocalTimeStamp)
|
|
{
|
|
srcChangesetInfo = cset1;
|
|
dstChangesetInfo = cset2;
|
|
return;
|
|
}
|
|
|
|
srcChangesetInfo = cset2;
|
|
dstChangesetInfo = cset1;
|
|
}
|
|
|
|
static string GetChangesetFullSpec(
|
|
RepositorySpec repSpec,
|
|
long changesetId)
|
|
{
|
|
return string.Format("cs:{0}@{1}",
|
|
changesetId, repSpec.ToString());
|
|
}
|
|
|
|
static string GetBranchFullSpec(
|
|
RepositorySpec repSpec,
|
|
ChangesetExtendedInfo changesetExtendedInfo)
|
|
{
|
|
return string.Format("br:{0}@{1}",
|
|
changesetExtendedInfo.BranchName,
|
|
repSpec.ToString());
|
|
}
|
|
}
|
|
}
|