Allow the remote main branch to give an error

In the case of empty repos.
This commit is contained in:
Vishesh Handa
2021-01-13 23:36:54 +01:00
parent eb2f4519a6
commit 53e9e9db29

View File

@ -405,14 +405,22 @@ class Repository with ChangeNotifier {
var repo = await GitRepository.load(repoPath); var repo = await GitRepository.load(repoPath);
var remote = repo.config.remote(remoteName); var remote = repo.config.remote(remoteName);
var remoteBranchName = await _gitRepo.defaultBranch(remoteName); var remoteBranchName = "master";
try {
remoteBranchName = await _gitRepo.defaultBranch(remoteName);
} catch (ex) {
Log.w("Could not get git main branch - assuming master", ex: ex);
}
var remoteBranch = await repo.remoteBranch(remoteName, remoteBranchName); var remoteBranch = await repo.remoteBranch(remoteName, remoteBranchName);
Log.i("Using remote branch: $remoteBranchName"); Log.i("Using remote branch: $remoteBranchName");
var branches = await repo.branches(); var branches = await repo.branches();
if (branches.isEmpty) { if (branches.isEmpty) {
Log.i("Completing - no local branch"); Log.i("Completing - no local branch");
if (remoteBranchName != null && remoteBranchName.isNotEmpty) { if (remoteBranchName != null &&
remoteBranchName.isNotEmpty &&
remoteBranch != null) {
await repo.checkoutBranch(remoteBranchName, remoteBranch.hash); await repo.checkoutBranch(remoteBranchName, remoteBranch.hash);
} }
await repo.setUpstreamTo(remote, remoteBranchName); await repo.setUpstreamTo(remote, remoteBranchName);