Rename repo folder on clone

Take the name from the clone url
This commit is contained in:
Vishesh Handa
2021-02-19 12:27:33 +01:00
parent 6474adfa56
commit 7f35218bc0
4 changed files with 33 additions and 5 deletions

View File

@ -419,14 +419,13 @@ class GitJournalRepo with ChangeNotifier {
Future<void> completeGitHostSetup(
String repoFolderName, String remoteName) async {
var repoPath = p.join(gitBaseDirectory, repoFolderName);
Log.i("completeGitHostSetup repoPath: $repoPath");
repoPath = p.join(gitBaseDirectory, repoFolderName);
Log.i("repoPath: $repoPath");
_gitRepo = GitNoteRepository(gitDirPath: repoPath, settings: settings);
await _addFileInRepo(repo: this, settings: settings);
this.repoPath = repoPath;
_notesCache.clear();
remoteGitRepoConfigured = true;
notesFolder.reset(repoPath);

View File

@ -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({
@ -124,6 +127,14 @@ Future<String> _remoteDefaultBranch({
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 -
// * New Repo, No Local Changes
// * New Repo, Existing Changes

View File

@ -566,7 +566,25 @@ class GitHostSetupScreenState extends State<GitHostSetupScreen> {
Event.GitHostSetupComplete,
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);
}

View File

@ -188,7 +188,7 @@ packages:
description:
path: "."
ref: HEAD
resolved-ref: "98bffd6e738a5687ed29dd5e7a9c9b6004152510"
resolved-ref: c245e8984e27bc72178d73dedcceec5cbd5bdd9e
url: "https://github.com/GitJournal/dart-git.git"
source: git
version: "0.0.2"