mirror of
https://github.com/sourcegit-scm/sourcegit
synced 2025-05-24 13:45:00 +00:00
fix: renamed files are missing in commit changes and stash changes (#1151)
Signed-off-by: leo <longshuang@msn.cn>
This commit is contained in:
parent
c615d04038
commit
8c9cf05c1d
2 changed files with 26 additions and 10 deletions
|
@ -6,8 +6,10 @@ namespace SourceGit.Commands
|
||||||
{
|
{
|
||||||
public partial class CompareRevisions : Command
|
public partial class CompareRevisions : Command
|
||||||
{
|
{
|
||||||
[GeneratedRegex(@"^([MADRC])\s+(.+)$")]
|
[GeneratedRegex(@"^([MADC])\s+(.+)$")]
|
||||||
private static partial Regex REG_FORMAT();
|
private static partial Regex REG_FORMAT();
|
||||||
|
[GeneratedRegex(@"^R[0-9]{0,4}\s+(.+)$")]
|
||||||
|
private static partial Regex REG_RENAME_FORMAT();
|
||||||
|
|
||||||
public CompareRevisions(string repo, string start, string end)
|
public CompareRevisions(string repo, string start, string end)
|
||||||
{
|
{
|
||||||
|
@ -38,7 +40,17 @@ namespace SourceGit.Commands
|
||||||
{
|
{
|
||||||
var match = REG_FORMAT().Match(line);
|
var match = REG_FORMAT().Match(line);
|
||||||
if (!match.Success)
|
if (!match.Success)
|
||||||
|
{
|
||||||
|
match = REG_RENAME_FORMAT().Match(line);
|
||||||
|
if (match.Success)
|
||||||
|
{
|
||||||
|
var renamed = new Models.Change() { Path = match.Groups[1].Value };
|
||||||
|
renamed.Set(Models.ChangeState.Renamed);
|
||||||
|
_changes.Add(renamed);
|
||||||
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
var change = new Models.Change() { Path = match.Groups[2].Value };
|
var change = new Models.Change() { Path = match.Groups[2].Value };
|
||||||
var status = match.Groups[1].Value;
|
var status = match.Groups[1].Value;
|
||||||
|
@ -57,10 +69,6 @@ namespace SourceGit.Commands
|
||||||
change.Set(Models.ChangeState.Deleted);
|
change.Set(Models.ChangeState.Deleted);
|
||||||
_changes.Add(change);
|
_changes.Add(change);
|
||||||
break;
|
break;
|
||||||
case 'R':
|
|
||||||
change.Set(Models.ChangeState.Renamed);
|
|
||||||
_changes.Add(change);
|
|
||||||
break;
|
|
||||||
case 'C':
|
case 'C':
|
||||||
change.Set(Models.ChangeState.Copied);
|
change.Set(Models.ChangeState.Copied);
|
||||||
_changes.Add(change);
|
_changes.Add(change);
|
||||||
|
|
|
@ -9,8 +9,10 @@ namespace SourceGit.Commands
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public partial class QueryStashChanges : Command
|
public partial class QueryStashChanges : Command
|
||||||
{
|
{
|
||||||
[GeneratedRegex(@"^([MADRC])\s+(.+)$")]
|
[GeneratedRegex(@"^([MADC])\s+(.+)$")]
|
||||||
private static partial Regex REG_FORMAT();
|
private static partial Regex REG_FORMAT();
|
||||||
|
[GeneratedRegex(@"^R[0-9]{0,4}\s+(.+)$")]
|
||||||
|
private static partial Regex REG_RENAME_FORMAT();
|
||||||
|
|
||||||
public QueryStashChanges(string repo, string stash)
|
public QueryStashChanges(string repo, string stash)
|
||||||
{
|
{
|
||||||
|
@ -31,7 +33,17 @@ namespace SourceGit.Commands
|
||||||
{
|
{
|
||||||
var match = REG_FORMAT().Match(line);
|
var match = REG_FORMAT().Match(line);
|
||||||
if (!match.Success)
|
if (!match.Success)
|
||||||
|
{
|
||||||
|
match = REG_RENAME_FORMAT().Match(line);
|
||||||
|
if (match.Success)
|
||||||
|
{
|
||||||
|
var renamed = new Models.Change() { Path = match.Groups[1].Value };
|
||||||
|
renamed.Set(Models.ChangeState.Renamed);
|
||||||
|
outs.Add(renamed);
|
||||||
|
}
|
||||||
|
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
var change = new Models.Change() { Path = match.Groups[2].Value };
|
var change = new Models.Change() { Path = match.Groups[2].Value };
|
||||||
var status = match.Groups[1].Value;
|
var status = match.Groups[1].Value;
|
||||||
|
@ -50,10 +62,6 @@ namespace SourceGit.Commands
|
||||||
change.Set(Models.ChangeState.Deleted);
|
change.Set(Models.ChangeState.Deleted);
|
||||||
outs.Add(change);
|
outs.Add(change);
|
||||||
break;
|
break;
|
||||||
case 'R':
|
|
||||||
change.Set(Models.ChangeState.Renamed);
|
|
||||||
outs.Add(change);
|
|
||||||
break;
|
|
||||||
case 'C':
|
case 'C':
|
||||||
change.Set(Models.ChangeState.Copied);
|
change.Set(Models.ChangeState.Copied);
|
||||||
outs.Add(change);
|
outs.Add(change);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue