mirror of
https://github.com/sourcegit-scm/sourcegit
synced 2025-05-21 04:04:59 +00:00
Merge branch 'release/2025.11'
This commit is contained in:
commit
1138ba304d
26 changed files with 167 additions and 100 deletions
|
@ -6,13 +6,15 @@ This document shows the translation status of each locale file in the repository
|
||||||
|
|
||||||
### 
|
### 
|
||||||
|
|
||||||
### 
|
### 
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>Missing keys in de_DE.axaml</summary>
|
<summary>Missing keys in de_DE.axaml</summary>
|
||||||
|
|
||||||
- Text.BranchUpstreamInvalid
|
- Text.BranchUpstreamInvalid
|
||||||
- Text.Configure.CustomAction.WaitForExit
|
- Text.Configure.CustomAction.WaitForExit
|
||||||
|
- Text.Configure.IssueTracker.AddSampleAzure
|
||||||
|
- Text.CopyFullPath
|
||||||
- Text.Diff.First
|
- Text.Diff.First
|
||||||
- Text.Diff.Last
|
- Text.Diff.Last
|
||||||
- Text.Preferences.AI.Streaming
|
- Text.Preferences.AI.Streaming
|
||||||
|
@ -27,22 +29,30 @@ This document shows the translation status of each locale file in the repository
|
||||||
<details>
|
<details>
|
||||||
<summary>Missing keys in es_ES.axaml</summary>
|
<summary>Missing keys in es_ES.axaml</summary>
|
||||||
|
|
||||||
- Text.Preferences.General.ShowTagsInGraph
|
- Text.CopyFullPath
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
### 
|
### 
|
||||||
|
|
||||||
### 
|
<details>
|
||||||
|
<summary>Missing keys in fr_FR.axaml</summary>
|
||||||
|
|
||||||
|
- Text.CopyFullPath
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
### 
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>Missing keys in it_IT.axaml</summary>
|
<summary>Missing keys in it_IT.axaml</summary>
|
||||||
|
|
||||||
|
- Text.CopyFullPath
|
||||||
- Text.Preferences.General.ShowTagsInGraph
|
- Text.Preferences.General.ShowTagsInGraph
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
### 
|
### 
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>Missing keys in pt_BR.axaml</summary>
|
<summary>Missing keys in pt_BR.axaml</summary>
|
||||||
|
@ -65,6 +75,7 @@ This document shows the translation status of each locale file in the repository
|
||||||
- Text.Configure.CustomAction.WaitForExit
|
- Text.Configure.CustomAction.WaitForExit
|
||||||
- Text.Configure.IssueTracker.AddSampleGiteeIssue
|
- Text.Configure.IssueTracker.AddSampleGiteeIssue
|
||||||
- Text.Configure.IssueTracker.AddSampleGiteePullRequest
|
- Text.Configure.IssueTracker.AddSampleGiteePullRequest
|
||||||
|
- Text.CopyFullPath
|
||||||
- Text.CreateBranch.Name.WarnSpace
|
- Text.CreateBranch.Name.WarnSpace
|
||||||
- Text.DeleteRepositoryNode.Path
|
- Text.DeleteRepositoryNode.Path
|
||||||
- Text.DeleteRepositoryNode.TipForGroup
|
- Text.DeleteRepositoryNode.TipForGroup
|
||||||
|
|
2
VERSION
2
VERSION
|
@ -1 +1 @@
|
||||||
2025.10
|
2025.11
|
|
@ -1,7 +1,8 @@
|
||||||
Package: sourcegit
|
Package: sourcegit
|
||||||
Version: 8.23
|
Version: 2025.10
|
||||||
Priority: optional
|
Priority: optional
|
||||||
Depends: libx11-6, libice6, libsm6, libicu | libicu76 | libicu74 | libicu72 | libicu71 | libicu70 | libicu69 | libicu68 | libicu67 | libicu66 | libicu65 | libicu63 | libicu60 | libicu57 | libicu55 | libicu52, xdg-utils
|
Depends: libx11-6, libice6, libsm6, libicu | libicu76 | libicu74 | libicu72 | libicu71 | libicu70 | libicu69 | libicu68 | libicu67 | libicu66 | libicu65 | libicu63 | libicu60 | libicu57 | libicu55 | libicu52, xdg-utils
|
||||||
Architecture: amd64
|
Architecture: amd64
|
||||||
|
Installed-Size: 60440
|
||||||
Maintainer: longshuang@msn.cn
|
Maintainer: longshuang@msn.cn
|
||||||
Description: Open-source & Free Git GUI Client
|
Description: Open-source & Free Git GUI Client
|
||||||
|
|
|
@ -56,8 +56,15 @@ cp -f SourceGit/* resources/deb/opt/sourcegit
|
||||||
ln -rsf resources/deb/opt/sourcegit/sourcegit resources/deb/usr/bin
|
ln -rsf resources/deb/opt/sourcegit/sourcegit resources/deb/usr/bin
|
||||||
cp -r resources/_common/applications resources/deb/usr/share
|
cp -r resources/_common/applications resources/deb/usr/share
|
||||||
cp -r resources/_common/icons resources/deb/usr/share
|
cp -r resources/_common/icons resources/deb/usr/share
|
||||||
sed -i -e "s/^Version:.*/Version: $VERSION/" -e "s/^Architecture:.*/Architecture: $arch/" resources/deb/DEBIAN/control
|
# Calculate installed size in KB
|
||||||
dpkg-deb --root-owner-group --build resources/deb "sourcegit_$VERSION-1_$arch.deb"
|
installed_size=$(du -sk resources/deb | cut -f1)
|
||||||
|
# Update the control file
|
||||||
|
sed -i -e "s/^Version:.*/Version: $VERSION/" \
|
||||||
|
-e "s/^Architecture:.*/Architecture: $arch/" \
|
||||||
|
-e "s/^Installed-Size:.*/Installed-Size: $installed_size/" \
|
||||||
|
resources/deb/DEBIAN/control
|
||||||
|
# Build deb package with gzip compression
|
||||||
|
dpkg-deb -Zgzip --root-owner-group --build resources/deb "sourcegit_$VERSION-1_$arch.deb"
|
||||||
|
|
||||||
rpmbuild -bb --target="$target" resources/rpm/SPECS/build.spec --define "_topdir $(pwd)/resources/rpm" --define "_version $VERSION"
|
rpmbuild -bb --target="$target" resources/rpm/SPECS/build.spec --define "_topdir $(pwd)/resources/rpm" --define "_version $VERSION"
|
||||||
mv "resources/rpm/RPMS/$target/sourcegit-$VERSION-1.$target.rpm" ./
|
mv "resources/rpm/RPMS/$target/sourcegit-$VERSION-1.$target.rpm" ./
|
||||||
|
|
|
@ -37,7 +37,6 @@ namespace SourceGit
|
||||||
|
|
||||||
TaskScheduler.UnobservedTaskException += (_, e) =>
|
TaskScheduler.UnobservedTaskException += (_, e) =>
|
||||||
{
|
{
|
||||||
LogException(e.Exception);
|
|
||||||
e.SetObserved();
|
e.SetObserved();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -560,8 +559,22 @@ namespace SourceGit
|
||||||
foreach (var part in parts)
|
foreach (var part in parts)
|
||||||
{
|
{
|
||||||
var t = part.Trim();
|
var t = part.Trim();
|
||||||
if (!string.IsNullOrEmpty(t))
|
if (string.IsNullOrEmpty(t))
|
||||||
trimmed.Add(t);
|
continue;
|
||||||
|
|
||||||
|
// Collapse multiple spaces into single space
|
||||||
|
var prevChar = '\0';
|
||||||
|
var sb = new StringBuilder();
|
||||||
|
|
||||||
|
foreach (var c in t)
|
||||||
|
{
|
||||||
|
if (c == ' ' && prevChar == ' ')
|
||||||
|
continue;
|
||||||
|
sb.Append(c);
|
||||||
|
prevChar = c;
|
||||||
|
}
|
||||||
|
|
||||||
|
trimmed.Add(sb.ToString());
|
||||||
}
|
}
|
||||||
|
|
||||||
return trimmed.Count > 0 ? string.Join(',', trimmed) : string.Empty;
|
return trimmed.Count > 0 ? string.Join(',', trimmed) : string.Empty;
|
||||||
|
|
|
@ -82,7 +82,7 @@ namespace SourceGit.Commands
|
||||||
|
|
||||||
public bool Pop(string name)
|
public bool Pop(string name)
|
||||||
{
|
{
|
||||||
Args = $"stash pop -q \"{name}\"";
|
Args = $"stash pop -q --index \"{name}\"";
|
||||||
return Exec();
|
return Exec();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
@ -196,8 +196,8 @@ namespace SourceGit.Models
|
||||||
private string GetEmailHash(string email)
|
private string GetEmailHash(string email)
|
||||||
{
|
{
|
||||||
var lowered = email.ToLower(CultureInfo.CurrentCulture).Trim();
|
var lowered = email.ToLower(CultureInfo.CurrentCulture).Trim();
|
||||||
var hash = MD5.Create().ComputeHash(Encoding.Default.GetBytes(lowered));
|
var hash = MD5.HashData(Encoding.Default.GetBytes(lowered).AsSpan());
|
||||||
var builder = new StringBuilder();
|
var builder = new StringBuilder(hash.Length * 2);
|
||||||
foreach (var c in hash)
|
foreach (var c in hash)
|
||||||
builder.Append(c.ToString("x2"));
|
builder.Append(c.ToString("x2"));
|
||||||
return builder.ToString();
|
return builder.ToString();
|
||||||
|
|
|
@ -162,6 +162,15 @@ namespace SourceGit.Native
|
||||||
_backend.OpenWithDefaultEditor(file);
|
_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()
|
private static void UpdateGitVersion()
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(_gitExecutable) || !File.Exists(_gitExecutable))
|
if (string.IsNullOrEmpty(_gitExecutable) || !File.Exists(_gitExecutable))
|
||||||
|
|
|
@ -186,7 +186,6 @@
|
||||||
<x:String x:Key="Text.Copy" xml:space="preserve">Kopieren</x:String>
|
<x:String x:Key="Text.Copy" xml:space="preserve">Kopieren</x:String>
|
||||||
<x:String x:Key="Text.CopyAllText" xml:space="preserve">Kopiere gesamten Text</x:String>
|
<x:String x:Key="Text.CopyAllText" xml:space="preserve">Kopiere gesamten Text</x:String>
|
||||||
<x:String x:Key="Text.CopyPath" xml:space="preserve">Pfad kopieren</x:String>
|
<x:String x:Key="Text.CopyPath" xml:space="preserve">Pfad kopieren</x:String>
|
||||||
<x:String x:Key="Text.CopyFileName" xml:space="preserve">Dateinamen kopieren</x:String>
|
|
||||||
<x:String x:Key="Text.CreateBranch" xml:space="preserve">Branch erstellen...</x:String>
|
<x:String x:Key="Text.CreateBranch" xml:space="preserve">Branch erstellen...</x:String>
|
||||||
<x:String x:Key="Text.CreateBranch.BasedOn" xml:space="preserve">Basierend auf:</x:String>
|
<x:String x:Key="Text.CreateBranch.BasedOn" xml:space="preserve">Basierend auf:</x:String>
|
||||||
<x:String x:Key="Text.CreateBranch.Checkout" xml:space="preserve">Erstellten Branch auschecken</x:String>
|
<x:String x:Key="Text.CreateBranch.Checkout" xml:space="preserve">Erstellten Branch auschecken</x:String>
|
||||||
|
@ -650,7 +649,6 @@
|
||||||
<x:String x:Key="Text.Stash.Title" xml:space="preserve">Lokale Änderungen stashen</x:String>
|
<x:String x:Key="Text.Stash.Title" xml:space="preserve">Lokale Änderungen stashen</x:String>
|
||||||
<x:String x:Key="Text.StashCM.Apply" xml:space="preserve">Anwenden</x:String>
|
<x:String x:Key="Text.StashCM.Apply" xml:space="preserve">Anwenden</x:String>
|
||||||
<x:String x:Key="Text.StashCM.Drop" xml:space="preserve">Entfernen</x:String>
|
<x:String x:Key="Text.StashCM.Drop" xml:space="preserve">Entfernen</x:String>
|
||||||
<x:String x:Key="Text.StashCM.Pop" xml:space="preserve">Anwenden und entfernen</x:String>
|
|
||||||
<x:String x:Key="Text.StashDropConfirm" xml:space="preserve">Stash entfernen</x:String>
|
<x:String x:Key="Text.StashDropConfirm" xml:space="preserve">Stash entfernen</x:String>
|
||||||
<x:String x:Key="Text.StashDropConfirm.Label" xml:space="preserve">Entfernen:</x:String>
|
<x:String x:Key="Text.StashDropConfirm.Label" xml:space="preserve">Entfernen:</x:String>
|
||||||
<x:String x:Key="Text.Stashes" xml:space="preserve">Stashes</x:String>
|
<x:String x:Key="Text.Stashes" xml:space="preserve">Stashes</x:String>
|
||||||
|
|
|
@ -160,6 +160,7 @@
|
||||||
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGitLabIssue" xml:space="preserve">Add Sample GitLab Issue Rule</x:String>
|
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGitLabIssue" xml:space="preserve">Add Sample GitLab Issue Rule</x:String>
|
||||||
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGitLabMergeRequest" xml:space="preserve">Add Sample GitLab Merge Request Rule</x:String>
|
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGitLabMergeRequest" xml:space="preserve">Add Sample GitLab Merge Request Rule</x:String>
|
||||||
<x:String x:Key="Text.Configure.IssueTracker.AddSampleJira" xml:space="preserve">Add Sample Jira Rule</x:String>
|
<x:String x:Key="Text.Configure.IssueTracker.AddSampleJira" xml:space="preserve">Add Sample Jira Rule</x:String>
|
||||||
|
<x:String x:Key="Text.Configure.IssueTracker.AddSampleAzure" xml:space="preserve">Add Sample Azure DevOps Rule</x:String>
|
||||||
<x:String x:Key="Text.Configure.IssueTracker.NewRule" xml:space="preserve">New Rule</x:String>
|
<x:String x:Key="Text.Configure.IssueTracker.NewRule" xml:space="preserve">New Rule</x:String>
|
||||||
<x:String x:Key="Text.Configure.IssueTracker.Regex" xml:space="preserve">Issue Regex Expression:</x:String>
|
<x:String x:Key="Text.Configure.IssueTracker.Regex" xml:space="preserve">Issue Regex Expression:</x:String>
|
||||||
<x:String x:Key="Text.Configure.IssueTracker.RuleName" xml:space="preserve">Rule Name:</x:String>
|
<x:String x:Key="Text.Configure.IssueTracker.RuleName" xml:space="preserve">Rule Name:</x:String>
|
||||||
|
@ -185,7 +186,7 @@
|
||||||
<x:String x:Key="Text.Copy" xml:space="preserve">Copy</x:String>
|
<x:String x:Key="Text.Copy" xml:space="preserve">Copy</x:String>
|
||||||
<x:String x:Key="Text.CopyAllText" xml:space="preserve">Copy All Text</x:String>
|
<x:String x:Key="Text.CopyAllText" xml:space="preserve">Copy All Text</x:String>
|
||||||
<x:String x:Key="Text.CopyPath" xml:space="preserve">Copy Path</x:String>
|
<x:String x:Key="Text.CopyPath" xml:space="preserve">Copy Path</x:String>
|
||||||
<x:String x:Key="Text.CopyFileName" xml:space="preserve">Copy File Name</x:String>
|
<x:String x:Key="Text.CopyFullPath" xml:space="preserve">Copy Full Path</x:String>
|
||||||
<x:String x:Key="Text.CreateBranch" xml:space="preserve">Create Branch...</x:String>
|
<x:String x:Key="Text.CreateBranch" xml:space="preserve">Create Branch...</x:String>
|
||||||
<x:String x:Key="Text.CreateBranch.BasedOn" xml:space="preserve">Based On:</x:String>
|
<x:String x:Key="Text.CreateBranch.BasedOn" xml:space="preserve">Based On:</x:String>
|
||||||
<x:String x:Key="Text.CreateBranch.Checkout" xml:space="preserve">Check out the created branch</x:String>
|
<x:String x:Key="Text.CreateBranch.Checkout" xml:space="preserve">Check out the created branch</x:String>
|
||||||
|
@ -654,7 +655,6 @@
|
||||||
<x:String x:Key="Text.Stash.Title" xml:space="preserve">Stash Local Changes</x:String>
|
<x:String x:Key="Text.Stash.Title" xml:space="preserve">Stash Local Changes</x:String>
|
||||||
<x:String x:Key="Text.StashCM.Apply" xml:space="preserve">Apply</x:String>
|
<x:String x:Key="Text.StashCM.Apply" xml:space="preserve">Apply</x:String>
|
||||||
<x:String x:Key="Text.StashCM.Drop" xml:space="preserve">Drop</x:String>
|
<x:String x:Key="Text.StashCM.Drop" xml:space="preserve">Drop</x:String>
|
||||||
<x:String x:Key="Text.StashCM.Pop" xml:space="preserve">Pop</x:String>
|
|
||||||
<x:String x:Key="Text.StashCM.SaveAsPatch" xml:space="preserve">Save as Patch...</x:String>
|
<x:String x:Key="Text.StashCM.SaveAsPatch" xml:space="preserve">Save as Patch...</x:String>
|
||||||
<x:String x:Key="Text.StashDropConfirm" xml:space="preserve">Drop Stash</x:String>
|
<x:String x:Key="Text.StashDropConfirm" xml:space="preserve">Drop Stash</x:String>
|
||||||
<x:String x:Key="Text.StashDropConfirm.Label" xml:space="preserve">Drop:</x:String>
|
<x:String x:Key="Text.StashDropConfirm.Label" xml:space="preserve">Drop:</x:String>
|
||||||
|
|
|
@ -161,6 +161,7 @@
|
||||||
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGiteePullRequest" xml:space="preserve">Añadir Regla de Ejemplo para Pull Requests de Gitee</x:String>
|
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGiteePullRequest" xml:space="preserve">Añadir Regla de Ejemplo para Pull Requests de Gitee</x:String>
|
||||||
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGithub" xml:space="preserve">Añadir Regla de Ejemplo para Github</x:String>
|
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGithub" xml:space="preserve">Añadir Regla de Ejemplo para Github</x:String>
|
||||||
<x:String x:Key="Text.Configure.IssueTracker.AddSampleJira" xml:space="preserve">Añadir Regla de Ejemplo para Jira</x:String>
|
<x:String x:Key="Text.Configure.IssueTracker.AddSampleJira" xml:space="preserve">Añadir Regla de Ejemplo para Jira</x:String>
|
||||||
|
<x:String x:Key="Text.Configure.IssueTracker.AddSampleAzure" xml:space="preserve">Añadir Regla de Ejemplo para Azure DevOps</x:String>
|
||||||
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGitLabIssue" xml:space="preserve">Añadir Regla de Ejemplo para Incidencias de GitLab</x:String>
|
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGitLabIssue" xml:space="preserve">Añadir Regla de Ejemplo para Incidencias de GitLab</x:String>
|
||||||
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGitLabMergeRequest" xml:space="preserve">Añadir Regla de Ejemplo para Merge Requests de GitLab</x:String>
|
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGitLabMergeRequest" xml:space="preserve">Añadir Regla de Ejemplo para Merge Requests de GitLab</x:String>
|
||||||
<x:String x:Key="Text.Configure.IssueTracker.NewRule" xml:space="preserve">Nueva Regla</x:String>
|
<x:String x:Key="Text.Configure.IssueTracker.NewRule" xml:space="preserve">Nueva Regla</x:String>
|
||||||
|
@ -188,7 +189,6 @@
|
||||||
<x:String x:Key="Text.Copy" xml:space="preserve">Copiar</x:String>
|
<x:String x:Key="Text.Copy" xml:space="preserve">Copiar</x:String>
|
||||||
<x:String x:Key="Text.CopyAllText" xml:space="preserve">Copiar Todo el Texto</x:String>
|
<x:String x:Key="Text.CopyAllText" xml:space="preserve">Copiar Todo el Texto</x:String>
|
||||||
<x:String x:Key="Text.CopyPath" xml:space="preserve">Copiar Ruta</x:String>
|
<x:String x:Key="Text.CopyPath" xml:space="preserve">Copiar Ruta</x:String>
|
||||||
<x:String x:Key="Text.CopyFileName" xml:space="preserve">Copiar Nombre del Archivo</x:String>
|
|
||||||
<x:String x:Key="Text.CreateBranch" xml:space="preserve">Crear Rama...</x:String>
|
<x:String x:Key="Text.CreateBranch" xml:space="preserve">Crear Rama...</x:String>
|
||||||
<x:String x:Key="Text.CreateBranch.BasedOn" xml:space="preserve">Basado En:</x:String>
|
<x:String x:Key="Text.CreateBranch.BasedOn" xml:space="preserve">Basado En:</x:String>
|
||||||
<x:String x:Key="Text.CreateBranch.Checkout" xml:space="preserve">Checkout de la rama creada</x:String>
|
<x:String x:Key="Text.CreateBranch.Checkout" xml:space="preserve">Checkout de la rama creada</x:String>
|
||||||
|
@ -475,6 +475,7 @@
|
||||||
<x:String x:Key="Text.Preferences.General.MaxHistoryCommits" xml:space="preserve">Commits en el historial</x:String>
|
<x:String x:Key="Text.Preferences.General.MaxHistoryCommits" xml:space="preserve">Commits en el historial</x:String>
|
||||||
<x:String x:Key="Text.Preferences.General.ShowAuthorTime" xml:space="preserve">Mostrar hora del autor en lugar de la hora del commit en el gráfico</x:String>
|
<x:String x:Key="Text.Preferences.General.ShowAuthorTime" xml:space="preserve">Mostrar hora del autor en lugar de la hora del commit en el gráfico</x:String>
|
||||||
<x:String x:Key="Text.Preferences.General.ShowChildren" xml:space="preserve">Mostrar hijos en los detalles de commit</x:String>
|
<x:String x:Key="Text.Preferences.General.ShowChildren" xml:space="preserve">Mostrar hijos en los detalles de commit</x:String>
|
||||||
|
<x:String x:Key="Text.Preferences.General.ShowTagsInGraph" xml:space="preserve">Mostrar etiquetas en el gráfico de commit</x:String>
|
||||||
<x:String x:Key="Text.Preferences.General.SubjectGuideLength" xml:space="preserve">Longitud de la guía del asunto</x:String>
|
<x:String x:Key="Text.Preferences.General.SubjectGuideLength" xml:space="preserve">Longitud de la guía del asunto</x:String>
|
||||||
<x:String x:Key="Text.Preferences.Git" xml:space="preserve">GIT</x:String>
|
<x:String x:Key="Text.Preferences.Git" xml:space="preserve">GIT</x:String>
|
||||||
<x:String x:Key="Text.Preferences.Git.CRLF" xml:space="preserve">Habilitar Auto CRLF</x:String>
|
<x:String x:Key="Text.Preferences.Git.CRLF" xml:space="preserve">Habilitar Auto CRLF</x:String>
|
||||||
|
@ -604,7 +605,7 @@
|
||||||
<x:String x:Key="Text.Repository.Tags.OrderByCreatorDate" xml:space="preserve">Por Fecha de Creación</x:String>
|
<x:String x:Key="Text.Repository.Tags.OrderByCreatorDate" xml:space="preserve">Por Fecha de Creación</x:String>
|
||||||
<x:String x:Key="Text.Repository.Tags.OrderByNameAsc" xml:space="preserve">Por Nombre (Ascendiente)</x:String>
|
<x:String x:Key="Text.Repository.Tags.OrderByNameAsc" xml:space="preserve">Por Nombre (Ascendiente)</x:String>
|
||||||
<x:String x:Key="Text.Repository.Tags.OrderByNameDes" xml:space="preserve">Por Nombre (Descendiente)</x:String>
|
<x:String x:Key="Text.Repository.Tags.OrderByNameDes" xml:space="preserve">Por Nombre (Descendiente)</x:String>
|
||||||
<x:String x:Key="Text.Repository.Tags.Sort" xml:space="preserve">Sort</x:String>
|
<x:String x:Key="Text.Repository.Tags.Sort" xml:space="preserve">Ordenar</x:String>
|
||||||
<x:String x:Key="Text.Repository.Terminal" xml:space="preserve">Abrir en Terminal</x:String>
|
<x:String x:Key="Text.Repository.Terminal" xml:space="preserve">Abrir en Terminal</x:String>
|
||||||
<x:String x:Key="Text.Repository.UseRelativeTimeInHistories" xml:space="preserve">Usar tiempo relativo en las historias</x:String>
|
<x:String x:Key="Text.Repository.UseRelativeTimeInHistories" xml:space="preserve">Usar tiempo relativo en las historias</x:String>
|
||||||
<x:String x:Key="Text.Repository.Worktrees" xml:space="preserve">WORKTREES</x:String>
|
<x:String x:Key="Text.Repository.Worktrees" xml:space="preserve">WORKTREES</x:String>
|
||||||
|
@ -657,7 +658,6 @@
|
||||||
<x:String x:Key="Text.Stash.Title" xml:space="preserve">Stash Cambios Locales</x:String>
|
<x:String x:Key="Text.Stash.Title" xml:space="preserve">Stash Cambios Locales</x:String>
|
||||||
<x:String x:Key="Text.StashCM.Apply" xml:space="preserve">Aplicar</x:String>
|
<x:String x:Key="Text.StashCM.Apply" xml:space="preserve">Aplicar</x:String>
|
||||||
<x:String x:Key="Text.StashCM.Drop" xml:space="preserve">Eliminar</x:String>
|
<x:String x:Key="Text.StashCM.Drop" xml:space="preserve">Eliminar</x:String>
|
||||||
<x:String x:Key="Text.StashCM.Pop" xml:space="preserve">Pop</x:String>
|
|
||||||
<x:String x:Key="Text.StashCM.SaveAsPatch" xml:space="preserve">Guardar como Parche...</x:String>
|
<x:String x:Key="Text.StashCM.SaveAsPatch" xml:space="preserve">Guardar como Parche...</x:String>
|
||||||
<x:String x:Key="Text.StashDropConfirm" xml:space="preserve">Eliminar Stash</x:String>
|
<x:String x:Key="Text.StashDropConfirm" xml:space="preserve">Eliminar Stash</x:String>
|
||||||
<x:String x:Key="Text.StashDropConfirm.Label" xml:space="preserve">Eliminar:</x:String>
|
<x:String x:Key="Text.StashDropConfirm.Label" xml:space="preserve">Eliminar:</x:String>
|
||||||
|
|
|
@ -151,6 +151,7 @@
|
||||||
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGiteePullRequest" xml:space="preserve">Ajouter une règle d'exemple pour Pull Request Gitee</x:String>
|
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGiteePullRequest" xml:space="preserve">Ajouter une règle d'exemple pour Pull Request Gitee</x:String>
|
||||||
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGithub" xml:space="preserve">Ajouter une règle d'exemple Github</x:String>
|
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGithub" xml:space="preserve">Ajouter une règle d'exemple Github</x:String>
|
||||||
<x:String x:Key="Text.Configure.IssueTracker.AddSampleJira" xml:space="preserve">Ajouter une règle d'exemple Jira</x:String>
|
<x:String x:Key="Text.Configure.IssueTracker.AddSampleJira" xml:space="preserve">Ajouter une règle d'exemple Jira</x:String>
|
||||||
|
<x:String x:Key="Text.Configure.IssueTracker.AddSampleAzure" xml:space="preserve">Ajouter une règle d'exemple Azure DevOps</x:String>
|
||||||
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGitLabIssue" xml:space="preserve">Ajouter une règle d'exemple pour Incidents GitLab</x:String>
|
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGitLabIssue" xml:space="preserve">Ajouter une règle d'exemple pour Incidents GitLab</x:String>
|
||||||
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGitLabMergeRequest" xml:space="preserve">Ajouter une règle d'exemple pour Merge Request GitLab</x:String>
|
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGitLabMergeRequest" xml:space="preserve">Ajouter une règle d'exemple pour Merge Request GitLab</x:String>
|
||||||
<x:String x:Key="Text.Configure.IssueTracker.NewRule" xml:space="preserve">Nouvelle règle</x:String>
|
<x:String x:Key="Text.Configure.IssueTracker.NewRule" xml:space="preserve">Nouvelle règle</x:String>
|
||||||
|
@ -177,7 +178,6 @@
|
||||||
<x:String x:Key="Text.ConventionalCommit.Type" xml:space="preserve">Type de Changement :</x:String>
|
<x:String x:Key="Text.ConventionalCommit.Type" xml:space="preserve">Type de Changement :</x:String>
|
||||||
<x:String x:Key="Text.Copy" xml:space="preserve">Copier</x:String>
|
<x:String x:Key="Text.Copy" xml:space="preserve">Copier</x:String>
|
||||||
<x:String x:Key="Text.CopyAllText" xml:space="preserve">Copier tout le texte</x:String>
|
<x:String x:Key="Text.CopyAllText" xml:space="preserve">Copier tout le texte</x:String>
|
||||||
<x:String x:Key="Text.CopyFileName" xml:space="preserve">Copier le nom de fichier</x:String>
|
|
||||||
<x:String x:Key="Text.CopyPath" xml:space="preserve">Copier le chemin</x:String>
|
<x:String x:Key="Text.CopyPath" xml:space="preserve">Copier le chemin</x:String>
|
||||||
<x:String x:Key="Text.CreateBranch" xml:space="preserve">Créer une branche...</x:String>
|
<x:String x:Key="Text.CreateBranch" xml:space="preserve">Créer une branche...</x:String>
|
||||||
<x:String x:Key="Text.CreateBranch.BasedOn" xml:space="preserve">Basé sur :</x:String>
|
<x:String x:Key="Text.CreateBranch.BasedOn" xml:space="preserve">Basé sur :</x:String>
|
||||||
|
@ -599,7 +599,6 @@
|
||||||
<x:String x:Key="Text.Stash.Title" xml:space="preserve">Stash les changements locaux</x:String>
|
<x:String x:Key="Text.Stash.Title" xml:space="preserve">Stash les changements locaux</x:String>
|
||||||
<x:String x:Key="Text.StashCM.Apply" xml:space="preserve">Appliquer</x:String>
|
<x:String x:Key="Text.StashCM.Apply" xml:space="preserve">Appliquer</x:String>
|
||||||
<x:String x:Key="Text.StashCM.Drop" xml:space="preserve">Effacer</x:String>
|
<x:String x:Key="Text.StashCM.Drop" xml:space="preserve">Effacer</x:String>
|
||||||
<x:String x:Key="Text.StashCM.Pop" xml:space="preserve">Extraire</x:String>
|
|
||||||
<x:String x:Key="Text.StashDropConfirm" xml:space="preserve">Effacer le Stash</x:String>
|
<x:String x:Key="Text.StashDropConfirm" xml:space="preserve">Effacer le Stash</x:String>
|
||||||
<x:String x:Key="Text.StashDropConfirm.Label" xml:space="preserve">Effacer :</x:String>
|
<x:String x:Key="Text.StashDropConfirm.Label" xml:space="preserve">Effacer :</x:String>
|
||||||
<x:String x:Key="Text.Stashes" xml:space="preserve">Stashes</x:String>
|
<x:String x:Key="Text.Stashes" xml:space="preserve">Stashes</x:String>
|
||||||
|
|
|
@ -161,6 +161,7 @@
|
||||||
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGiteePullRequest" xml:space="preserve">Aggiungi una regola di esempio per un Pull Request Gitee</x:String>
|
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGiteePullRequest" xml:space="preserve">Aggiungi una regola di esempio per un Pull Request Gitee</x:String>
|
||||||
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGithub" xml:space="preserve">Aggiungi una regola di esempio per GitHub</x:String>
|
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGithub" xml:space="preserve">Aggiungi una regola di esempio per GitHub</x:String>
|
||||||
<x:String x:Key="Text.Configure.IssueTracker.AddSampleJira" xml:space="preserve">Aggiungi una regola di esempio per Jira</x:String>
|
<x:String x:Key="Text.Configure.IssueTracker.AddSampleJira" xml:space="preserve">Aggiungi una regola di esempio per Jira</x:String>
|
||||||
|
<x:String x:Key="Text.Configure.IssueTracker.AddSampleAzure" xml:space="preserve">Aggiungi una regola di esempio per Azure DevOps</x:String>
|
||||||
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGitLabIssue" xml:space="preserve">Aggiungi una regola di esempio per Issue GitLab</x:String>
|
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGitLabIssue" xml:space="preserve">Aggiungi una regola di esempio per Issue GitLab</x:String>
|
||||||
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGitLabMergeRequest" xml:space="preserve">Aggiungi una regola di esempio per una Merge Request GitLab</x:String>
|
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGitLabMergeRequest" xml:space="preserve">Aggiungi una regola di esempio per una Merge Request GitLab</x:String>
|
||||||
<x:String x:Key="Text.Configure.IssueTracker.NewRule" xml:space="preserve">Nuova Regola</x:String>
|
<x:String x:Key="Text.Configure.IssueTracker.NewRule" xml:space="preserve">Nuova Regola</x:String>
|
||||||
|
@ -188,7 +189,6 @@
|
||||||
<x:String x:Key="Text.Copy" xml:space="preserve">Copia</x:String>
|
<x:String x:Key="Text.Copy" xml:space="preserve">Copia</x:String>
|
||||||
<x:String x:Key="Text.CopyAllText" xml:space="preserve">Copia Tutto il Testo</x:String>
|
<x:String x:Key="Text.CopyAllText" xml:space="preserve">Copia Tutto il Testo</x:String>
|
||||||
<x:String x:Key="Text.CopyPath" xml:space="preserve">Copia Percorso</x:String>
|
<x:String x:Key="Text.CopyPath" xml:space="preserve">Copia Percorso</x:String>
|
||||||
<x:String x:Key="Text.CopyFileName" xml:space="preserve">Copia Nome File</x:String>
|
|
||||||
<x:String x:Key="Text.CreateBranch" xml:space="preserve">Crea Branch...</x:String>
|
<x:String x:Key="Text.CreateBranch" xml:space="preserve">Crea Branch...</x:String>
|
||||||
<x:String x:Key="Text.CreateBranch.BasedOn" xml:space="preserve">Basato Su:</x:String>
|
<x:String x:Key="Text.CreateBranch.BasedOn" xml:space="preserve">Basato Su:</x:String>
|
||||||
<x:String x:Key="Text.CreateBranch.Checkout" xml:space="preserve">Checkout del Branch Creato</x:String>
|
<x:String x:Key="Text.CreateBranch.Checkout" xml:space="preserve">Checkout del Branch Creato</x:String>
|
||||||
|
@ -658,7 +658,6 @@
|
||||||
<x:String x:Key="Text.Stash.Title" xml:space="preserve">Stasha Modifiche Locali</x:String>
|
<x:String x:Key="Text.Stash.Title" xml:space="preserve">Stasha Modifiche Locali</x:String>
|
||||||
<x:String x:Key="Text.StashCM.Apply" xml:space="preserve">Applica</x:String>
|
<x:String x:Key="Text.StashCM.Apply" xml:space="preserve">Applica</x:String>
|
||||||
<x:String x:Key="Text.StashCM.Drop" xml:space="preserve">Elimina</x:String>
|
<x:String x:Key="Text.StashCM.Drop" xml:space="preserve">Elimina</x:String>
|
||||||
<x:String x:Key="Text.StashCM.Pop" xml:space="preserve">Estrai</x:String>
|
|
||||||
<x:String x:Key="Text.StashCM.SaveAsPatch" xml:space="preserve">Salva come Patch...</x:String>
|
<x:String x:Key="Text.StashCM.SaveAsPatch" xml:space="preserve">Salva come Patch...</x:String>
|
||||||
<x:String x:Key="Text.StashDropConfirm" xml:space="preserve">Elimina Stash</x:String>
|
<x:String x:Key="Text.StashDropConfirm" xml:space="preserve">Elimina Stash</x:String>
|
||||||
<x:String x:Key="Text.StashDropConfirm.Label" xml:space="preserve">Elimina:</x:String>
|
<x:String x:Key="Text.StashDropConfirm.Label" xml:space="preserve">Elimina:</x:String>
|
||||||
|
|
|
@ -168,6 +168,7 @@
|
||||||
<x:String x:Key="Text.Configure.IssueTracker" xml:space="preserve">RASTREADOR DE PROBLEMAS</x:String>
|
<x:String x:Key="Text.Configure.IssueTracker" xml:space="preserve">RASTREADOR DE PROBLEMAS</x:String>
|
||||||
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGithub" xml:space="preserve">Adicionar Regra de Exemplo do Github</x:String>
|
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGithub" xml:space="preserve">Adicionar Regra de Exemplo do Github</x:String>
|
||||||
<x:String x:Key="Text.Configure.IssueTracker.AddSampleJira" xml:space="preserve">Adicionar Regra de Exemplo do Jira</x:String>
|
<x:String x:Key="Text.Configure.IssueTracker.AddSampleJira" xml:space="preserve">Adicionar Regra de Exemplo do Jira</x:String>
|
||||||
|
<x:String x:Key="Text.Configure.IssueTracker.AddSampleAzure" xml:space="preserve">Adicionar Regra de Exemplo do Azure DevOps</x:String>
|
||||||
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGitLabIssue" xml:space="preserve">Adicionar Regra de Exemplo do GitLab </x:String>
|
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGitLabIssue" xml:space="preserve">Adicionar Regra de Exemplo do GitLab </x:String>
|
||||||
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGitLabMergeRequest" xml:space="preserve">Adicionar regra de exemplo de Merge Request do GitLab</x:String>
|
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGitLabMergeRequest" xml:space="preserve">Adicionar regra de exemplo de Merge Request do GitLab</x:String>
|
||||||
<x:String x:Key="Text.Configure.IssueTracker.NewRule" xml:space="preserve">Nova Regra</x:String>
|
<x:String x:Key="Text.Configure.IssueTracker.NewRule" xml:space="preserve">Nova Regra</x:String>
|
||||||
|
@ -195,7 +196,6 @@
|
||||||
<x:String x:Key="Text.Copy" xml:space="preserve">Copiar</x:String>
|
<x:String x:Key="Text.Copy" xml:space="preserve">Copiar</x:String>
|
||||||
<x:String x:Key="Text.CopyAllText" xml:space="preserve">Copiar todo o texto</x:String>
|
<x:String x:Key="Text.CopyAllText" xml:space="preserve">Copiar todo o texto</x:String>
|
||||||
<x:String x:Key="Text.CopyPath" xml:space="preserve">Copiar Caminho</x:String>
|
<x:String x:Key="Text.CopyPath" xml:space="preserve">Copiar Caminho</x:String>
|
||||||
<x:String x:Key="Text.CopyFileName" xml:space="preserve">Copiar Nome do Arquivo</x:String>
|
|
||||||
<x:String x:Key="Text.CreateBranch" xml:space="preserve">Criar Branch...</x:String>
|
<x:String x:Key="Text.CreateBranch" xml:space="preserve">Criar Branch...</x:String>
|
||||||
<x:String x:Key="Text.CreateBranch.BasedOn" xml:space="preserve">Baseado Em:</x:String>
|
<x:String x:Key="Text.CreateBranch.BasedOn" xml:space="preserve">Baseado Em:</x:String>
|
||||||
<x:String x:Key="Text.CreateBranch.Checkout" xml:space="preserve">Checar o branch criado</x:String>
|
<x:String x:Key="Text.CreateBranch.Checkout" xml:space="preserve">Checar o branch criado</x:String>
|
||||||
|
@ -619,7 +619,6 @@
|
||||||
<x:String x:Key="Text.Stash.Title" xml:space="preserve">Guardar Alterações Locais</x:String>
|
<x:String x:Key="Text.Stash.Title" xml:space="preserve">Guardar Alterações Locais</x:String>
|
||||||
<x:String x:Key="Text.StashCM.Apply" xml:space="preserve">Aplicar</x:String>
|
<x:String x:Key="Text.StashCM.Apply" xml:space="preserve">Aplicar</x:String>
|
||||||
<x:String x:Key="Text.StashCM.Drop" xml:space="preserve">Descartar</x:String>
|
<x:String x:Key="Text.StashCM.Drop" xml:space="preserve">Descartar</x:String>
|
||||||
<x:String x:Key="Text.StashCM.Pop" xml:space="preserve">Pop</x:String>
|
|
||||||
<x:String x:Key="Text.StashDropConfirm" xml:space="preserve">Descartar Stash</x:String>
|
<x:String x:Key="Text.StashDropConfirm" xml:space="preserve">Descartar Stash</x:String>
|
||||||
<x:String x:Key="Text.StashDropConfirm.Label" xml:space="preserve">Descartar:</x:String>
|
<x:String x:Key="Text.StashDropConfirm.Label" xml:space="preserve">Descartar:</x:String>
|
||||||
<x:String x:Key="Text.Stashes" xml:space="preserve">Stashes</x:String>
|
<x:String x:Key="Text.Stashes" xml:space="preserve">Stashes</x:String>
|
||||||
|
|
|
@ -161,6 +161,7 @@
|
||||||
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGiteePullRequest" xml:space="preserve">Добавить пример правила запроса скачивания из Gitea</x:String>
|
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGiteePullRequest" xml:space="preserve">Добавить пример правила запроса скачивания из Gitea</x:String>
|
||||||
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGithub" xml:space="preserve">Добавить пример правила для Git</x:String>
|
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGithub" xml:space="preserve">Добавить пример правила для Git</x:String>
|
||||||
<x:String x:Key="Text.Configure.IssueTracker.AddSampleJira" xml:space="preserve">Добавить пример правила Jira</x:String>
|
<x:String x:Key="Text.Configure.IssueTracker.AddSampleJira" xml:space="preserve">Добавить пример правила Jira</x:String>
|
||||||
|
<x:String x:Key="Text.Configure.IssueTracker.AddSampleAzure" xml:space="preserve">Добавить пример правила Azure DevOps</x:String>
|
||||||
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGitLabIssue" xml:space="preserve">Добавить пример правила выдачи GitLab</x:String>
|
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGitLabIssue" xml:space="preserve">Добавить пример правила выдачи GitLab</x:String>
|
||||||
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGitLabMergeRequest" xml:space="preserve">Добавить пример правила запроса на слияние в GitLab</x:String>
|
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGitLabMergeRequest" xml:space="preserve">Добавить пример правила запроса на слияние в GitLab</x:String>
|
||||||
<x:String x:Key="Text.Configure.IssueTracker.NewRule" xml:space="preserve">Новое правило</x:String>
|
<x:String x:Key="Text.Configure.IssueTracker.NewRule" xml:space="preserve">Новое правило</x:String>
|
||||||
|
@ -189,7 +190,7 @@
|
||||||
<x:String x:Key="Text.Copy" xml:space="preserve">Копировать</x:String>
|
<x:String x:Key="Text.Copy" xml:space="preserve">Копировать</x:String>
|
||||||
<x:String x:Key="Text.CopyAllText" xml:space="preserve">Копировать весь текст</x:String>
|
<x:String x:Key="Text.CopyAllText" xml:space="preserve">Копировать весь текст</x:String>
|
||||||
<x:String x:Key="Text.CopyPath" xml:space="preserve">Копировать путь</x:String>
|
<x:String x:Key="Text.CopyPath" xml:space="preserve">Копировать путь</x:String>
|
||||||
<x:String x:Key="Text.CopyFileName" xml:space="preserve">Копировать имя файла</x:String>
|
<x:String x:Key="Text.CopyFullPath" xml:space="preserve">Копировать полный путь</x:String>
|
||||||
<x:String x:Key="Text.CreateBranch" xml:space="preserve">Создать ветку...</x:String>
|
<x:String x:Key="Text.CreateBranch" xml:space="preserve">Создать ветку...</x:String>
|
||||||
<x:String x:Key="Text.CreateBranch.BasedOn" xml:space="preserve">Основан на:</x:String>
|
<x:String x:Key="Text.CreateBranch.BasedOn" xml:space="preserve">Основан на:</x:String>
|
||||||
<x:String x:Key="Text.CreateBranch.Checkout" xml:space="preserve">Проверить созданную ветку</x:String>
|
<x:String x:Key="Text.CreateBranch.Checkout" xml:space="preserve">Проверить созданную ветку</x:String>
|
||||||
|
@ -212,7 +213,7 @@
|
||||||
<x:String x:Key="Text.CreateTag.Type" xml:space="preserve">Вид:</x:String>
|
<x:String x:Key="Text.CreateTag.Type" xml:space="preserve">Вид:</x:String>
|
||||||
<x:String x:Key="Text.CreateTag.Type.Annotated" xml:space="preserve">С примечаниями</x:String>
|
<x:String x:Key="Text.CreateTag.Type.Annotated" xml:space="preserve">С примечаниями</x:String>
|
||||||
<x:String x:Key="Text.CreateTag.Type.Lightweight" xml:space="preserve">Простой</x:String>
|
<x:String x:Key="Text.CreateTag.Type.Lightweight" xml:space="preserve">Простой</x:String>
|
||||||
<x:String x:Key="Text.CtrlClickTip" xml:space="preserve">Удерживайте Ctrl, чтобы начать сразу</x:String>
|
<x:String x:Key="Text.CtrlClickTip" xml:space="preserve">Удерживайте Ctrl, чтобы сразу начать</x:String>
|
||||||
<x:String x:Key="Text.Cut" xml:space="preserve">Вырезать</x:String>
|
<x:String x:Key="Text.Cut" xml:space="preserve">Вырезать</x:String>
|
||||||
<x:String x:Key="Text.DeleteBranch" xml:space="preserve">Удалить ветку</x:String>
|
<x:String x:Key="Text.DeleteBranch" xml:space="preserve">Удалить ветку</x:String>
|
||||||
<x:String x:Key="Text.DeleteBranch.Branch" xml:space="preserve">Ветка:</x:String>
|
<x:String x:Key="Text.DeleteBranch.Branch" xml:space="preserve">Ветка:</x:String>
|
||||||
|
@ -330,7 +331,7 @@
|
||||||
<x:String x:Key="Text.GitLFS.AddTrackPattern.Title" xml:space="preserve">Добавить шаблон отслеживания в LFS Git</x:String>
|
<x:String x:Key="Text.GitLFS.AddTrackPattern.Title" xml:space="preserve">Добавить шаблон отслеживания в LFS Git</x:String>
|
||||||
<x:String x:Key="Text.GitLFS.Fetch" xml:space="preserve">Извлечь</x:String>
|
<x:String x:Key="Text.GitLFS.Fetch" xml:space="preserve">Извлечь</x:String>
|
||||||
<x:String x:Key="Text.GitLFS.Fetch.Title" xml:space="preserve">Извлечь объекты LFS</x:String>
|
<x:String x:Key="Text.GitLFS.Fetch.Title" xml:space="preserve">Извлечь объекты LFS</x:String>
|
||||||
<x:String x:Key="Text.GitLFS.Fetch.Tips" xml:space="preserve">Запустить «git lfs fetch», чтобы загрузить объекты LFS Git. При этом рабочая копия не обновляется.</x:String>
|
<x:String x:Key="Text.GitLFS.Fetch.Tips" xml:space="preserve">Запустить (git lfs fetch), чтобы загрузить объекты LFS Git. При этом рабочая копия не обновляется.</x:String>
|
||||||
<x:String x:Key="Text.GitLFS.Install" xml:space="preserve">Установить перехват LFS Git</x:String>
|
<x:String x:Key="Text.GitLFS.Install" xml:space="preserve">Установить перехват LFS Git</x:String>
|
||||||
<x:String x:Key="Text.GitLFS.Locks" xml:space="preserve">Показывать блокировки</x:String>
|
<x:String x:Key="Text.GitLFS.Locks" xml:space="preserve">Показывать блокировки</x:String>
|
||||||
<x:String x:Key="Text.GitLFS.Locks.Empty" xml:space="preserve">Нет заблокированных файлов</x:String>
|
<x:String x:Key="Text.GitLFS.Locks.Empty" xml:space="preserve">Нет заблокированных файлов</x:String>
|
||||||
|
@ -340,10 +341,10 @@
|
||||||
<x:String x:Key="Text.GitLFS.Locks.Unlock" xml:space="preserve">Разблокировать</x:String>
|
<x:String x:Key="Text.GitLFS.Locks.Unlock" xml:space="preserve">Разблокировать</x:String>
|
||||||
<x:String x:Key="Text.GitLFS.Locks.UnlockForce" xml:space="preserve">Принудительно разблокировать</x:String>
|
<x:String x:Key="Text.GitLFS.Locks.UnlockForce" xml:space="preserve">Принудительно разблокировать</x:String>
|
||||||
<x:String x:Key="Text.GitLFS.Prune" xml:space="preserve">Обрезать</x:String>
|
<x:String x:Key="Text.GitLFS.Prune" xml:space="preserve">Обрезать</x:String>
|
||||||
<x:String x:Key="Text.GitLFS.Prune.Tips" xml:space="preserve">Запустить «git lfs prune», чтобы удалить старые файлы LFS из локального хранилища</x:String>
|
<x:String x:Key="Text.GitLFS.Prune.Tips" xml:space="preserve">Запустить (git lfs prune), чтобы удалить старые файлы LFS из локального хранилища</x:String>
|
||||||
<x:String x:Key="Text.GitLFS.Pull" xml:space="preserve">Забрать</x:String>
|
<x:String x:Key="Text.GitLFS.Pull" xml:space="preserve">Забрать</x:String>
|
||||||
<x:String x:Key="Text.GitLFS.Pull.Title" xml:space="preserve">Забрать объекты LFS</x:String>
|
<x:String x:Key="Text.GitLFS.Pull.Title" xml:space="preserve">Забрать объекты LFS</x:String>
|
||||||
<x:String x:Key="Text.GitLFS.Pull.Tips" xml:space="preserve">Запустить «git lfs pull», чтобы загрузить все файлы LFS Git для текущей ссылки и проверить</x:String>
|
<x:String x:Key="Text.GitLFS.Pull.Tips" xml:space="preserve">Запустить (git lfs pull), чтобы загрузить все файлы LFS Git для текущей ссылки и проверить</x:String>
|
||||||
<x:String x:Key="Text.GitLFS.Push" xml:space="preserve">Выложить</x:String>
|
<x:String x:Key="Text.GitLFS.Push" xml:space="preserve">Выложить</x:String>
|
||||||
<x:String x:Key="Text.GitLFS.Push.Title" xml:space="preserve">Выложить объекты LFS</x:String>
|
<x:String x:Key="Text.GitLFS.Push.Title" xml:space="preserve">Выложить объекты LFS</x:String>
|
||||||
<x:String x:Key="Text.GitLFS.Push.Tips" xml:space="preserve">Отправляйте большие файлы, помещенные в очередь, в конечную точку LFS Git</x:String>
|
<x:String x:Key="Text.GitLFS.Push.Tips" xml:space="preserve">Отправляйте большие файлы, помещенные в очередь, в конечную точку LFS Git</x:String>
|
||||||
|
@ -557,7 +558,7 @@
|
||||||
<x:String x:Key="Text.Repository.Abort" xml:space="preserve">Отказ</x:String>
|
<x:String x:Key="Text.Repository.Abort" xml:space="preserve">Отказ</x:String>
|
||||||
<x:String x:Key="Text.Repository.AutoFetching" xml:space="preserve">Автоматическое извлечение изменений с внешних репозиторий...</x:String>
|
<x:String x:Key="Text.Repository.AutoFetching" xml:space="preserve">Автоматическое извлечение изменений с внешних репозиторий...</x:String>
|
||||||
<x:String x:Key="Text.Repository.Clean" xml:space="preserve">Очистить (Сбор мусора и удаление) </x:String>
|
<x:String x:Key="Text.Repository.Clean" xml:space="preserve">Очистить (Сбор мусора и удаление) </x:String>
|
||||||
<x:String x:Key="Text.Repository.CleanTips" xml:space="preserve">Запустить команду «git gc» для данного репозитория.</x:String>
|
<x:String x:Key="Text.Repository.CleanTips" xml:space="preserve">Запустить команду (git gc) для данного репозитория.</x:String>
|
||||||
<x:String x:Key="Text.Repository.ClearAllCommitsFilter" xml:space="preserve">Очистить всё</x:String>
|
<x:String x:Key="Text.Repository.ClearAllCommitsFilter" xml:space="preserve">Очистить всё</x:String>
|
||||||
<x:String x:Key="Text.Repository.Configure" xml:space="preserve">Настройка репозитория</x:String>
|
<x:String x:Key="Text.Repository.Configure" xml:space="preserve">Настройка репозитория</x:String>
|
||||||
<x:String x:Key="Text.Repository.Continue" xml:space="preserve">ПРОДОЛЖИТЬ</x:String>
|
<x:String x:Key="Text.Repository.Continue" xml:space="preserve">ПРОДОЛЖИТЬ</x:String>
|
||||||
|
@ -659,7 +660,6 @@
|
||||||
<x:String x:Key="Text.Stash.Title" xml:space="preserve">Отложить локальные изменения</x:String>
|
<x:String x:Key="Text.Stash.Title" xml:space="preserve">Отложить локальные изменения</x:String>
|
||||||
<x:String x:Key="Text.StashCM.Apply" xml:space="preserve">Принять</x:String>
|
<x:String x:Key="Text.StashCM.Apply" xml:space="preserve">Принять</x:String>
|
||||||
<x:String x:Key="Text.StashCM.Drop" xml:space="preserve">Отбросить</x:String>
|
<x:String x:Key="Text.StashCM.Drop" xml:space="preserve">Отбросить</x:String>
|
||||||
<x:String x:Key="Text.StashCM.Pop" xml:space="preserve">Применить</x:String>
|
|
||||||
<x:String x:Key="Text.StashCM.SaveAsPatch" xml:space="preserve">Сохранить как заплатку...</x:String>
|
<x:String x:Key="Text.StashCM.SaveAsPatch" xml:space="preserve">Сохранить как заплатку...</x:String>
|
||||||
<x:String x:Key="Text.StashDropConfirm" xml:space="preserve">Отбросить тайник</x:String>
|
<x:String x:Key="Text.StashDropConfirm" xml:space="preserve">Отбросить тайник</x:String>
|
||||||
<x:String x:Key="Text.StashDropConfirm.Label" xml:space="preserve">Отбросить:</x:String>
|
<x:String x:Key="Text.StashDropConfirm.Label" xml:space="preserve">Отбросить:</x:String>
|
||||||
|
|
|
@ -157,6 +157,7 @@
|
||||||
<x:String x:Key="Text.Configure.Git.AutoFetchIntervalSuffix" xml:space="preserve">分钟</x:String>
|
<x:String x:Key="Text.Configure.Git.AutoFetchIntervalSuffix" xml:space="preserve">分钟</x:String>
|
||||||
<x:String x:Key="Text.Configure.Git.DefaultRemote" xml:space="preserve">默认远程</x:String>
|
<x:String x:Key="Text.Configure.Git.DefaultRemote" xml:space="preserve">默认远程</x:String>
|
||||||
<x:String x:Key="Text.Configure.IssueTracker" xml:space="preserve">ISSUE追踪</x:String>
|
<x:String x:Key="Text.Configure.IssueTracker" xml:space="preserve">ISSUE追踪</x:String>
|
||||||
|
<x:String x:Key="Text.Configure.IssueTracker.AddSampleAzure" xml:space="preserve">新增匹配Azure DevOps规则</x:String>
|
||||||
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGiteeIssue" xml:space="preserve">新增匹配Gitee议题规则</x:String>
|
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGiteeIssue" xml:space="preserve">新增匹配Gitee议题规则</x:String>
|
||||||
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGiteePullRequest" xml:space="preserve">新增匹配Gitee合并请求规则</x:String>
|
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGiteePullRequest" xml:space="preserve">新增匹配Gitee合并请求规则</x:String>
|
||||||
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGithub" xml:space="preserve">新增匹配Github Issue规则</x:String>
|
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGithub" xml:space="preserve">新增匹配Github Issue规则</x:String>
|
||||||
|
@ -188,7 +189,7 @@
|
||||||
<x:String x:Key="Text.Copy" xml:space="preserve">复制</x:String>
|
<x:String x:Key="Text.Copy" xml:space="preserve">复制</x:String>
|
||||||
<x:String x:Key="Text.CopyAllText" xml:space="preserve">复制全部文本</x:String>
|
<x:String x:Key="Text.CopyAllText" xml:space="preserve">复制全部文本</x:String>
|
||||||
<x:String x:Key="Text.CopyPath" xml:space="preserve">复制路径</x:String>
|
<x:String x:Key="Text.CopyPath" xml:space="preserve">复制路径</x:String>
|
||||||
<x:String x:Key="Text.CopyFileName" xml:space="preserve">复制文件名</x:String>
|
<x:String x:Key="Text.CopyFullPath" xml:space="preserve">复制完整路径</x:String>
|
||||||
<x:String x:Key="Text.CreateBranch" xml:space="preserve">新建分支 ...</x:String>
|
<x:String x:Key="Text.CreateBranch" xml:space="preserve">新建分支 ...</x:String>
|
||||||
<x:String x:Key="Text.CreateBranch.BasedOn" xml:space="preserve">新分支基于 :</x:String>
|
<x:String x:Key="Text.CreateBranch.BasedOn" xml:space="preserve">新分支基于 :</x:String>
|
||||||
<x:String x:Key="Text.CreateBranch.Checkout" xml:space="preserve">完成后切换到新分支</x:String>
|
<x:String x:Key="Text.CreateBranch.Checkout" xml:space="preserve">完成后切换到新分支</x:String>
|
||||||
|
@ -658,7 +659,6 @@
|
||||||
<x:String x:Key="Text.Stash.Title" xml:space="preserve">贮藏本地变更</x:String>
|
<x:String x:Key="Text.Stash.Title" xml:space="preserve">贮藏本地变更</x:String>
|
||||||
<x:String x:Key="Text.StashCM.Apply" xml:space="preserve">应用(apply)</x:String>
|
<x:String x:Key="Text.StashCM.Apply" xml:space="preserve">应用(apply)</x:String>
|
||||||
<x:String x:Key="Text.StashCM.Drop" xml:space="preserve">删除(drop)</x:String>
|
<x:String x:Key="Text.StashCM.Drop" xml:space="preserve">删除(drop)</x:String>
|
||||||
<x:String x:Key="Text.StashCM.Pop" xml:space="preserve">应用并删除(pop)</x:String>
|
|
||||||
<x:String x:Key="Text.StashCM.SaveAsPatch" xml:space="preserve">另存为补丁...</x:String>
|
<x:String x:Key="Text.StashCM.SaveAsPatch" xml:space="preserve">另存为补丁...</x:String>
|
||||||
<x:String x:Key="Text.StashDropConfirm" xml:space="preserve">丢弃贮藏确认</x:String>
|
<x:String x:Key="Text.StashDropConfirm" xml:space="preserve">丢弃贮藏确认</x:String>
|
||||||
<x:String x:Key="Text.StashDropConfirm.Label" xml:space="preserve">丢弃贮藏 :</x:String>
|
<x:String x:Key="Text.StashDropConfirm.Label" xml:space="preserve">丢弃贮藏 :</x:String>
|
||||||
|
|
|
@ -157,6 +157,7 @@
|
||||||
<x:String x:Key="Text.Configure.Git.AutoFetchIntervalSuffix" xml:space="preserve">分鐘</x:String>
|
<x:String x:Key="Text.Configure.Git.AutoFetchIntervalSuffix" xml:space="preserve">分鐘</x:String>
|
||||||
<x:String x:Key="Text.Configure.Git.DefaultRemote" xml:space="preserve">預設遠端存放庫</x:String>
|
<x:String x:Key="Text.Configure.Git.DefaultRemote" xml:space="preserve">預設遠端存放庫</x:String>
|
||||||
<x:String x:Key="Text.Configure.IssueTracker" xml:space="preserve">Issue 追蹤</x:String>
|
<x:String x:Key="Text.Configure.IssueTracker" xml:space="preserve">Issue 追蹤</x:String>
|
||||||
|
<x:String x:Key="Text.Configure.IssueTracker.AddSampleAzure" xml:space="preserve">新增符合 Azure DevOps 規則</x:String>
|
||||||
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGiteeIssue" xml:space="preserve">新增符合 Gitee 議題規則</x:String>
|
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGiteeIssue" xml:space="preserve">新增符合 Gitee 議題規則</x:String>
|
||||||
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGiteePullRequest" xml:space="preserve">新增符合 Gitee 合併請求規則</x:String>
|
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGiteePullRequest" xml:space="preserve">新增符合 Gitee 合併請求規則</x:String>
|
||||||
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGithub" xml:space="preserve">新增符合 GitHub Issue 規則</x:String>
|
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGithub" xml:space="preserve">新增符合 GitHub Issue 規則</x:String>
|
||||||
|
@ -188,7 +189,7 @@
|
||||||
<x:String x:Key="Text.Copy" xml:space="preserve">複製</x:String>
|
<x:String x:Key="Text.Copy" xml:space="preserve">複製</x:String>
|
||||||
<x:String x:Key="Text.CopyAllText" xml:space="preserve">複製全部內容</x:String>
|
<x:String x:Key="Text.CopyAllText" xml:space="preserve">複製全部內容</x:String>
|
||||||
<x:String x:Key="Text.CopyPath" xml:space="preserve">複製路徑</x:String>
|
<x:String x:Key="Text.CopyPath" xml:space="preserve">複製路徑</x:String>
|
||||||
<x:String x:Key="Text.CopyFileName" xml:space="preserve">複製檔案名稱</x:String>
|
<x:String x:Key="Text.CopyFullPath" xml:space="preserve">複製完整路徑</x:String>
|
||||||
<x:String x:Key="Text.CreateBranch" xml:space="preserve">新增分支...</x:String>
|
<x:String x:Key="Text.CreateBranch" xml:space="preserve">新增分支...</x:String>
|
||||||
<x:String x:Key="Text.CreateBranch.BasedOn" xml:space="preserve">新分支基於:</x:String>
|
<x:String x:Key="Text.CreateBranch.BasedOn" xml:space="preserve">新分支基於:</x:String>
|
||||||
<x:String x:Key="Text.CreateBranch.Checkout" xml:space="preserve">完成後切換到新分支</x:String>
|
<x:String x:Key="Text.CreateBranch.Checkout" xml:space="preserve">完成後切換到新分支</x:String>
|
||||||
|
@ -657,7 +658,6 @@
|
||||||
<x:String x:Key="Text.Stash.Title" xml:space="preserve">擱置本機變更</x:String>
|
<x:String x:Key="Text.Stash.Title" xml:space="preserve">擱置本機變更</x:String>
|
||||||
<x:String x:Key="Text.StashCM.Apply" xml:space="preserve">套用 (apply)</x:String>
|
<x:String x:Key="Text.StashCM.Apply" xml:space="preserve">套用 (apply)</x:String>
|
||||||
<x:String x:Key="Text.StashCM.Drop" xml:space="preserve">刪除 (drop)</x:String>
|
<x:String x:Key="Text.StashCM.Drop" xml:space="preserve">刪除 (drop)</x:String>
|
||||||
<x:String x:Key="Text.StashCM.Pop" xml:space="preserve">套用並刪除 (pop)</x:String>
|
|
||||||
<x:String x:Key="Text.StashCM.SaveAsPatch" xml:space="preserve">另存為修補檔 (patch)...</x:String>
|
<x:String x:Key="Text.StashCM.SaveAsPatch" xml:space="preserve">另存為修補檔 (patch)...</x:String>
|
||||||
<x:String x:Key="Text.StashDropConfirm" xml:space="preserve">捨棄擱置變更確認</x:String>
|
<x:String x:Key="Text.StashDropConfirm" xml:space="preserve">捨棄擱置變更確認</x:String>
|
||||||
<x:String x:Key="Text.StashDropConfirm.Label" xml:space="preserve">捨棄擱置變更:</x:String>
|
<x:String x:Key="Text.StashDropConfirm.Label" xml:space="preserve">捨棄擱置變更:</x:String>
|
||||||
|
|
|
@ -41,17 +41,17 @@
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Avalonia" Version="11.2.5" />
|
<PackageReference Include="Avalonia" Version="11.2.6" />
|
||||||
<PackageReference Include="Avalonia.Desktop" Version="11.2.5" />
|
<PackageReference Include="Avalonia.Desktop" Version="11.2.6" />
|
||||||
<PackageReference Include="Avalonia.Fonts.Inter" Version="11.2.5" />
|
<PackageReference Include="Avalonia.Fonts.Inter" Version="11.2.6" />
|
||||||
<PackageReference Include="Avalonia.Themes.Fluent" Version="11.2.5" />
|
<PackageReference Include="Avalonia.Themes.Fluent" Version="11.2.6" />
|
||||||
<PackageReference Include="Avalonia.Diagnostics" Version="11.2.5" Condition="'$(Configuration)' == 'Debug'" />
|
<PackageReference Include="Avalonia.Diagnostics" Version="11.2.6" Condition="'$(Configuration)' == 'Debug'" />
|
||||||
<PackageReference Include="Avalonia.AvaloniaEdit" Version="11.2.0" />
|
<PackageReference Include="Avalonia.AvaloniaEdit" Version="11.2.0" />
|
||||||
<PackageReference Include="AvaloniaEdit.TextMate" Version="11.2.0" />
|
<PackageReference Include="AvaloniaEdit.TextMate" Version="11.2.0" />
|
||||||
<PackageReference Include="Azure.AI.OpenAI" Version="2.2.0-beta.2" />
|
<PackageReference Include="Azure.AI.OpenAI" Version="2.2.0-beta.4" />
|
||||||
<PackageReference Include="CommunityToolkit.Mvvm" Version="8.4.0" />
|
<PackageReference Include="CommunityToolkit.Mvvm" Version="8.4.0" />
|
||||||
<PackageReference Include="LiveChartsCore.SkiaSharpView.Avalonia" Version="2.0.0-rc5.4" />
|
<PackageReference Include="LiveChartsCore.SkiaSharpView.Avalonia" Version="2.0.0-rc5.4" />
|
||||||
<PackageReference Include="OpenAI" Version="2.2.0-beta.2" />
|
<PackageReference Include="OpenAI" Version="2.2.0-beta.4" />
|
||||||
<PackageReference Include="TextMateSharp" Version="1.0.66" />
|
<PackageReference Include="TextMateSharp" Version="1.0.66" />
|
||||||
<PackageReference Include="TextMateSharp.Grammars" Version="1.0.66" />
|
<PackageReference Include="TextMateSharp.Grammars" Version="1.0.66" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
|
@ -163,15 +163,15 @@ namespace SourceGit.ViewModels
|
||||||
};
|
};
|
||||||
menu.Items.Add(copyPath);
|
menu.Items.Add(copyPath);
|
||||||
|
|
||||||
var copyFileName = new MenuItem();
|
var copyFullPath = new MenuItem();
|
||||||
copyFileName.Header = App.Text("CopyFileName");
|
copyFullPath.Header = App.Text("CopyFullPath");
|
||||||
copyFileName.Icon = App.CreateMenuIcon("Icons.Copy");
|
copyFullPath.Icon = App.CreateMenuIcon("Icons.Copy");
|
||||||
copyFileName.Click += (_, e) =>
|
copyFullPath.Click += (_, e) =>
|
||||||
{
|
{
|
||||||
App.CopyText(Path.GetFileName(change.Path));
|
App.CopyText(Native.OS.GetAbsPath(_repo, change.Path));
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
};
|
};
|
||||||
menu.Items.Add(copyFileName);
|
menu.Items.Add(copyFullPath);
|
||||||
|
|
||||||
return menu;
|
return menu;
|
||||||
}
|
}
|
||||||
|
|
|
@ -425,17 +425,17 @@ namespace SourceGit.ViewModels
|
||||||
ev.Handled = true;
|
ev.Handled = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
var copyFileName = new MenuItem();
|
var copyFullPath = new MenuItem();
|
||||||
copyFileName.Header = App.Text("CopyFileName");
|
copyFullPath.Header = App.Text("CopyFullPath");
|
||||||
copyFileName.Icon = App.CreateMenuIcon("Icons.Copy");
|
copyFullPath.Icon = App.CreateMenuIcon("Icons.Copy");
|
||||||
copyFileName.Click += (_, e) =>
|
copyFullPath.Click += (_, e) =>
|
||||||
{
|
{
|
||||||
App.CopyText(Path.GetFileName(change.Path));
|
App.CopyText(Native.OS.GetAbsPath(_repo.FullPath, change.Path));
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
menu.Items.Add(copyPath);
|
menu.Items.Add(copyPath);
|
||||||
menu.Items.Add(copyFileName);
|
menu.Items.Add(copyFullPath);
|
||||||
return menu;
|
return menu;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -562,17 +562,17 @@ namespace SourceGit.ViewModels
|
||||||
ev.Handled = true;
|
ev.Handled = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
var copyFileName = new MenuItem();
|
var copyFullPath = new MenuItem();
|
||||||
copyFileName.Header = App.Text("CopyFileName");
|
copyFullPath.Header = App.Text("CopyFullPath");
|
||||||
copyFileName.Icon = App.CreateMenuIcon("Icons.Copy");
|
copyFullPath.Icon = App.CreateMenuIcon("Icons.Copy");
|
||||||
copyFileName.Click += (_, e) =>
|
copyFullPath.Click += (_, e) =>
|
||||||
{
|
{
|
||||||
App.CopyText(Path.GetFileName(file.Path));
|
App.CopyText(Native.OS.GetAbsPath(_repo.FullPath, file.Path));
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
menu.Items.Add(copyPath);
|
menu.Items.Add(copyPath);
|
||||||
menu.Items.Add(copyFileName);
|
menu.Items.Add(copyFullPath);
|
||||||
return menu;
|
return menu;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -275,23 +275,17 @@ namespace SourceGit.ViewModels
|
||||||
|
|
||||||
if (!Path.Exists(node.Id))
|
if (!Path.Exists(node.Id))
|
||||||
{
|
{
|
||||||
var ctx = page == null ? ActivePage.Node.Id : page.Node.Id;
|
App.RaiseException(node.Id, "Repository does NOT exists any more. Please remove it.");
|
||||||
App.RaiseException(ctx, "Repository does NOT exists any more. Please remove it.");
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var isBare = new Commands.IsBareRepository(node.Id).Result();
|
var isBare = new Commands.IsBareRepository(node.Id).Result();
|
||||||
var gitDir = node.Id;
|
var gitDir = isBare ? node.Id : GetRepositoryGitDir(node.Id);
|
||||||
if (!isBare)
|
|
||||||
{
|
|
||||||
gitDir = new Commands.QueryGitDir(node.Id).Result();
|
|
||||||
if (string.IsNullOrEmpty(gitDir))
|
if (string.IsNullOrEmpty(gitDir))
|
||||||
{
|
{
|
||||||
var ctx = page == null ? ActivePage.Node.Id : page.Node.Id;
|
App.RaiseException(node.Id, "Given path is not a valid git repository!");
|
||||||
App.RaiseException(ctx, "Given path is not a valid git repository!");
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
var repo = new Repository(isBare, node.Id, gitDir);
|
var repo = new Repository(isBare, node.Id, gitDir);
|
||||||
repo.Open();
|
repo.Open();
|
||||||
|
@ -469,6 +463,37 @@ namespace SourceGit.ViewModels
|
||||||
return menu;
|
return menu;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private string GetRepositoryGitDir(string repo)
|
||||||
|
{
|
||||||
|
var fullpath = Path.Combine(repo, ".git");
|
||||||
|
if (Directory.Exists(fullpath))
|
||||||
|
{
|
||||||
|
if (Directory.Exists(Path.Combine(fullpath, "refs")) &&
|
||||||
|
Directory.Exists(Path.Combine(fullpath, "objects")) &&
|
||||||
|
File.Exists(Path.Combine(fullpath, "HEAD")))
|
||||||
|
return fullpath;
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (File.Exists(fullpath))
|
||||||
|
{
|
||||||
|
var redirect = File.ReadAllText(fullpath).Trim();
|
||||||
|
if (redirect.StartsWith("gitdir: ", StringComparison.Ordinal))
|
||||||
|
redirect = redirect.Substring(8);
|
||||||
|
|
||||||
|
if (!Path.IsPathRooted(redirect))
|
||||||
|
redirect = Path.GetFullPath(Path.Combine(repo, redirect));
|
||||||
|
|
||||||
|
if (Directory.Exists(redirect))
|
||||||
|
return redirect;
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return new Commands.QueryGitDir(repo).Result();
|
||||||
|
}
|
||||||
|
|
||||||
private void SwitchWorkspace(Workspace to)
|
private void SwitchWorkspace(Workspace to)
|
||||||
{
|
{
|
||||||
foreach (var one in Pages)
|
foreach (var one in Pages)
|
||||||
|
|
|
@ -203,6 +203,11 @@ namespace SourceGit.ViewModels
|
||||||
SelectedIssueTrackerRule = _repo.Settings.AddIssueTracker("Jira Tracker", "PROJ-(\\d+)", "https://jira.yourcompany.com/browse/PROJ-$1");
|
SelectedIssueTrackerRule = _repo.Settings.AddIssueTracker("Jira Tracker", "PROJ-(\\d+)", "https://jira.yourcompany.com/browse/PROJ-$1");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void AddSampleAzureWorkItemTracker()
|
||||||
|
{
|
||||||
|
SelectedIssueTrackerRule = _repo.Settings.AddIssueTracker("Azure DevOps Tracker", "#(\\d+)", "https://dev.azure.com/yourcompany/workspace/_workitems/edit/$1");
|
||||||
|
}
|
||||||
|
|
||||||
public void AddSampleGitLabIssueTracker()
|
public void AddSampleGitLabIssueTracker()
|
||||||
{
|
{
|
||||||
var link = "https://gitlab.com/username/repository/-/issues/$1";
|
var link = "https://gitlab.com/username/repository/-/issues/$1";
|
||||||
|
|
|
@ -183,15 +183,15 @@ namespace SourceGit.ViewModels
|
||||||
};
|
};
|
||||||
menu.Items.Add(copyPath);
|
menu.Items.Add(copyPath);
|
||||||
|
|
||||||
var copyFileName = new MenuItem();
|
var copyFullPath = new MenuItem();
|
||||||
copyFileName.Header = App.Text("CopyFileName");
|
copyFullPath.Header = App.Text("CopyFullPath");
|
||||||
copyFileName.Icon = App.CreateMenuIcon("Icons.Copy");
|
copyFullPath.Icon = App.CreateMenuIcon("Icons.Copy");
|
||||||
copyFileName.Click += (_, e) =>
|
copyFullPath.Click += (_, e) =>
|
||||||
{
|
{
|
||||||
App.CopyText(Path.GetFileName(change.Path));
|
App.CopyText(Native.OS.GetAbsPath(_repo, change.Path));
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
};
|
};
|
||||||
menu.Items.Add(copyFileName);
|
menu.Items.Add(copyFullPath);
|
||||||
|
|
||||||
return menu;
|
return menu;
|
||||||
}
|
}
|
||||||
|
|
|
@ -251,12 +251,12 @@ namespace SourceGit.ViewModels
|
||||||
ev.Handled = true;
|
ev.Handled = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
var copyFileName = new MenuItem();
|
var copyFullPath = new MenuItem();
|
||||||
copyFileName.Header = App.Text("CopyFileName");
|
copyFullPath.Header = App.Text("CopyFullPath");
|
||||||
copyFileName.Icon = App.CreateMenuIcon("Icons.Copy");
|
copyFullPath.Icon = App.CreateMenuIcon("Icons.Copy");
|
||||||
copyFileName.Click += (_, e) =>
|
copyFullPath.Click += (_, e) =>
|
||||||
{
|
{
|
||||||
App.CopyText(Path.GetFileName(change.Path));
|
App.CopyText(Native.OS.GetAbsPath(_repo.FullPath, change.Path));
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -267,7 +267,7 @@ namespace SourceGit.ViewModels
|
||||||
menu.Items.Add(resetToThisRevision);
|
menu.Items.Add(resetToThisRevision);
|
||||||
menu.Items.Add(new MenuItem { Header = "-" });
|
menu.Items.Add(new MenuItem { Header = "-" });
|
||||||
menu.Items.Add(copyPath);
|
menu.Items.Add(copyPath);
|
||||||
menu.Items.Add(copyFileName);
|
menu.Items.Add(copyFullPath);
|
||||||
|
|
||||||
return menu;
|
return menu;
|
||||||
}
|
}
|
||||||
|
|
|
@ -903,15 +903,15 @@ namespace SourceGit.ViewModels
|
||||||
};
|
};
|
||||||
menu.Items.Add(copy);
|
menu.Items.Add(copy);
|
||||||
|
|
||||||
var copyFileName = new MenuItem();
|
var copyFullPath = new MenuItem();
|
||||||
copyFileName.Header = App.Text("CopyFileName");
|
copyFullPath.Header = App.Text("CopyFullPath");
|
||||||
copyFileName.Icon = App.CreateMenuIcon("Icons.Copy");
|
copyFullPath.Icon = App.CreateMenuIcon("Icons.Copy");
|
||||||
copyFileName.Click += (_, e) =>
|
copyFullPath.Click += (_, e) =>
|
||||||
{
|
{
|
||||||
App.CopyText(Path.GetFileName(change.Path));
|
App.CopyText(Native.OS.GetAbsPath(_repo.FullPath, change.Path));
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
};
|
};
|
||||||
menu.Items.Add(copyFileName);
|
menu.Items.Add(copyFullPath);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1270,17 +1270,17 @@ namespace SourceGit.ViewModels
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
var copyFileName = new MenuItem();
|
var copyFullPath = new MenuItem();
|
||||||
copyFileName.Header = App.Text("CopyFileName");
|
copyFullPath.Header = App.Text("CopyFullPath");
|
||||||
copyFileName.Icon = App.CreateMenuIcon("Icons.Copy");
|
copyFullPath.Icon = App.CreateMenuIcon("Icons.Copy");
|
||||||
copyFileName.Click += (_, e) =>
|
copyFullPath.Click += (_, e) =>
|
||||||
{
|
{
|
||||||
App.CopyText(Path.GetFileName(change.Path));
|
App.CopyText(Native.OS.GetAbsPath(_repo.FullPath, change.Path));
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
menu.Items.Add(copyPath);
|
menu.Items.Add(copyPath);
|
||||||
menu.Items.Add(copyFileName);
|
menu.Items.Add(copyFullPath);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -283,6 +283,7 @@
|
||||||
<MenuItem Header="-"/>
|
<MenuItem Header="-"/>
|
||||||
<MenuItem Header="{DynamicResource Text.Configure.IssueTracker.AddSampleGithub}" Command="{Binding AddSampleGithubIssueTracker}"/>
|
<MenuItem Header="{DynamicResource Text.Configure.IssueTracker.AddSampleGithub}" Command="{Binding AddSampleGithubIssueTracker}"/>
|
||||||
<MenuItem Header="{DynamicResource Text.Configure.IssueTracker.AddSampleJira}" Command="{Binding AddSampleJiraIssueTracker}"/>
|
<MenuItem Header="{DynamicResource Text.Configure.IssueTracker.AddSampleJira}" Command="{Binding AddSampleJiraIssueTracker}"/>
|
||||||
|
<MenuItem Header="{DynamicResource Text.Configure.IssueTracker.AddSampleAzure}" Command="{Binding AddSampleAzureWorkItemTracker}"/>
|
||||||
<MenuItem Header="{DynamicResource Text.Configure.IssueTracker.AddSampleGitLabIssue}" Command="{Binding AddSampleGitLabIssueTracker}"/>
|
<MenuItem Header="{DynamicResource Text.Configure.IssueTracker.AddSampleGitLabIssue}" Command="{Binding AddSampleGitLabIssueTracker}"/>
|
||||||
<MenuItem Header="{DynamicResource Text.Configure.IssueTracker.AddSampleGitLabMergeRequest}" Command="{Binding AddSampleGitLabMergeRequestTracker}"/>
|
<MenuItem Header="{DynamicResource Text.Configure.IssueTracker.AddSampleGitLabMergeRequest}" Command="{Binding AddSampleGitLabMergeRequestTracker}"/>
|
||||||
<MenuItem Header="{DynamicResource Text.Configure.IssueTracker.AddSampleGiteeIssue}" Command="{Binding AddSampleGiteeIssueTracker}"/>
|
<MenuItem Header="{DynamicResource Text.Configure.IssueTracker.AddSampleGiteeIssue}" Command="{Binding AddSampleGiteeIssueTracker}"/>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue