diff --git a/src/Native/OS.cs b/src/Native/OS.cs
index f11d1e7f..320b5208 100644
--- a/src/Native/OS.cs
+++ b/src/Native/OS.cs
@@ -162,6 +162,15 @@ namespace SourceGit.Native
_backend.OpenWithDefaultEditor(file);
}
+ public static string GetAbsPath(string root, string sub)
+ {
+ var fullpath = Path.Combine(root, sub);
+ if (OperatingSystem.IsWindows())
+ return fullpath.Replace('/', '\\');
+
+ return fullpath;
+ }
+
private static void UpdateGitVersion()
{
if (string.IsNullOrEmpty(_gitExecutable) || !File.Exists(_gitExecutable))
diff --git a/src/Resources/Locales/de_DE.axaml b/src/Resources/Locales/de_DE.axaml
index ba6592e9..bbfe4545 100644
--- a/src/Resources/Locales/de_DE.axaml
+++ b/src/Resources/Locales/de_DE.axaml
@@ -186,7 +186,6 @@
Kopieren
Kopiere gesamten Text
Pfad kopieren
- Dateinamen kopieren
Branch erstellen...
Basierend auf:
Erstellten Branch auschecken
diff --git a/src/Resources/Locales/en_US.axaml b/src/Resources/Locales/en_US.axaml
index 5c400979..5ff1e3a4 100644
--- a/src/Resources/Locales/en_US.axaml
+++ b/src/Resources/Locales/en_US.axaml
@@ -186,7 +186,7 @@
Copy
Copy All Text
Copy Path
- Copy File Name
+ Copy Full Path
Create Branch...
Based On:
Check out the created branch
diff --git a/src/Resources/Locales/es_ES.axaml b/src/Resources/Locales/es_ES.axaml
index 54cb588d..d8018097 100644
--- a/src/Resources/Locales/es_ES.axaml
+++ b/src/Resources/Locales/es_ES.axaml
@@ -189,7 +189,6 @@
Copiar
Copiar Todo el Texto
Copiar Ruta
- Copiar Nombre del Archivo
Crear Rama...
Basado En:
Checkout de la rama creada
diff --git a/src/Resources/Locales/fr_FR.axaml b/src/Resources/Locales/fr_FR.axaml
index 2dcd52ab..70d0af22 100644
--- a/src/Resources/Locales/fr_FR.axaml
+++ b/src/Resources/Locales/fr_FR.axaml
@@ -178,7 +178,6 @@
Type de Changement :
Copier
Copier tout le texte
- Copier le nom de fichier
Copier le chemin
Créer une branche...
Basé sur :
diff --git a/src/Resources/Locales/it_IT.axaml b/src/Resources/Locales/it_IT.axaml
index e973a99c..85038d9e 100644
--- a/src/Resources/Locales/it_IT.axaml
+++ b/src/Resources/Locales/it_IT.axaml
@@ -189,7 +189,6 @@
Copia
Copia Tutto il Testo
Copia Percorso
- Copia Nome File
Crea Branch...
Basato Su:
Checkout del Branch Creato
diff --git a/src/Resources/Locales/pt_BR.axaml b/src/Resources/Locales/pt_BR.axaml
index 8ff00158..4ee6cdbc 100644
--- a/src/Resources/Locales/pt_BR.axaml
+++ b/src/Resources/Locales/pt_BR.axaml
@@ -196,7 +196,6 @@
Copiar
Copiar todo o texto
Copiar Caminho
- Copiar Nome do Arquivo
Criar Branch...
Baseado Em:
Checar o branch criado
diff --git a/src/Resources/Locales/ru_RU.axaml b/src/Resources/Locales/ru_RU.axaml
index ede88a10..2d48d127 100644
--- a/src/Resources/Locales/ru_RU.axaml
+++ b/src/Resources/Locales/ru_RU.axaml
@@ -190,7 +190,6 @@
Копировать
Копировать весь текст
Копировать путь
- Копировать имя файла
Создать ветку...
Основан на:
Проверить созданную ветку
diff --git a/src/Resources/Locales/zh_CN.axaml b/src/Resources/Locales/zh_CN.axaml
index 783e5696..8d2b4f1e 100644
--- a/src/Resources/Locales/zh_CN.axaml
+++ b/src/Resources/Locales/zh_CN.axaml
@@ -189,7 +189,7 @@
复制
复制全部文本
复制路径
- 复制文件名
+ 复制完整路径
新建分支 ...
新分支基于 :
完成后切换到新分支
diff --git a/src/Resources/Locales/zh_TW.axaml b/src/Resources/Locales/zh_TW.axaml
index c10d195f..8e823f68 100644
--- a/src/Resources/Locales/zh_TW.axaml
+++ b/src/Resources/Locales/zh_TW.axaml
@@ -189,7 +189,7 @@
複製
複製全部內容
複製路徑
- 複製檔案名稱
+ 複製完整路徑
新增分支...
新分支基於:
完成後切換到新分支
diff --git a/src/ViewModels/BranchCompare.cs b/src/ViewModels/BranchCompare.cs
index b3c0009c..4edb978c 100644
--- a/src/ViewModels/BranchCompare.cs
+++ b/src/ViewModels/BranchCompare.cs
@@ -163,15 +163,15 @@ namespace SourceGit.ViewModels
};
menu.Items.Add(copyPath);
- var copyFileName = new MenuItem();
- copyFileName.Header = App.Text("CopyFileName");
- copyFileName.Icon = App.CreateMenuIcon("Icons.Copy");
- copyFileName.Click += (_, e) =>
+ var copyFullPath = new MenuItem();
+ copyFullPath.Header = App.Text("CopyFullPath");
+ copyFullPath.Icon = App.CreateMenuIcon("Icons.Copy");
+ copyFullPath.Click += (_, e) =>
{
- App.CopyText(Path.GetFileName(change.Path));
+ App.CopyText(Native.OS.GetAbsPath(_repo, change.Path));
e.Handled = true;
};
- menu.Items.Add(copyFileName);
+ menu.Items.Add(copyFullPath);
return menu;
}
diff --git a/src/ViewModels/CommitDetail.cs b/src/ViewModels/CommitDetail.cs
index 34ac8308..d04e674b 100644
--- a/src/ViewModels/CommitDetail.cs
+++ b/src/ViewModels/CommitDetail.cs
@@ -425,17 +425,17 @@ namespace SourceGit.ViewModels
ev.Handled = true;
};
- var copyFileName = new MenuItem();
- copyFileName.Header = App.Text("CopyFileName");
- copyFileName.Icon = App.CreateMenuIcon("Icons.Copy");
- copyFileName.Click += (_, e) =>
+ var copyFullPath = new MenuItem();
+ copyFullPath.Header = App.Text("CopyFullPath");
+ copyFullPath.Icon = App.CreateMenuIcon("Icons.Copy");
+ copyFullPath.Click += (_, e) =>
{
- App.CopyText(Path.GetFileName(change.Path));
+ App.CopyText(Native.OS.GetAbsPath(_repo.FullPath, change.Path));
e.Handled = true;
};
menu.Items.Add(copyPath);
- menu.Items.Add(copyFileName);
+ menu.Items.Add(copyFullPath);
return menu;
}
@@ -562,17 +562,17 @@ namespace SourceGit.ViewModels
ev.Handled = true;
};
- var copyFileName = new MenuItem();
- copyFileName.Header = App.Text("CopyFileName");
- copyFileName.Icon = App.CreateMenuIcon("Icons.Copy");
- copyFileName.Click += (_, e) =>
+ var copyFullPath = new MenuItem();
+ copyFullPath.Header = App.Text("CopyFullPath");
+ copyFullPath.Icon = App.CreateMenuIcon("Icons.Copy");
+ copyFullPath.Click += (_, e) =>
{
- App.CopyText(Path.GetFileName(file.Path));
+ App.CopyText(Native.OS.GetAbsPath(_repo.FullPath, file.Path));
e.Handled = true;
};
menu.Items.Add(copyPath);
- menu.Items.Add(copyFileName);
+ menu.Items.Add(copyFullPath);
return menu;
}
diff --git a/src/ViewModels/RevisionCompare.cs b/src/ViewModels/RevisionCompare.cs
index 77a408e0..3b5717a6 100644
--- a/src/ViewModels/RevisionCompare.cs
+++ b/src/ViewModels/RevisionCompare.cs
@@ -183,15 +183,15 @@ namespace SourceGit.ViewModels
};
menu.Items.Add(copyPath);
- var copyFileName = new MenuItem();
- copyFileName.Header = App.Text("CopyFileName");
- copyFileName.Icon = App.CreateMenuIcon("Icons.Copy");
- copyFileName.Click += (_, e) =>
+ var copyFullPath = new MenuItem();
+ copyFullPath.Header = App.Text("CopyFullPath");
+ copyFullPath.Icon = App.CreateMenuIcon("Icons.Copy");
+ copyFullPath.Click += (_, e) =>
{
- App.CopyText(Path.GetFileName(change.Path));
+ App.CopyText(Native.OS.GetAbsPath(_repo, change.Path));
e.Handled = true;
};
- menu.Items.Add(copyFileName);
+ menu.Items.Add(copyFullPath);
return menu;
}
diff --git a/src/ViewModels/StashesPage.cs b/src/ViewModels/StashesPage.cs
index 77ed5551..e69d9bb5 100644
--- a/src/ViewModels/StashesPage.cs
+++ b/src/ViewModels/StashesPage.cs
@@ -251,12 +251,12 @@ namespace SourceGit.ViewModels
ev.Handled = true;
};
- var copyFileName = new MenuItem();
- copyFileName.Header = App.Text("CopyFileName");
- copyFileName.Icon = App.CreateMenuIcon("Icons.Copy");
- copyFileName.Click += (_, e) =>
+ var copyFullPath = new MenuItem();
+ copyFullPath.Header = App.Text("CopyFullPath");
+ copyFullPath.Icon = App.CreateMenuIcon("Icons.Copy");
+ copyFullPath.Click += (_, e) =>
{
- App.CopyText(Path.GetFileName(change.Path));
+ App.CopyText(Native.OS.GetAbsPath(_repo.FullPath, change.Path));
e.Handled = true;
};
@@ -267,7 +267,7 @@ namespace SourceGit.ViewModels
menu.Items.Add(resetToThisRevision);
menu.Items.Add(new MenuItem { Header = "-" });
menu.Items.Add(copyPath);
- menu.Items.Add(copyFileName);
+ menu.Items.Add(copyFullPath);
return menu;
}
diff --git a/src/ViewModels/WorkingCopy.cs b/src/ViewModels/WorkingCopy.cs
index f9ddb288..40b4c50c 100644
--- a/src/ViewModels/WorkingCopy.cs
+++ b/src/ViewModels/WorkingCopy.cs
@@ -903,15 +903,15 @@ namespace SourceGit.ViewModels
};
menu.Items.Add(copy);
- var copyFileName = new MenuItem();
- copyFileName.Header = App.Text("CopyFileName");
- copyFileName.Icon = App.CreateMenuIcon("Icons.Copy");
- copyFileName.Click += (_, e) =>
+ var copyFullPath = new MenuItem();
+ copyFullPath.Header = App.Text("CopyFullPath");
+ copyFullPath.Icon = App.CreateMenuIcon("Icons.Copy");
+ copyFullPath.Click += (_, e) =>
{
- App.CopyText(Path.GetFileName(change.Path));
+ App.CopyText(Native.OS.GetAbsPath(_repo.FullPath, change.Path));
e.Handled = true;
};
- menu.Items.Add(copyFileName);
+ menu.Items.Add(copyFullPath);
}
else
{
@@ -1270,17 +1270,17 @@ namespace SourceGit.ViewModels
e.Handled = true;
};
- var copyFileName = new MenuItem();
- copyFileName.Header = App.Text("CopyFileName");
- copyFileName.Icon = App.CreateMenuIcon("Icons.Copy");
- copyFileName.Click += (_, e) =>
+ var copyFullPath = new MenuItem();
+ copyFullPath.Header = App.Text("CopyFullPath");
+ copyFullPath.Icon = App.CreateMenuIcon("Icons.Copy");
+ copyFullPath.Click += (_, e) =>
{
- App.CopyText(Path.GetFileName(change.Path));
+ App.CopyText(Native.OS.GetAbsPath(_repo.FullPath, change.Path));
e.Handled = true;
};
menu.Items.Add(copyPath);
- menu.Items.Add(copyFileName);
+ menu.Items.Add(copyFullPath);
}
else
{