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(
|
||||
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);
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
@ -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"
|
||||
|
Reference in New Issue
Block a user