From ee41d5f96d01794907c390209e1d7163c55896f8 Mon Sep 17 00:00:00 2001 From: Alexander Zhirov Date: Mon, 2 Jun 2025 00:26:38 +0300 Subject: [PATCH 1/2] =?UTF-8?q?=D0=A1=D0=BC=D0=B5=D0=BD=D0=B0=20=D0=BE?= =?UTF-8?q?=D1=82=D0=BD=D0=BE=D1=81=D0=B8=D1=82=D0=B5=D0=BB=D1=8C=D0=BD?= =?UTF-8?q?=D0=BE=D0=B3=D0=BE=20=D0=BF=D1=83=D1=82=D0=B8=20=D0=BF=D1=80?= =?UTF-8?q?=D0=BE=D0=B5=D0=BA=D1=82=D0=B0=20=D0=BD=D0=B0=20=D0=B0=D0=B1?= =?UTF-8?q?=D1=81=D0=BE=D0=BB=D1=8E=D1=82=D0=BD=D1=8B=D0=B9,=20=D0=BA?= =?UTF-8?q?=D0=BE=D1=82=D0=BE=D1=80=D1=8B=D0=B9=20=D0=B8=D1=81=D0=BF=D1=80?= =?UTF-8?q?=D0=B0=D0=B2=D0=BB=D1=8F=D0=B5=D1=82=20=D0=BF=D1=80=D0=BE=D0=B1?= =?UTF-8?q?=D0=BB=D0=B5=D0=BC=D1=83=20=D0=BF=D1=80=D0=B8=20=D1=80=D0=B0?= =?UTF-8?q?=D0=B1=D0=BE=D1=82=D0=B5=20=D1=81=20=D0=BF=D1=80=D0=BE=D0=B5?= =?UTF-8?q?=D0=BA=D1=82=D0=BE=D0=BC=20=D0=B2=D0=BE=20=D0=B2=D1=80=D0=B5?= =?UTF-8?q?=D0=BC=D1=8F=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F/=D0=B2=D0=BE=D1=81=D1=81=D1=82=D0=B0=D0=BD=D0=BE?= =?UTF-8?q?=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/snag/core/core.d | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/source/snag/core/core.d b/source/snag/core/core.d index 156d59a..62150fc 100644 --- a/source/snag/core/core.d +++ b/source/snag/core/core.d @@ -158,7 +158,7 @@ class Snag { result = execute(_baseCommand ~ ["rev-parse", "--short", "HEAD"]); if (result.status == 128) { // Если это самый первый коммит после инициализации репозитория - git(["add", "."], "Failed to prepare files for archiving"); + git(["add", _config.project], "Failed to prepare files for archiving"); git(["commit", "-m"] ~ message, "Failed to create a snapshot"); newSnapshot = git( ["rev-parse", "--short", "HEAD"], @@ -197,7 +197,7 @@ class Snag { "Failed to create a branch from the current state" ); git( - ["add", "."], + ["add", _config.project], "Failed to prepare files for archiving" ); git( @@ -211,7 +211,7 @@ class Snag { } else { // Если коммит является посленим в ветке git( - ["add", "."], + ["add", _config.project], "Failed to prepare files for archiving" ); git( @@ -273,7 +273,7 @@ class Snag { ); if (result.output.length) { git( - ["restore", "."], + ["restore", _config.project], "Failed to reset file changes state" ); git( @@ -406,7 +406,7 @@ class Snag { ); // Создание нового снимка на основе состояния файлов из распакованного архива - result = execute(customCommand ~ ["add", "."]); + result = execute(customCommand ~ ["add", tempDirectory]); result.status && throw new SnagException( "Failed to prepare files for archiving:\n" @@ -427,7 +427,7 @@ class Snag { // Сброс состояния файлов git( - ["restore", "."], + ["restore", _config.project], "Failed to reset file changes state" ); git( From 80ace62abffb0d4e48b275647fa13ee522260863 Mon Sep 17 00:00:00 2001 From: Alexander Zhirov Date: Mon, 2 Jun 2025 00:59:27 +0300 Subject: [PATCH 2/2] =?UTF-8?q?=D0=A3=D0=BA=D0=B0=D0=B7=D0=B0=D0=BD=20?= =?UTF-8?q?=D1=8F=D0=B2=D0=BD=D1=8B=D0=B9=20=D0=BF=D1=83=D1=82=D1=8C=20?= =?UTF-8?q?=D0=BA=20=D1=80=D0=B0=D0=B1=D0=BE=D1=87=D0=B5=D0=B9=20=D0=B4?= =?UTF-8?q?=D0=B8=D1=80=D0=B5=D0=BA=D1=82=D0=BE=D1=80=D0=B8=D0=B8=20=D0=BF?= =?UTF-8?q?=D1=80=D0=BE=D0=B5=D0=BA=D1=82=D0=B0=20=D0=BF=D1=80=D0=B8=20?= =?UTF-8?q?=D0=B2=D1=8B=D0=B7=D0=BE=D0=B2=D0=B5=20=D0=BA=D0=BE=D0=BC=D0=B0?= =?UTF-8?q?=D0=BD=D0=B4=D1=8B=20git,=20=D1=82=D0=B0=D0=BA=20=D0=BA=D0=B0?= =?UTF-8?q?=D0=BA=20=D0=B2=D1=8B=D0=B7=D0=BE=D0=B2=20snag=20=D0=B8=D0=B7?= =?UTF-8?q?=20=D0=BF=D0=BE=D0=B4=20=D0=BD=D0=B5=20=D1=80=D0=B0=D0=B1=D0=BE?= =?UTF-8?q?=D1=87=D0=B5=D0=B9=20=D0=B4=D0=B8=D1=80=D0=B5=D0=BA=D1=82=D0=BE?= =?UTF-8?q?=D1=80=D0=B8=D0=B8=20=D0=BD=D0=B5=20=D0=B2=D1=8B=D0=BF=D0=BE?= =?UTF-8?q?=D0=BB=D0=BD=D1=8F=D0=BB=20=D0=BD=D0=B5=D0=BA=D0=BE=D1=82=D0=BE?= =?UTF-8?q?=D1=80=D1=8B=D0=B5=20=D0=BE=D0=BF=D0=B5=D1=80=D0=B0=D1=86=D0=B8?= =?UTF-8?q?=D0=B8=20=D0=BD=D0=B0=20=D1=81=D1=82=D0=B0=D1=80=D1=8B=D1=85=20?= =?UTF-8?q?=D0=B2=D0=B5=D1=80=D1=81=D0=B8=D1=8F=D1=85=20git?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/snag/core/core.d | 8 ++++---- source/snag/core/rules.d | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/source/snag/core/core.d b/source/snag/core/core.d index 62150fc..7f5f9a1 100644 --- a/source/snag/core/core.d +++ b/source/snag/core/core.d @@ -22,8 +22,8 @@ class Snag { this(SnagConfig config) { _baseCommand = format( - "git --git-dir=%s --work-tree=%s", - config.git, config.project + "git -C %s --git-dir=%s --work-tree=%s", + config.project, config.git, config.project ).split(); _config = config; @@ -381,8 +381,8 @@ class Snag { // Выполнение git команд относительно распакованного архива string[] customCommand = format( - "git --git-dir=%s --work-tree=%s", - _config.git, tempDirectory + "git -C %s --git-dir=%s --work-tree=%s", + tempDirectory, _config.git, tempDirectory ).split(); // Необходимо проверить, что текущее состояние файлов не идентично файлам распакованного архива diff --git a/source/snag/core/rules.d b/source/snag/core/rules.d index d8a2c9c..85fca40 100644 --- a/source/snag/core/rules.d +++ b/source/snag/core/rules.d @@ -75,8 +75,8 @@ class SnagRules { _gitignoreBak = _gitignore ~ ".bak"; _baseCommand = format( - "git --git-dir=%s --work-tree=%s", - config.git, config.project + "git -C %s --git-dir=%s --work-tree=%s", + config.project, config.git, config.project ).split(); generate();