mirror of
https://github.com/sourcegit-scm/sourcegit
synced 2025-05-22 04:34:59 +00:00
enhance: ensure sourcegit_rebase_jobs.json
only being used when orig-head
and onto
are both matched
Signed-off-by: leo <longshuang@msn.cn>
This commit is contained in:
parent
75b4a4b294
commit
413669741d
4 changed files with 35 additions and 36 deletions
|
@ -105,8 +105,6 @@ namespace SourceGit.ViewModels
|
|||
|
||||
public RebaseInProgress(Repository repo) : base(repo.FullPath, "rebase")
|
||||
{
|
||||
_gitDir = repo.GitDir;
|
||||
|
||||
HeadName = File.ReadAllText(Path.Combine(repo.GitDir, "rebase-merge", "head-name")).Trim();
|
||||
if (HeadName.StartsWith("refs/heads/"))
|
||||
HeadName = HeadName.Substring(11);
|
||||
|
@ -129,34 +127,14 @@ namespace SourceGit.ViewModels
|
|||
|
||||
public override bool Continue()
|
||||
{
|
||||
var succ = new Commands.Command()
|
||||
return new Commands.Command()
|
||||
{
|
||||
WorkingDirectory = _repo,
|
||||
Context = _repo,
|
||||
Editor = Commands.Command.EditorType.RebaseEditor,
|
||||
Args = $"rebase --continue",
|
||||
}.Exec();
|
||||
|
||||
if (succ)
|
||||
{
|
||||
var jobsFile = Path.Combine(_gitDir, "sourcegit_rebase_jobs.json");
|
||||
var rebaseMergeHead = Path.Combine(_gitDir, "REBASE_HEAD");
|
||||
var rebaseMergeFolder = Path.Combine(_gitDir, "rebase-merge");
|
||||
var rebaseApplyFolder = Path.Combine(_gitDir, "rebase-apply");
|
||||
if (File.Exists(jobsFile))
|
||||
File.Delete(jobsFile);
|
||||
if (File.Exists(rebaseMergeHead))
|
||||
File.Delete(rebaseMergeHead);
|
||||
if (Directory.Exists(rebaseMergeFolder))
|
||||
Directory.Delete(rebaseMergeFolder);
|
||||
if (Directory.Exists(rebaseApplyFolder))
|
||||
Directory.Delete(rebaseApplyFolder);
|
||||
}
|
||||
|
||||
return succ;
|
||||
}
|
||||
|
||||
private string _gitDir;
|
||||
}
|
||||
|
||||
public class RevertInProgress : InProgressContext
|
||||
|
|
|
@ -162,6 +162,8 @@ namespace SourceGit.ViewModels
|
|||
|
||||
var saveFile = Path.Combine(_repo.GitDir, "sourcegit_rebase_jobs.json");
|
||||
var collection = new Models.InteractiveRebaseJobCollection();
|
||||
collection.OrigHead = _repo.CurrentBranch.Head;
|
||||
collection.Onto = On.SHA;
|
||||
for (int i = Items.Count - 1; i >= 0; i--)
|
||||
{
|
||||
var item = Items[i];
|
||||
|
@ -178,9 +180,6 @@ namespace SourceGit.ViewModels
|
|||
return Task.Run(() =>
|
||||
{
|
||||
var succ = new Commands.InteractiveRebase(_repo.FullPath, On.SHA).Use(log).Exec();
|
||||
if (succ)
|
||||
File.Delete(saveFile);
|
||||
|
||||
log.Complete();
|
||||
Dispatcher.UIThread.Invoke(() => _repo.SetWatcherEnabled(true));
|
||||
return succ;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue