mirror of
https://github.com/sourcegit-scm/sourcegit.git
synced 2024-12-23 20:47:25 -08:00
fix<Clone>: fix crash reported by https://gitee.com/sourcegit/sourcegit/issues/I43UGJ
This commit is contained in:
parent
d7290a9cf6
commit
78bb68b82e
3 changed files with 16 additions and 7 deletions
|
@ -17,7 +17,7 @@ namespace SourceGit.Commands {
|
||||||
|
|
||||||
rs = rs.Trim();
|
rs = rs.Trim();
|
||||||
if (Path.IsPathRooted(rs)) return rs;
|
if (Path.IsPathRooted(rs)) return rs;
|
||||||
return Path.Combine(Cwd, rs);
|
return Path.GetFullPath(Path.Combine(Cwd, rs));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
using System.IO;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using System.Windows.Controls;
|
using System.Windows.Controls;
|
||||||
|
|
||||||
|
@ -40,14 +41,20 @@ namespace SourceGit.Views.Popups {
|
||||||
|
|
||||||
var path = Folder;
|
var path = Folder;
|
||||||
if (!string.IsNullOrEmpty(LocalName)) {
|
if (!string.IsNullOrEmpty(LocalName)) {
|
||||||
path += $"/{LocalName}";
|
path = Path.GetFullPath(Path.Combine(path, LocalName));
|
||||||
} else {
|
} else {
|
||||||
var idx = Uri.LastIndexOfAny(new char[] { '\\', '/' });
|
var name = Path.GetFileName(Uri);
|
||||||
var name = Uri.Substring(idx + 1);
|
if (name.EndsWith(".git")) name = name.Substring(0, name.Length - 4);
|
||||||
path += $"/{name.Replace(".git", "")}";
|
path = Path.GetFullPath(Path.Combine(path, name));
|
||||||
}
|
}
|
||||||
|
|
||||||
var repo = Models.Preference.Instance.AddRepository(path, path + "/.git", "");
|
if (!Directory.Exists(path)) {
|
||||||
|
Models.Exception.Raise($"Folder {path} not found!");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
var gitDir = new Commands.QueryGitDir(path).Result();
|
||||||
|
var repo = Models.Preference.Instance.AddRepository(path, gitDir, "");
|
||||||
if (repo != null) Dispatcher.Invoke(() => Models.Watcher.Open(repo));
|
if (repo != null) Dispatcher.Invoke(() => Models.Watcher.Open(repo));
|
||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
using System.IO;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace SourceGit.Views.Popups {
|
namespace SourceGit.Views.Popups {
|
||||||
|
@ -22,7 +23,8 @@ namespace SourceGit.Views.Popups {
|
||||||
var succ = new Commands.Init(WorkDir).Exec();
|
var succ = new Commands.Init(WorkDir).Exec();
|
||||||
if (!succ) return false;
|
if (!succ) return false;
|
||||||
|
|
||||||
var repo = Models.Preference.Instance.AddRepository(WorkDir, WorkDir + "\\.git", "");
|
var gitDir = Path.GetFullPath(Path.Combine(WorkDir, ".git"));
|
||||||
|
var repo = Models.Preference.Instance.AddRepository(WorkDir, gitDir, "");
|
||||||
Dispatcher.Invoke(() => Models.Watcher.Open(repo));
|
Dispatcher.Invoke(() => Models.Watcher.Open(repo));
|
||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in a new issue