* chore(gitea-git-clone): update changelog for version 1.2.1

* fix(gitea-git-clone): cloning into existing subpath working again
* fix(gitea-git-clone): update German translation for targetExists message
* fix(gitea-git-clone): update English translation for targetExists message
* fix(gitea-git-clone): update cloneGiteaRepository function to check if target directory already exists before cloning
This commit is contained in:
Peter 2024-10-23 10:46:48 +02:00
parent 5273dbc30f
commit 3e77dd62f7
4 changed files with 23 additions and 4 deletions

View File

@ -10,6 +10,13 @@ Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how
- if working in PR show different Icon with hint
- fix progress bar in notification
## 1.2.1
### Fixed
- cloning into existing subpath working again
## 1.2.0
### Added

View File

@ -33,6 +33,7 @@
"giteaClone.selectPullRequest": "Wähle einen Pull Request zum Anzeigen aus",
"giteaClone.repoInfoError": "Konnte Repository-Informationen nicht abrufen.",
"giteaClone.pullRequestsError": "Fehler beim Abrufen der Pull Requests.",
"giteaClone.showOpenPullRequestsTooltip": "Offene Pull Requests anzeigen"
"giteaClone.showOpenPullRequestsTooltip": "Offene Pull Requests anzeigen",
"giteaClone.targetExists": "Das Zielverzeichnis \"{0}\" existiert bereits."
}

View File

@ -33,6 +33,7 @@
"giteaClone.selectPullRequest": "Select a pull request to view",
"giteaClone.repoInfoError": "Could not retrieve repository information.",
"giteaClone.pullRequestsError": "Error retrieving pull requests.",
"giteaClone.showOpenPullRequestsTooltip": "Show open pull requests"
"giteaClone.showOpenPullRequestsTooltip": "Show open pull requests",
"giteaClone.targetExists": "The target directory \"{0}\" already exists."
}

View File

@ -2,6 +2,8 @@ import * as vscode from 'vscode';
import axios from 'axios';
import { exec } from 'child_process';
import * as nls from 'vscode-nls';
import * as path from 'path';
import * as fs from 'fs';
// Initialisiere die Lokalisierung
const localize = nls.config({ messageFormat: nls.MessageFormat.file })();
@ -203,6 +205,14 @@ async function cloneGiteaRepository() {
if (folderUri && folderUri[0]) {
const folderPath = folderUri[0].fsPath;
const repoName = repo.name;
const targetPath = path.join(folderPath, repoName);
// Überprüfen, ob das Zielverzeichnis bereits existiert
if (fs.existsSync(targetPath)) {
vscode.window.showErrorMessage(localize('giteaClone.targetExists', `The target directory "${targetPath}" already exists.`));
return;
}
vscode.window.withProgress({
location: vscode.ProgressLocation.Notification,
@ -212,7 +222,7 @@ async function cloneGiteaRepository() {
progress.report({ message: localize('giteaClone.cloningProgress', 'Cloning in progress...'), increment: 0 });
return new Promise<void>((resolve, reject) => {
exec(`git clone ${repo.ssh_url} ${folderPath}`, (error, stdout, stderr) => {
exec(`git clone ${repo.ssh_url} "${targetPath}"`, (error, stdout, stderr) => {
if (error) {
vscode.window.showErrorMessage(localize('giteaClone.cloneError', 'Error cloning the repository.'));
console.error(stderr);
@ -223,7 +233,7 @@ async function cloneGiteaRepository() {
// Öffne das geklonte Repository im VSCode
try {
vscode.commands.executeCommand('vscode.openFolder', vscode.Uri.file(folderPath), true)
vscode.commands.executeCommand('vscode.openFolder', vscode.Uri.file(targetPath), true)
.then(() => resolve());
} catch (err: unknown) {
vscode.window.showErrorMessage(localize('giteaClone.openRepoError', 'Error opening the cloned repository.'));