зеркало из https://github.com/microsoft/scalar.git
Removing dead code 'IsCheckoutWithFilePaths'
Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
This commit is contained in:
Родитель
222f9a6a23
Коммит
0ea87df0af
|
@ -62,44 +62,6 @@ namespace Scalar.Common
|
||||||
this.HasArgumentPrefix("--serialize");
|
this.HasArgumentPrefix("--serialize");
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// This method currently just makes a best effort to detect file paths. Only use this method for optional optimizations
|
|
||||||
/// related to file paths. Do NOT use this method if you require a reliable answer.
|
|
||||||
/// </summary>
|
|
||||||
/// <returns>True if file paths were detected, otherwise false</returns>
|
|
||||||
public bool IsCheckoutWithFilePaths()
|
|
||||||
{
|
|
||||||
if (this.IsVerb(Verbs.Checkout))
|
|
||||||
{
|
|
||||||
int numArguments = this.parts.Length - ArgumentsOffset;
|
|
||||||
|
|
||||||
// The simplest way to know that we're dealing with file paths is if there are any arguments after a --
|
|
||||||
// e.g. git checkout branchName -- fileName
|
|
||||||
int dashDashIndex;
|
|
||||||
if (this.HasAnyArgument(arg => arg == "--", out dashDashIndex) &&
|
|
||||||
numArguments > dashDashIndex + 1)
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// We also special case one usage with HEAD, as long as there are no other arguments with - or -- that might
|
|
||||||
// result in behavior we haven't tested.
|
|
||||||
// e.g. git checkout HEAD fileName
|
|
||||||
if (numArguments >= 2 &&
|
|
||||||
!this.HasAnyArgument(arg => arg.StartsWith("-")) &&
|
|
||||||
this.HasArgumentAtIndex(ScalarConstants.DotGit.HeadName, argumentIndex: 0))
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Note: we have definitely missed some cases of file paths, e.g.:
|
|
||||||
// git checkout branchName fileName (detecting this reliably requires more complicated parsing)
|
|
||||||
// git checkout --patch (we currently have no need to optimize this scenario)
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool IsVerb(Verbs verbs)
|
public bool IsVerb(Verbs verbs)
|
||||||
{
|
{
|
||||||
if (!this.IsValidGitCommand)
|
if (!this.IsValidGitCommand)
|
||||||
|
|
|
@ -61,29 +61,6 @@ namespace Scalar.UnitTests.Common
|
||||||
new GitCommandLineParser("git status").IsResetSoftOrMixed().ShouldEqual(false);
|
new GitCommandLineParser("git status").IsResetSoftOrMixed().ShouldEqual(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
[TestCase]
|
|
||||||
public void IsCheckoutWithFilePathsTests()
|
|
||||||
{
|
|
||||||
new GitCommandLineParser("gits checkout branch -- file").IsCheckoutWithFilePaths().ShouldEqual(false);
|
|
||||||
|
|
||||||
new GitCommandLineParser("git checkout branch -- file").IsCheckoutWithFilePaths().ShouldEqual(true);
|
|
||||||
new GitCommandLineParser("git checkout branch -- file1 file2").IsCheckoutWithFilePaths().ShouldEqual(true);
|
|
||||||
new GitCommandLineParser("git checkout HEAD -- file").IsCheckoutWithFilePaths().ShouldEqual(true);
|
|
||||||
|
|
||||||
new GitCommandLineParser("git checkout HEAD file").IsCheckoutWithFilePaths().ShouldEqual(true);
|
|
||||||
new GitCommandLineParser("git checkout HEAD file1 file2").IsCheckoutWithFilePaths().ShouldEqual(true);
|
|
||||||
|
|
||||||
new GitCommandLineParser("git checkout branch file").IsCheckoutWithFilePaths().ShouldEqual(false);
|
|
||||||
new GitCommandLineParser("git checkout branch").IsCheckoutWithFilePaths().ShouldEqual(false);
|
|
||||||
new GitCommandLineParser("git checkout HEAD").IsCheckoutWithFilePaths().ShouldEqual(false);
|
|
||||||
|
|
||||||
new GitCommandLineParser("git checkout -b topic").IsCheckoutWithFilePaths().ShouldEqual(false);
|
|
||||||
|
|
||||||
new GitCommandLineParser("git checkout -b topic --").IsCheckoutWithFilePaths().ShouldEqual(false);
|
|
||||||
new GitCommandLineParser("git checkout HEAD --").IsCheckoutWithFilePaths().ShouldEqual(false);
|
|
||||||
new GitCommandLineParser("git checkout HEAD -- ").IsCheckoutWithFilePaths().ShouldEqual(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
[TestCase]
|
[TestCase]
|
||||||
public void IsSerializedStatusTests()
|
public void IsSerializedStatusTests()
|
||||||
{
|
{
|
||||||
|
|
Загрузка…
Ссылка в новой задаче