mirror of
https://github.com/GitJournal/GitJournal.git
synced 2025-06-26 16:46:51 +08:00
Rename repo folder on clone
Take the name from the clone url
This commit is contained in:
@ -419,14 +419,13 @@ class GitJournalRepo with ChangeNotifier {
|
|||||||
|
|
||||||
Future<void> completeGitHostSetup(
|
Future<void> completeGitHostSetup(
|
||||||
String repoFolderName, String remoteName) async {
|
String repoFolderName, String remoteName) async {
|
||||||
var repoPath = p.join(gitBaseDirectory, repoFolderName);
|
repoPath = p.join(gitBaseDirectory, repoFolderName);
|
||||||
Log.i("completeGitHostSetup repoPath: $repoPath");
|
Log.i("repoPath: $repoPath");
|
||||||
|
|
||||||
_gitRepo = GitNoteRepository(gitDirPath: repoPath, settings: settings);
|
_gitRepo = GitNoteRepository(gitDirPath: repoPath, settings: settings);
|
||||||
|
|
||||||
await _addFileInRepo(repo: this, settings: settings);
|
await _addFileInRepo(repo: this, settings: settings);
|
||||||
|
|
||||||
this.repoPath = repoPath;
|
|
||||||
_notesCache.clear();
|
_notesCache.clear();
|
||||||
remoteGitRepoConfigured = true;
|
remoteGitRepoConfigured = true;
|
||||||
notesFolder.reset(repoPath);
|
notesFolder.reset(repoPath);
|
||||||
|
@ -92,6 +92,9 @@ Future<void> cloneRemote({
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Just to be on the safer side, incase dart-git fucks up something
|
||||||
|
await repo.checkout(".");
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<String> _remoteDefaultBranch({
|
Future<String> _remoteDefaultBranch({
|
||||||
@ -124,6 +127,14 @@ Future<String> _remoteDefaultBranch({
|
|||||||
return remoteBranch.target.branchName();
|
return remoteBranch.target.branchName();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String folderNameFromCloneUrl(String cloneUrl) {
|
||||||
|
var name = p.basename(cloneUrl);
|
||||||
|
if (name.endsWith('.git')) {
|
||||||
|
name = name.substring(0, name.length - 4);
|
||||||
|
}
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
// Test Cases -
|
// Test Cases -
|
||||||
// * New Repo, No Local Changes
|
// * New Repo, No Local Changes
|
||||||
// * New Repo, Existing Changes
|
// * New Repo, Existing Changes
|
||||||
|
@ -566,7 +566,25 @@ class GitHostSetupScreenState extends State<GitHostSetupScreen> {
|
|||||||
Event.GitHostSetupComplete,
|
Event.GitHostSetupComplete,
|
||||||
parameters: _buildOnboardingAnalytics(),
|
parameters: _buildOnboardingAnalytics(),
|
||||||
);
|
);
|
||||||
await widget.onCompletedFunction(widget.repoFolderName, widget.remoteName);
|
|
||||||
|
var folderName = folderNameFromCloneUrl(_gitCloneUrl);
|
||||||
|
if (folderName != widget.repoFolderName) {
|
||||||
|
var newRepoPath = p.join(basePath, folderName);
|
||||||
|
var i = 0;
|
||||||
|
while (Directory(newRepoPath).existsSync()) {
|
||||||
|
i++;
|
||||||
|
newRepoPath = p.join(basePath, folderName + "_$i");
|
||||||
|
}
|
||||||
|
folderName = p.basename(newRepoPath);
|
||||||
|
|
||||||
|
var repoPath = p.join(basePath, widget.repoFolderName);
|
||||||
|
Log.i("Renaming $repoPath --> $newRepoPath");
|
||||||
|
await Directory(repoPath).rename(newRepoPath);
|
||||||
|
settings.folderName = p.basename(newRepoPath);
|
||||||
|
}
|
||||||
|
|
||||||
|
Log.i("calling onComplete $folderName ${widget.remoteName}");
|
||||||
|
await widget.onCompletedFunction(folderName, widget.remoteName);
|
||||||
Navigator.pop(context);
|
Navigator.pop(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -188,7 +188,7 @@ packages:
|
|||||||
description:
|
description:
|
||||||
path: "."
|
path: "."
|
||||||
ref: HEAD
|
ref: HEAD
|
||||||
resolved-ref: "98bffd6e738a5687ed29dd5e7a9c9b6004152510"
|
resolved-ref: c245e8984e27bc72178d73dedcceec5cbd5bdd9e
|
||||||
url: "https://github.com/GitJournal/dart-git.git"
|
url: "https://github.com/GitJournal/dart-git.git"
|
||||||
source: git
|
source: git
|
||||||
version: "0.0.2"
|
version: "0.0.2"
|
||||||
|
Reference in New Issue
Block a user