diff --git a/.github/workflows/package.yml b/.github/workflows/package.yml
index e973c1ab..074c9544 100644
--- a/.github/workflows/package.yml
+++ b/.github/workflows/package.yml
@@ -7,8 +7,8 @@ on:
required: true
type: string
jobs:
- windows-portable:
- name: Package portable Windows app
+ windows:
+ name: Package Windows
runs-on: ubuntu-latest
strategy:
matrix:
@@ -25,7 +25,7 @@ jobs:
env:
VERSION: ${{ inputs.version }}
RUNTIME: ${{ matrix.runtime }}
- run: ./build/scripts/package.windows-portable.sh
+ run: ./build/scripts/package.windows.sh
- name: Upload package artifact
uses: actions/upload-artifact@v4
with:
@@ -36,7 +36,7 @@ jobs:
with:
name: sourcegit.${{ matrix.runtime }}
osx-app:
- name: Package OSX app
+ name: Package macOS
runs-on: macos-latest
strategy:
matrix:
diff --git a/README.md b/README.md
index 2172c1f7..7e4db671 100644
--- a/README.md
+++ b/README.md
@@ -47,7 +47,7 @@
## Translation Status
-[![en_US](https://img.shields.io/badge/en__US-100%25-brightgreen)](TRANSLATION.md) [![de__DE](https://img.shields.io/badge/de__DE-100.00%25-brightgreen)](TRANSLATION.md) [![es__ES](https://img.shields.io/badge/es__ES-97.78%25-yellow)](TRANSLATION.md) [![fr__FR](https://img.shields.io/badge/fr__FR-95.00%25-yellow)](TRANSLATION.md) [![it__IT](https://img.shields.io/badge/it__IT-95.56%25-yellow)](TRANSLATION.md) [![pt__BR](https://img.shields.io/badge/pt__BR-96.81%25-yellow)](TRANSLATION.md) [![ru__RU](https://img.shields.io/badge/ru__RU-100.00%25-brightgreen)](TRANSLATION.md) [![zh__CN](https://img.shields.io/badge/zh__CN-100.00%25-brightgreen)](TRANSLATION.md) [![zh__TW](https://img.shields.io/badge/zh__TW-100.00%25-brightgreen)](TRANSLATION.md)
+[![en_US](https://img.shields.io/badge/en__US-100%25-brightgreen)](TRANSLATION.md) [![de__DE](https://img.shields.io/badge/de__DE-100.00%25-brightgreen)](TRANSLATION.md) [![es__ES](https://img.shields.io/badge/es__ES-100.00%25-brightgreen)](TRANSLATION.md) [![fr__FR](https://img.shields.io/badge/fr__FR-95.00%25-yellow)](TRANSLATION.md) [![it__IT](https://img.shields.io/badge/it__IT-95.56%25-yellow)](TRANSLATION.md) [![pt__BR](https://img.shields.io/badge/pt__BR-96.81%25-yellow)](TRANSLATION.md) [![ru__RU](https://img.shields.io/badge/ru__RU-100.00%25-brightgreen)](TRANSLATION.md) [![zh__CN](https://img.shields.io/badge/zh__CN-100.00%25-brightgreen)](TRANSLATION.md) [![zh__TW](https://img.shields.io/badge/zh__TW-100.00%25-brightgreen)](TRANSLATION.md)
## How to Use
@@ -64,7 +64,7 @@ This software creates a folder `$"{System.Environment.SpecialFolder.ApplicationD
| macOS | `${HOME}/Library/Application Support/SourceGit` |
> [!TIP]
-> You can open the app data dir from the main menu.
+> You can open this data storage directory from the main menu.
For **Windows** users:
@@ -80,7 +80,8 @@ For **Windows** users:
scoop bucket add extras
scoop install sourcegit
```
-* Portable versions can be found in [Releases](https://github.com/sourcegit-scm/sourcegit/releases/latest)
+* Pre-built binaries can be found in [Releases](https://github.com/sourcegit-scm/sourcegit/releases/latest)
+* You can run `dotnet publish -c Release -r win-x64 -p:EnablePortable=true -o $YOUR_PUBLISH_DIR .\src\SourceGit.csproj` to build a portable version.
For **macOS** users:
@@ -159,7 +160,7 @@ This app supports open repository in external tools listed in the table below.
> [!NOTE]
> This app will try to find those tools based on some pre-defined or expected locations automatically. If you are using one portable version of these tools, it will not be detected by this app.
-> To solve this problem you can add a file named `external_editors.json` in app data dir and provide the path directly. For example:
+> To solve this problem you can add a file named `external_editors.json` in app data storage directory and provide the path directly. For example:
```json
{
"tools": {
diff --git a/SourceGit.sln b/SourceGit.sln
index 3eeb8a54..88730204 100644
--- a/SourceGit.sln
+++ b/SourceGit.sln
@@ -81,7 +81,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "scripts", "scripts", "{C54D
build\scripts\localization-check.js = build\scripts\localization-check.js
build\scripts\package.linux.sh = build\scripts\package.linux.sh
build\scripts\package.osx-app.sh = build\scripts\package.osx-app.sh
- build\scripts\package.windows-portable.sh = build\scripts\package.windows-portable.sh
+ build\scripts\package.windows.sh = build\scripts\package.windows.sh
EndProjectSection
EndProject
Global
diff --git a/TRANSLATION.md b/TRANSLATION.md
index c50ce276..69962320 100644
--- a/TRANSLATION.md
+++ b/TRANSLATION.md
@@ -8,28 +8,13 @@
-### es_ES.axaml: 97.78%
+### es_ES.axaml: 100.00%
Missing Keys
-- Text.BranchCM.MergeMultiBranches
-- Text.CommitCM.Merge
-- Text.CommitCM.MergeMultiple
-- Text.Diff.UseBlockNavigation
-- Text.FileCM.ResolveUsing
-- Text.Hotkeys.Global.Clone
-- Text.InProgress.CherryPick.Head
-- Text.InProgress.Merge.Operating
-- Text.InProgress.Rebase.StoppedAt
-- Text.InProgress.Revert.Head
-- Text.Merge.Source
-- Text.MergeMultiple
-- Text.MergeMultiple.CommitChanges
-- Text.MergeMultiple.Strategy
-- Text.MergeMultiple.Targets
-- Text.Repository.Skip
+
diff --git a/VERSION b/VERSION
index b6723375..b977bf8c 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-8.44
\ No newline at end of file
+8.45
\ No newline at end of file
diff --git a/build/scripts/package.windows-portable.sh b/build/scripts/package.windows.sh
similarity index 100%
rename from build/scripts/package.windows-portable.sh
rename to build/scripts/package.windows.sh
diff --git a/src/Models/ExternalMerger.cs b/src/Models/ExternalMerger.cs
index a09f808c..49d31df5 100644
--- a/src/Models/ExternalMerger.cs
+++ b/src/Models/ExternalMerger.cs
@@ -39,7 +39,7 @@ namespace SourceGit.Models
new ExternalMerger(4, "tortoise_merge", "Tortoise Merge", "TortoiseMerge.exe;TortoiseGitMerge.exe", "-base:\"$BASE\" -theirs:\"$REMOTE\" -mine:\"$LOCAL\" -merged:\"$MERGED\"", "-base:\"$LOCAL\" -theirs:\"$REMOTE\""),
new ExternalMerger(5, "kdiff3", "KDiff3", "kdiff3.exe", "\"$REMOTE\" -b \"$BASE\" \"$LOCAL\" -o \"$MERGED\"", "\"$LOCAL\" \"$REMOTE\""),
new ExternalMerger(6, "beyond_compare", "Beyond Compare", "BComp.exe", "\"$REMOTE\" \"$LOCAL\" \"$BASE\" \"$MERGED\"", "\"$LOCAL\" \"$REMOTE\""),
- new ExternalMerger(7, "win_merge", "WinMerge", "WinMergeU.exe", "\"$MERGED\"", "-u -e \"$LOCAL\" \"$REMOTE\""),
+ new ExternalMerger(7, "win_merge", "WinMerge", "WinMergeU.exe", "\"$MERGED\"", "-u -e -sw \"$LOCAL\" \"$REMOTE\""),
new ExternalMerger(8, "codium", "VSCodium", "VSCodium.exe", "-n --wait \"$MERGED\"", "-n --wait --diff \"$LOCAL\" \"$REMOTE\""),
new ExternalMerger(9, "p4merge", "P4Merge", "p4merge.exe", "-tw 4 \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"", "-tw 4 \"$LOCAL\" \"$REMOTE\""),
};
diff --git a/src/Native/OS.cs b/src/Native/OS.cs
index b53f81d9..ca56cdac 100644
--- a/src/Native/OS.cs
+++ b/src/Native/OS.cs
@@ -1,5 +1,8 @@
using System;
using System.Collections.Generic;
+#if ENABLE_PORTABLE
+using System.Diagnostics;
+#endif
using System.IO;
using Avalonia;
@@ -55,6 +58,16 @@ namespace SourceGit.Native
public static void SetupDataDir()
{
+#if ENABLE_PORTABLE
+ if (OperatingSystem.IsWindows())
+ {
+ var execFile = Process.GetCurrentProcess().MainModule!.FileName;
+ DataDir = Path.Combine(Path.GetDirectoryName(execFile), "data");
+ if (!Directory.Exists(DataDir))
+ Directory.CreateDirectory(DataDir);
+ return;
+ }
+#endif
var osAppDataDir = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
if (string.IsNullOrEmpty(osAppDataDir))
DataDir = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".sourcegit");
diff --git a/src/Resources/Locales/en_US.axaml b/src/Resources/Locales/en_US.axaml
index befad68a..f2165f3f 100644
--- a/src/Resources/Locales/en_US.axaml
+++ b/src/Resources/Locales/en_US.axaml
@@ -355,8 +355,8 @@
SHA
COMMIT TIME
SELECTED {0} COMMITS
- Holding 'Ctrl' or 'Shift' to select multiple commits.
- Holding ⌘ or ⇧ to select multiple commits.
+ Hold 'Ctrl' or 'Shift' to select multiple commits.
+ Hold ⌘ or ⇧ to select multiple commits.
TIPS:
Keyboard Shortcuts Reference
GLOBAL
@@ -395,8 +395,8 @@
Path:
Cherry-Pick in progress.
Processing commit
- Merge request in progress.
- Operating
+ Merge in progress.
+ Merging
Rebase in progress.
Stopped at
Revert in progress.
diff --git a/src/Resources/Locales/es_ES.axaml b/src/Resources/Locales/es_ES.axaml
index cf0f05b5..0853b896 100644
--- a/src/Resources/Locales/es_ES.axaml
+++ b/src/Resources/Locales/es_ES.axaml
@@ -61,6 +61,7 @@
Fetch ${0}$ en ${1}$...
Git Flow - Finalizar ${0}$
Merge ${0}$ en ${1}$...
+ Hacer merge de las ramas {0} seleccionadas hacia la rama actual
Pull ${0}$
Pull ${0}$ en ${1}$...
Push ${0}$
@@ -113,8 +114,8 @@
Copiar SHA
Acción personalizada
Rebase Interactivo ${0}$ hasta Aquí
- Abrir en el Navegador
- Copiar Enlace
+ Merge a ${0}$
+ Merge ...
Rebase ${0}$ hasta Aquí
Reset ${0}$ hasta Aquí
Revertir Commit
@@ -252,6 +253,7 @@
Intercambiar
Resaltado de Sintaxis
Ajuste de Línea
+ Habilitar navegación en bloque
Abrir en Herramienta de Merge
Mostrar Todas las Líneas
Disminuir Número de Líneas Visibles
@@ -283,6 +285,7 @@
Descartar {0} archivos...
Descartar Cambios en Línea(s) Seleccionada(s)
Abrir Herramienta de Merge Externa
+ Resolver usando ${0}$
Guardar Como Patch...
Stage
Stage {0} archivos
@@ -361,6 +364,7 @@
Referencia de Atajos de Teclado
GLOBAL
Cancelar popup actual
+ Clonar repositorio nuevo
Cerrar página actual
Ir a la página anterior
Ir a la siguiente página
@@ -393,17 +397,28 @@
Inicializar Repositorio
Ruta:
Cherry-Pick en progreso.
+ Procesando commit
Merge en progreso.
+ Haciendo merge
Rebase en progreso.
+ Pausado en
Revert en progreso.
+ Haciendo revert del commit
Rebase Interactivo
Rama Objetivo:
En:
+ Abrir en el Navegador
+ Copiar Enlace
ERROR
AVISO
Merge Rama
En:
Opción de Merge:
+ Rama Fuente:
+ Merge (Multiplo)
+ Commit todos los cambios
+ Estrategia:
+ Destino:
Mover Nodo del Repositorio
Seleccionar nodo padre para:
Nombre:
@@ -570,6 +585,7 @@
Autor & Committer
Rama Actual
Mostrar Etiquetas como Árbol
+ OMITIR
Estadísticas
SUBMÓDULOS
AÑADIR SUBMÓDULO
diff --git a/src/Resources/Locales/ru_RU.axaml b/src/Resources/Locales/ru_RU.axaml
index ca06d36a..be929d98 100644
--- a/src/Resources/Locales/ru_RU.axaml
+++ b/src/Resources/Locales/ru_RU.axaml
@@ -11,18 +11,18 @@
• Моноширинные шрифты взяты из
• Исходный код можно найти по адресу
Бесплатный графический клиент Git с исходным кодом
- Добавить рабочее дерево
+ Добавить рабочий каталог
Что проверить:
Существующую ветку
Создать новую ветку
Расположение:
- Путь к этому рабочему дереву. Поддерживается относительный путь.
+ Путь к рабочему каталогу. Поддерживается относительный путь.
Имя ветки:
- Необязательно. По умолчанию используется имя целевой папки.
+ Имя целевого каталога по умолчанию. (необязательно)
Отслеживание ветки:
Отслеживание внешней ветки
OpenAI Ассистент
- Использовать OpenAI для создания сообщения о фиксации
+ Использовать OpenAI для создания сообщения о ревизии
Исправить
Ошибка
Выдает ошибки и отказывается применять исправление
@@ -43,16 +43,16 @@
Ревизия:
Архив
Спросить разрешения SourceGit
- ФАЙЛЫ СЧИТАЮТСЯ НЕИЗМЕНЕННЫМИ
- НИ ОДИН ФАЙЛ НЕ СЧИТАЕТСЯ НЕИЗМЕНЕННЫМ
+ НЕОТСЛЕЖИВАЕМЫЕ ФАЙЛЫ
+ СПИСОК ПУСТ
УДАЛИТЬ
ДВОИЧНЫЙ ФАЙЛ НЕ ПОДДЕРЖИВАЕТСЯ!!!
- Обвинение
- ОБВИНЕНИЕ В ЭТОМ ФАЙЛЕ НЕ ПОДДЕРЖИВАЕТСЯ!!!
+ Расследование
+ РАССЛЕДОВАНИЕ В ЭТОМ ФАЙЛЕ НЕ ПОДДЕРЖИВАЕТСЯ!!!
Проверить ${0}$...
- Сравнить в веткой
- Сравнить в заголовком
- Сравнить в рабочим деревом
+ Сравнить с веткой
+ Сравнить с заголовком
+ Сравнить с рабочим каталогом
Копировать имя ветки
Удалить ${0}$...
Удалить выбранные {0} ветки
@@ -67,47 +67,47 @@
Выложить ${0}$
Переместить ${0}$ на ${1}$...
Переименовать ${0}$...
- Установить отслеживание ветки
+ Отслеживать ветку
Отключить основной поток
- Сравнение ветвей
+ Сравнение веток
Байты
ОТМЕНА
Сбросить эту ревизию
Сбросить родительскую ревизию
- Произвести сообщение о фиксации
+ Произвести сообщение о ревизии
ИЗМЕНИТЬ РЕЖИМ ОТОБРАЖЕНИЯ
Показывать в виде списка файлов и каталогов
Показывать в виде списка путей
Показывать в виде дерева файловой системы
Проверить ветку
- Проверить фиксацию
- Предупреждение: При выполнении проверки фиксации ваша голова будет отсоединена
- Фиксация:
+ Проверить ревизию
+ Предупреждение: При выполнении проверки ревизии ваша голова будет отсоединена
+ Ревизия:
Ветка:
Локальные изменения:
Отклонить
Ничего не делать
Отложить и примненить повторно
Частичный выбор
- Добавить источник для фиксации сообщения
- Фиксация(и):
+ Добавить источник для ревизии сообщения
+ Ревизия(и):
Фиксировать все изменения.
Основной:
Обычно вы не можете выделить слияние, потому что не знаете, какую сторону слияния следует считать основной. Эта опция позволяет отобразить изменение относительно указанного родительского элемента.
Очистить отложенные
- Вы пытаетесь очистить все отложенные. Вы уверены, что будете продолжать?
+ Вы пытаетесь очистить все отложенные. Вы уверены, что хотите продолжить?
Клонировать внешнее хранилище
Расширенные параметры:
- Дополнительные аргументы для клонирования хранилища. Необязательно.
+ Дополнительные аргументы для клонирования хранилища. (необязательно).
Локальное имя:
- Имя хранилища. Необязательно.
+ Имя хранилища. (необязательно).
Родительский каталог:
Адрес хранилища:
ЗАКРЫТЬ
Редактор
- Применить этот коммит (cherry-pick)
- Применить несколько коммитов ...
- Переключиться на этот коммит
+ Применить эту ревизию (cherry-pick)
+ Применить несколько ревизий ...
+ Переключиться на эту ревизию
Сравнить c HEAD
Сравнить с рабочим каталогом
Копировать информацию
@@ -118,11 +118,11 @@
Влить ветки...
Переместить ${0}$ сюда
Сбросить ${0}$ сюда
- Отменить коммит
+ Отменить ревизию
Изменить комментарий
Сохранить как patch-файл...
- Объединить с предыдущим коммитом
- Объединить все следующие коммиты с этим
+ Объединить с предыдущей ревизией
+ Объединить все следующие ревизии с этим
ИЗМЕНЕНИЯ
Найти изменения....
ФАЙЛЫ
@@ -134,36 +134,36 @@
ИЗМЕНЁННЫЙ
ДОЧЕРНИЙ
ИСПОЛНИТЕЛЬ
- Найти все ветки с этим коммитом
- ВЕТКИ С ЭТИМ КОММИТОМ
+ Найти все ветки с этой ревизией
+ ВЕТКИ С ЭТОЙ РЕВИЗИЕЙ
Отображаются только первые 100 изменений. Смотрите все изменения на вкладке ИЗМЕНЕНИЯ.
СООБЩЕНИЕ
РОДИТЕЛИ
ССЫЛКИ
SHA
Открыть в браузере
- Введите тему фиксации
+ Введите тему ревизии
Описание
Настройка хранилища
- ШАБЛОН КОММИТА
+ ШАБЛОН РЕВИЗИИ
Название:
Cодержание:
ПОЛЬЗОВАТЕЛЬСКОЕ ДЕЙСТВИЕ
Аргументы:
- ${REPO} - Путь к репозиторию; ${SHA} - SHA коммитов
+ ${REPO} - Путь к репозиторию; ${SHA} - SHA ревизий
Исполняемый файл:
Имя:
Диапазон:
- Коммит
+ Ревизия
Репозиторий
Адрес электронной почты
Адрес электронной почты
GIT
Автоматическое скачивание изменений
Минут(а/ы)
- Разрешить --signoff для коммита
+ Разрешить '--signoff' для ревизии
Удалённое хранилище по-умолчанию
- Разрешить --prune при скачивании
+ Разрешить '--prune' при скачивании
ОТСЛЕЖИВАНИЕ ПРОБЛЕМ
Добавить пример правила для Git
Добавить пример правила Jira
@@ -175,8 +175,8 @@
Адрес результата:
Пожалуйста, используйте $1, $2 для доступа к значениям групп регулярных выражений.
ОТКРЫТЬ ИИ
- Предпочитаемый сервис:
- Если «Предпочитаемый сервис» установлен, SourceGit будет использовать только этот хранилище. В противном случае, если доступно более одной услуги, будет отображено контекстное меню для выбора одной из них.
+ Предпочтительный сервис:
+ Если «Предпочтительный сервис» установлен, SourceGit будет использовать только этот хранилище. В противном случае, если доступно более одной услуги, будет отображено контекстное меню для выбора одной из них.
HTTP-прокси
HTTP-прокси, используемый этим хранилищем
Имя пользователя
@@ -185,12 +185,12 @@
Имя
Цвет
Восстанавливать вкладки при запуске
- Общепринятый помощник по фиксации изменений
+ Общепринятый помощник по ревизии
Кардинальные изменения:
Закрытая тема:
Детали изменений:
Область:
- Коротнкое описание:
+ Короткое описание:
Тип изменения:
Копировать
Копировать весь текст
@@ -208,7 +208,7 @@
Создать локальную ветку
Создать метку...
Новая метка у:
- Подпись GPG
+ GPG подпись
Сообщение с меткой:
Необязательно.
Имя метки:
@@ -222,8 +222,8 @@
Вырезать
Удалить ветку
Ветка:
- Вы собираетесь удалить удаленную ветку!!!
- Также удалите удаленную ветку ${0}$
+ Вы собираетесь удалить удалённую ветку!!!
+ Также удалите удалённую ветку ${0}$
Удаление нескольких веток
Вы пытаетесь удалить несколько веток одновременно. Обязательно перепроверьте, прежде чем предпринимать какие-либо действия!
Удалить внешнее хранилище
@@ -357,10 +357,10 @@
ВРЕМЯ АВТОРА
ГРАФ И СУБЪЕКТ
SHA
- ВРЕМЯ ФИКСАЦИИ
- ВЫБРАННЫЕ {0} ФИКСАЦИИ
- Удерживайте Ctrl или Shift, чтобы выбрать несколько фиксаций.
- Удерживайте ⌘ или ⇧, чтобы выбрать несколько фиксаций.
+ ВРЕМЯ РЕВИЗИИ
+ ВЫБРАННЫЕ {0} РЕВИЗИИ
+ Удерживайте Ctrl или Shift, чтобы выбрать несколько ревизий.
+ Удерживайте ⌘ или ⇧, чтобы выбрать несколько ревизий.
ПОДСКАЗКИ:
Ссылка на сочетания клавиш
ОБЩЕЕ
@@ -379,11 +379,11 @@
Отклонить выбранные изменения
Извлечение, запускается сразу
Режим доски (по-умолчанию)
- Принудительно перезагрузить этот хранилище
+ Принудительно перезагрузить хранилище
Забрать, запускается сразу
Выложить, запускается сразу
Подготовленные/Неподготовленные выбранные изменения
- Режим поиска фиксаций
+ Режим поиска ревизий
Переключить на «Изменения»
Переключить на «Истории»
Переключить на «Отложенные»
@@ -397,13 +397,13 @@
Отклонить
Инициализировать хранилище
Путь:
- Выполняется частичный перенос коммитов (cherry-pick).
- Обрабтка коммита.
+ Выполняется частичный перенос ревизий (cherry-pick).
+ Обрабтка ревизии.
Выполняется слияние.
- Работаем.
+ Выполяется.
Выполняется перенос.
Остановлен на
- Выполняется отмена коммита.
+ Выполняется отмена ревизии.
Выполняется отмена
Интерактивное перемещение
Целевая ветка:
@@ -453,9 +453,9 @@
Имя:
Сервер
ВИД
- Шрифт по-умолчанию
+ Шрифт по умолчанию
Размер шрифта
- По-умолчанию
+ По умолчанию
Редактор
Моноширный шрифт
В текстовом редакторе используется только моноширный шрифт
@@ -471,35 +471,35 @@
Проверить обновления при старте
Язык
Максимальная длина истории
- Показывать время автора вместо времени коммита на графике
+ Показывать время автора вместо времени ревизии на графике
Показать наследника в деталях комментария
- Длина темы коммита
+ Длина темы ревизии
GIT
Включить автозавершение CRLF
- Каталог клонирования по-умолчанию
+ Каталог клонирования по умолчанию
Электроная почта пользователя
Общая электроная почта пользователя git
Путь установки
Имя пользователя
- общее имя пользователя git
+ Общее имя пользователя git
Версия Git
- Git (>= 2.23.0) требуется для этого приложения
- ПОДПИСЬ GPG
- Фиксация подписи GPG
- Метка подписи GPG
+ Для работы программы требуется версия Git (>= 2.23.0)
+ GPG ПОДПИСЬ
+ GPG подпись ревизии
+ GPG подпись метки
Формат GPG
Путь установки программы
Введите путь для установленной программы GPG
Ключ подписи пользователя
- Ключ подписи GPG пользователя
+ Ключ GPG подписи пользователя
ВНЕДРЕНИЕ
ОБОЛОЧКА/ТЕРМИНАЛ
Оболочка/Терминал
Путь
Удалить внешнее хранилище
Цель:
- Удалить рабочее дерево
- Информация об обрезке рабочего дерева в «$GIT_DIR/worktrees»
+ Удалить рабочий каталог
+ Информация об обрезке рабочего каталога в «$GIT_DIR/worktrees»
Забрать
Ветка:
Извлечь все ветки
@@ -519,7 +519,7 @@
Внешнее хранилище:
Выложить изменения на внешнее хранилище
Ветка внешнего хранилища:
- Установить в качестве ветки отслеживания
+ Отслеживать ветку
Выложить все метки
Выложить метку на внешнее хранилище
Выложить на все внешние хранилища
@@ -543,7 +543,7 @@
Извлечь
Открыть в браузере
Удалить
- Подтвердить удаление рабочего дерева
+ Подтвердить удаление рабочего каталога
Включить опцию --force
Цель:
Переименовать ветку
@@ -555,7 +555,7 @@
Очистить (Сбор мусора и удаление)
Запустить команду «git gc» для данного хранилища.
Очистить всё
- Настройка этого хранилища
+ Настройка хранилища
ПРОДОЛЖИТЬ
Изменить действия
Не изменять действия
@@ -563,12 +563,12 @@
Открыть в файловом менеджере
Поиск веток, меток и подмодулей
Видимость на графике
- Не установлен (По-умолчанию)
- Скрыть в графе фиксации
- Фильтр в графе фиксации
+ Не установлен (по умолчанию)
+ Скрыть в графе ревизии
+ Фильтр в графе ревизии
ОТФИЛЬТРОВАНО:
Переключить режим запроса
- Дата фиксации (--date-order)
+ Дата ревизии (--date-order)
Топологически (--topo-order)
ЛОКАЛЬНЫЕ ВЕТКИ
Навигация по заголовку
@@ -579,13 +579,13 @@
Обновить
ВНЕШНИЕ ХРАНИЛИЩА
ДОБАВИТЬ ВНЕШНЕЕ ХРАНИЛИЩЕ
- Поиск фиксации
+ Поиск ревизии
Файл
Сообщение
SHA
Автор и исполнитель
Текущая ветка
- Показывать метки как дерево
+ Показывать метки как катлог
ПРОПУСТИТЬ
Статистикa
ПОДМОДУЛИ
@@ -598,15 +598,15 @@
ДОБАВИТЬ РАБОЧИЙ КАТАЛОГ
ОБРЕЗАТЬ
Адрес репозитория Git
- Сбросить текущую втеку до версии
+ Сбросить текущую ветку до версии
Режим сброса:
Переместить в:
Текущая ветка:
Открыть в файловом менеджере
- Отменить коммит
- Коммит:
- Отмена коммита
- Переформулировать сообщение коммита
+ Отменить ревизию
+ Ревизия:
+ Отмена ревизии
+ Переформулировать сообщение ревизии
Использовать «Shift+Enter» для ввода новой строки. «Enter» - это горячая клавиша кнопки OK
Запуск. Подождите пожалуйста...
СОХРАНИТЬ
@@ -617,43 +617,43 @@
Копировать SHA
Перейти
Проверка для обновления...
- Доступна новая версия этого программного обеспечения:
+ Доступна новая версия программного обеспечения:
Не удалось проверить наличие обновлений!
Загрузка
Пропустить эту версию
Обновление ПО
В настоящее время обновления недоступны.
- Втиснуть фиксации
+ Втиснуть ревизии
В:
- Частный ключ SSH:
- Путь хранения частного ключа SSH
+ Приватный ключ SSH:
+ Путь хранения приватного ключа SSH
Только подготовленные изменения
- Подготовленные так и подготовленные изменения выбранных файлов будут сохранены!!!
+ Подготовленные так и неподготовленные изменения выбранных файлов будут сохранены!!!
ЗАПУСК
Отложить
Включить неотслеживаемые файлы
Хранить отложенные файлы
Сообщение:
- Необязательно. Имя этого тайника
+ Имя тайника (необязательно)
Отложить локальные изменения
Принять
Отбросить
Применить
- Отрбосить тайник
+ Отбросить тайник
Отбросить:
Отложенные
ИЗМЕНЕНИЯ
ОТЛОЖЕННЫЕ
- Статистики
- ФИКСАЦИИ
+ Статистика
+ РЕВИЗИИ
ИСПОЛНИТЕЛИ
МЕСЯЦ
НЕДЕЛЯ
- ФИКСАЦИИ:
+ РЕВИЗИИ:
АВТОРЫ:
ОБЗОР
ПОДМОДУЛИ
- Добавить подмодули
+ Добавить подмодули
Копировать относительный путь
Извлечение вложенных подмодулей
Открыть подмодуль хранилища
@@ -664,7 +664,7 @@
Копировать имя метки
Копировать сообщение с метки
Удалить ${0}$...
- Слить ${0}$ в ${1}$...
+ Влить ${0}$ в ${1}$...
Выложить ${0}$...
Сетевой адрес:
Обновление подмодулей
@@ -672,7 +672,7 @@
Инициализировать по необходимости
Рекурсивно
Подмодуль:
- Использовать опцию --remote
+ Использовать опцию '--remote'
Предупреждение
Приветствие
Создать группу
@@ -685,7 +685,7 @@
Открыть все хранилища
Открыть хранилище
Открыть терминал
- Повторное сканирование хранилищ в каталоге клонирования по-умолчанию
+ Повторное сканирование хранилищ в каталоге клонирования по умолчанию
Поиск хранилищ...
Сортировка
Изменения
@@ -695,33 +695,33 @@
Игнорировать файлы в том же каталоге
Игнорировать только эти файлы
Изменить
- Теперь вы можете подготовитть этот файл.
+ Теперь вы можете подготовить этот файл.
ЗАФИКСИРОВАТЬ
ЗАФИКСИРОВАТЬ и ОТПРАВИТЬ
Шаблон/Истории
Запустить событие щелчка
Зафиксировать (Редактировать)
Подготовить все изменения и зафиксировать
- Обнаружена пустая фиксация! Вы хотите продолжить (--allow-empty)?
+ Обнаружена пустая ревизия! Вы хотите продолжить (--allow-empty)?
ОБНАРУЖЕНЫ КОНФЛИКТЫ
КОНФЛИКТЫ ФАЙЛОВ РАЗРЕШЕНЫ
ВКЛЮЧИТЬ НЕОТСЛЕЖИВАЕМЫЕ ФАЙЛЫ
НЕТ ПОСЛЕДНИХ ВХОДНЫХ СООБЩЕНИЙ
- НЕТ ШАБЛОНОВ ФИКСАЦИИ
+ НЕТ ШАБЛОНОВ РЕВИЗИИ
ПОДГОТОВЛЕННЫЕ
СНЯТЬ ПОДГОТОВЛЕННЫЙ
СНЯТЬ ВСЕ ПОДГОТОВЛЕННЫЕ
НЕПОДГОТОВЛЕННЫЕ
ПОДГОТОВИТЬ
ВСЕ ПОДГОТОВИТЬ
- ВИД ПРЕДПОЛАГАЕТСЯ НЕИЗМЕННЫМ
+ ОТКРЫТЬ СПИСОК НЕОТСЛЕЖИВАЕМЫХ ФАЙЛОВ
Шаблон: ${0}$
- Щёлкните правой кнопкой мыши выбранный файл(ы) и сделайте свой выбор для разрешения конфликтов.
+ Щёлкните правой кнопкой мыши выбранный файл(ы) и разрешите конфликты.
РАБОЧЕЕ ПРОСТРАНСТВО:
Настройка рабочего пространства...
- РАБОЧЕЕ ДЕРЕВО
+ РАБОЧИЙ КАТАЛОГ
Копировать путь
Заблокировать
Удалить
Разблокировать
-
+
\ No newline at end of file
diff --git a/src/SourceGit.csproj b/src/SourceGit.csproj
index 497a518f..8e8c2b3f 100644
--- a/src/SourceGit.csproj
+++ b/src/SourceGit.csproj
@@ -30,6 +30,10 @@
$(DefineConstants);DISABLE_UPDATE_DETECTION
+
+ $(DefineConstants);ENABLE_PORTABLE
+
+
diff --git a/src/ViewModels/BranchTreeNode.cs b/src/ViewModels/BranchTreeNode.cs
index a8232047..698dc7ad 100644
--- a/src/ViewModels/BranchTreeNode.cs
+++ b/src/ViewModels/BranchTreeNode.cs
@@ -58,6 +58,7 @@ namespace SourceGit.ViewModels
{
public List Locals => _locals;
public List Remotes => _remotes;
+ public List InvalidExpandedNodes => _invalidExpandedNodes;
public void SetExpandedNodes(List expanded)
{
@@ -98,6 +99,12 @@ namespace SourceGit.ViewModels
}
}
+ foreach (var path in _expanded)
+ {
+ if (!folders.ContainsKey(path))
+ _invalidExpandedNodes.Add(path);
+ }
+
folders.Clear();
SortNodes(_locals);
SortNodes(_remotes);
@@ -188,6 +195,7 @@ namespace SourceGit.ViewModels
private readonly List _locals = new List();
private readonly List _remotes = new List();
+ private readonly List _invalidExpandedNodes = new List();
private readonly HashSet _expanded = new HashSet();
}
}
diff --git a/src/ViewModels/Repository.cs b/src/ViewModels/Repository.cs
index 993597a5..82197bdf 100644
--- a/src/ViewModels/Repository.cs
+++ b/src/ViewModels/Repository.cs
@@ -2088,6 +2088,9 @@ namespace SourceGit.ViewModels
{
builder.SetExpandedNodes(_settings.ExpandedBranchNodesInSideBar);
builder.Run(branches, remotes, false);
+
+ foreach (var invalid in builder.InvalidExpandedNodes)
+ _settings.ExpandedBranchNodesInSideBar.Remove(invalid);
}
else
{
diff --git a/src/Views/ChangeCollectionView.axaml.cs b/src/Views/ChangeCollectionView.axaml.cs
index a47988f0..d6982dda 100644
--- a/src/Views/ChangeCollectionView.axaml.cs
+++ b/src/Views/ChangeCollectionView.axaml.cs
@@ -42,7 +42,7 @@ namespace SourceGit.Views
}
}
- if (!e.Handled && e.Key != Key.Space)
+ if (!e.Handled && e.Key != Key.Space && e.Key != Key.Enter)
base.OnKeyDown(e);
}
}